Пример #1
0
    void Awake()
    {
        OnMouseClickEvent     = new MouseClickEvent();
        OnEnvChangeShapeEvent = new EnvChangeShapeEvent();

        OnStaticCaseItemEvent   = new StaticCaseItemEvent();
        OnRightButtonClickEvent = new RightButtonClickEvent();

        OnDoorEvent = new DoorEvent();
        OnCaseEvent = new CaseEvent();

        OnNextQuestEvent = new NextQuestEvent();
        //OnDialogEvent = new QuestDialogEvent();
        OnUseOnPlayerEvent = new UseOnPlayerEvent();
        OnStartDialogEvent = new StartDialogEvent();

        OnTerminalOpen  = new TerminalEvent();
        OnTerminalClose = new TerminalEvent();

        OnChangeSpriteEvent = new ChangeSpriteEvent();

        OnNewTicEvent     = new NewTicEvent();
        OnAddBuffEvent    = new AddBuffEvent();
        OnRemoveBuffEvent = new RemoveBuffEvent();
    }
Пример #2
0
        public PartialViewResult ModalCaseEventCreateSave(CaseEvent @caseEvent)
        {
            _context.UpsertCaseEvent(@caseEvent);
            var model = _context.GetCaseEventList(@caseEvent.CaseId);

            return(PartialView("_CaseEventList", model));
        }
