private void Mail_Test(int OrderID) { Packages package = db.Packages.First(p => p.IsEnable.Value && p.OrderID.Value.Equals(OrderID)); CaseLog caseLog = new CaseLog(Session); caseLog.OrderInit(package); caseLog.SendCancelMail(); }
private void Case_Test(int OrderID) { Packages package = db.Packages.AsNoTracking().First(p => p.IsEnable.Value && p.OrderID.Value.Equals(OrderID)); var serials = db.SerialNumberForRefundLabel.AsNoTracking().Where(s => !s.IsUsed && s.oldOrderID.Equals(OrderID)).ToList(); using (CaseLog CaseLog = new CaseLog(package, Session)) { // CaseLog.SendResendShipmentMail(, serials.First().Create_at); } }
private bool AddCaseLog(HddInfo model) { var caseLog = new CaseLog { HddInfoId = model.Id, Status = model.Status, Created = DateTime.Now, Modified = DateTime.Now }; return(_caseLogService.Add(caseLog)); }
public ActionResult CreateCaseEvent(int packageID, byte caseType, int methodID) { AjaxResult result = new AjaxResult(); try { Packages package = db.Packages.AsNoTracking().First(p => p.IsEnable.Value && p.ID.Equals(packageID)); if (package == null) { throw new Exception("找不到訂單!"); } using (CaseLog CaseLog = new CaseLog(package, Session)) { switch (caseType) { case (byte)EnumData.CaseEventType.CancelShipment: CaseLog.SendCancelMail(); break; case (byte)EnumData.CaseEventType.UpdateShipment: CaseLog.SendUpdateShipmentMail(); break; case (byte)EnumData.CaseEventType.ChangeShippingMethod: DirectLineLabel label = db.DirectLineLabel.Find(package.TagNo); label.Status = (byte)EnumData.LabelStatus.完成; db.Entry(label).State = System.Data.Entity.EntityState.Modified; CaseLog.SendChangeShippingMethodMail(methodID); break; } } db.Entry(package).State = System.Data.Entity.EntityState.Modified; db.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)); }
public CaseLogViewModel(CaseLog model) { Status = model.Status.ToString(); Created = model.Created; }
internal AppealCase() { ID = __instanceCounter; __instanceCounter++; Log = new CaseLog(); }
public void WriteCase(CaseLog caseLog) { WriteCaseWasCalled++; _caseLog = caseLog; }
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); } }
internal CompletedCaseReport(AppealCase ac, CaseBoard cb, CaseLog log) { AppealCase = ac; CaseBoard = cb; Log = log; }
internal FinishedCaseLog(CaseLog log) { _log = log; }