Пример #3
0
        public ActionResult UpdateStatus(int CaseID, byte CaseStatus)
        {
            AjaxResult result = new AjaxResult();

            CaseEvent = new GenericRepository <CaseEvent>(db);

            try
            {
                CaseEvent eventData = CaseEvent.Get(CaseID);
                if (eventData == null)
                {
                    throw new Exception("找不到資料!");
                }

                eventData.Status    = CaseStatus;
                eventData.Update_by = int.Parse(Session["AdminId"].ToString());
                CaseEvent.Update(eventData, eventData.ID);
                CaseEvent.SaveChanges();
            }
            catch (Exception e)
            {
                result.status  = false;
                result.message = e.InnerException != null && !string.IsNullOrEmpty(e.InnerException.Message) ? e.InnerException.Message : e.Message;
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Пример #4
0
        public PartialViewResult CreateCaseEventPartial(int parentId)
        {
            var model = new CaseEvent
            {
                EventDate = DateTime.Today,
                CaseId    = parentId
            };

            return(PartialView("_CreateEditCaseEvent", model));
        }
Пример #5
0
 public int UpsertCaseEvent(CaseEvent @event)
 {
     if (@event.Id == 0)
     {
         _db.Add(@event);
     }
     else
     {
         _db.Update(@event);
     }
     return(_db.SaveChanges());
 }
Пример #6
0
        public void Receive()
        {
            try
            {
                using (LinkReceive receive = new LinkReceive(HttpContext.Request.Url.Query))
                {
                    CaseEvent eventData = db.CaseEvent.AsNoTracking().FirstOrDefault(c => c.ID.Equals(receive.CaseID));
                    if (eventData == null)
                    {
                        throw new Exception("找不到Case Event!");
                    }
                    if (!eventData.Status.Equals((byte)EnumData.CaseEventStatus.Open))
                    {
                        throw new Exception("執行動作無效!");
                    }

                    Packages package = db.Packages.AsNoTracking().FirstOrDefault(p => p.IsEnable.Value && p.ID.Equals(eventData.PackageID));
                    if (package == null)
                    {
                        throw new Exception("找不到訂單!");
                    }

                    using (CaseLog CaseLog = new CaseLog(package, Session))
                    {
                        Label = new GenericRepository <DirectLineLabel>(db);

                        TaskFactory factory = System.Web.HttpContext.Current.Application.Get("TaskFactory") as TaskFactory;

                        switch (receive.Type)
                        {
                        case (byte)EnumData.CaseEventType.CancelShipment:
                            if (!receive.Request.Equals((byte)EnumData.CaseEventRequest.Failed) && !receive.ReturnWarehouseID.HasValue)
                            {
                                throw new Exception("沒有選擇退貨倉!");
                            }

                            CaseLog.CancelShipmentResponse(receive.Request, receive.ReturnWarehouseID);

                            eventData = CaseLog.GetCaseEvent(EnumData.CaseEventType.CancelShipment);
                            if (eventData.Request.Equals((byte)EnumData.CaseEventRequest.Successful) && eventData.Status.Equals((byte)EnumData.CaseEventStatus.Locked))
                            {
                                ThreadTask threadTask = new ThreadTask(string.Format("Direct Line 訂單【{0}】同步資料", package.OrderID));
                                threadTask.AddWork(factory.StartNew(() =>
                                {
                                    threadTask.Start();
                                    SyncProcess sync = new SyncProcess(Session);
                                    return(sync.Sync_Order(package.OrderID.Value));
                                }));

                                DirectLineLabel label = db.DirectLineLabel.AsNoTracking().First(l => l.IsEnable && l.LabelID.Equals(eventData.LabelID));
                                label.Status = (byte)EnumData.LabelStatus.作廢;
                                Label.Update(label, label.LabelID);
                                Label.SaveChanges();
                            }
                            break;

                        case (byte)EnumData.CaseEventType.UpdateShipment:
                            CaseLog.UpdateShipmentResponse(receive.Request);
                            break;

                        case (byte)EnumData.CaseEventType.ChangeShippingMethod:
                            eventData = CaseLog.ChangeShippingMethodResponse(receive.Request);
                            if (eventData.Request.Equals((byte)EnumData.CaseEventRequest.Successful) && eventData.Status.Equals((byte)EnumData.CaseEventStatus.Close))
                            {
                                package = db.Packages.Find(eventData.PackageID);
                                if (!string.IsNullOrEmpty(package.TrackingNumber))
                                {
                                    ThreadTask threadTask = new ThreadTask(string.Format("Direct Line 訂單【{0}】SC更新", package.OrderID));
                                    threadTask.AddWork(factory.StartNew(() =>
                                    {
                                        threadTask.Start();
                                        SyncProcess sync = new SyncProcess(Session);
                                        return(sync.Update_Tracking(package));
                                    }));
                                }
                            }
                            break;

                        case (byte)EnumData.CaseEventType.ResendShipment:
                            eventData = CaseLog.ResendShipmentResponse(receive.Request);
                            if (eventData.Request.Equals((byte)EnumData.CaseEventRequest.Successful) && eventData.Status.Equals((byte)EnumData.CaseEventStatus.Close))
                            {
                                DirectLineLabel label = db.DirectLineLabel.AsNoTracking().First(l => l.IsEnable && l.LabelID.Equals(eventData.NewLabelID));
                                package = db.Packages.AsNoTracking().First(p => p.ID.Equals(label.PackageID));
                                if (!string.IsNullOrEmpty(package.TrackingNumber))
                                {
                                    label.Status = (byte)EnumData.LabelStatus.完成;

                                    ThreadTask threadTask = new ThreadTask(string.Format("Direct Line 訂單【{0}】SC更新", package.OrderID));
                                    threadTask.AddWork(factory.StartNew(() =>
                                    {
                                        threadTask.Start();
                                        SyncProcess sync = new SyncProcess(Session);
                                        return(sync.Update_Tracking(package));
                                    }));
                                }

                                Label.Update(label, label.LabelID);
                                Label.SaveChanges();
                            }
                            break;

                        case (byte)EnumData.CaseEventType.ReturnPackage:
                            CaseLog.ReturnPackageResponse(receive.Request);
                            break;
                        }
                    }
                }

                Response.Write("Success!");
            }
            catch (Exception e)
            {
                Response.Write(e.InnerException != null && !string.IsNullOrEmpty(e.InnerException.Message) ? e.InnerException.Message : e.Message);
            }
        }