private async void GetData() { var paymentList = await connection.Table <PaymentInfo>().ToListAsync(); var pendingList = new List <PendingList>(); var totalPendingAmount = 0; foreach (var payment in paymentList) { var customer = await connection.Table <Customer>().Where(c => c.Id == payment.CustomerId).FirstOrDefaultAsync(); var amount = payment.TotalAmount - payment.Settled; totalPendingAmount += amount; var pending = new PendingList { Customer = customer, Amount = amount, Command = CallCommand }; pendingList.Add(pending); } TotalPendingAmount.Text = "Total Pending Amount Rs." + totalPendingAmount; PendingListView.ItemsSource = pendingList; }
public PendingPersonModel NewPerson(int familyid) { var campuslist = DbUtil.Db.Setting("CampusRequired") ? "CampusNoNoCampus" : "Campus"; var p = new PendingPersonModel { FamilyId = familyid, index = PendingList.Count, Gender = new CodeInfo(99, "Gender"), MaritalStatus = new CodeInfo(99, "MaritalStatus"), Campus = new CodeInfo(CampusId, campuslist), EntryPoint = new CodeInfo(EntryPointId, "EntryPoint"), context = AddContext }; if (familyid == 0) { p.FamilyId = NextNewFamilyId(); p.IsNewFamily = true; } #if DEBUG p.FirstName = "David"; p.LastName = "Carr." + DateTime.Now.Millisecond; #endif PendingList.Add(p); return(p); }
public void Add(PendingMessage pending) { if (PendingList.ContainsKey(pending.MessageId)) { return; } PendingList.TryAdd(pending.MessageId, pending); }
internal void AddExisting(int id) { var p = DbUtil.Db.LoadPersonById(id); var pp = new PendingPersonModel(); pp.CopyPropertiesFrom(p); pp.LoadAddress(); PendingList.Add(pp); }
internal void AddExisting(int id) { var p = CurrentDatabase.LoadPersonById(id); var pp = new PendingPersonModel(CurrentDatabase); pp.CopyPropertiesFrom(p); pp.LoadAddress(); PendingList.Add(pp); }
private void bindControlData() { ScanPackageButton.DataBind(); StartAuditButton.DataBind(); CancelButton.DataBind(); CommitAuditButton.DataBind(); PendingListPanel.DataBind(); PendingList.DataBind(); LostListPanel.DataBind(); LostList.DataBind(); }
public void CheckMessages() { GlobalConfiguration.Configuration.Logger.Info("Check pending started"); while (!m_Terminated) { var waitHandles = new WaitHandle[] { m_Terminate }; int result = ManualResetEvent.WaitAny(waitHandles, 60 * 1000, false); if (result == 0) { m_Terminated = true; break; } if (PendingList.Count == 0) { continue; } GlobalConfiguration.Configuration.Logger.Info($"Check sent for {PendingList.Count} emails"); var messageToRemoveList = new List <string>(); foreach (var item in PendingList.Keys) { try { System.Threading.Thread.Sleep(5 * 500); var messageId = CheckPendingMessage(item); if (messageId != null) { messageToRemoveList.Add(messageId); } } catch (Exception ex) { GlobalConfiguration.Configuration.Logger.Error(ex); } } foreach (var item in messageToRemoveList) { PendingMessage pm = null; PendingList.TryRemove(item, out pm); } } }
public PendingPersonModel NewPerson(int familyid) { var campuslist = CurrentDatabase.Setting("CampusRequired") ? "CampusNoNoCampus" : "Campus"; var p = new PendingPersonModel(CurrentDatabase) { FamilyId = familyid, index = PendingList.Count, Gender = new CodeInfo(99, "Gender"), MaritalStatus = new CodeInfo(99, "MaritalStatus"), Campus = new CodeInfo(CampusId, campuslist), EntryPoint = new CodeInfo(EntryPointId, "EntryPoint"), context = AddContext }; if (familyid == 0) { p.FamilyId = NextNewFamilyId(); p.IsNewFamily = true; } PendingList.Add(p); return(p); }
/// <summary> /// 检查商品价格变动单据审核单据 /// </summary> /// <param name="productPriceRequest"></param> /// <param name="status"></param> /// <param name="productID"></param> /// <returns></returns> public static void CheckProductPriceRequestStatus(ProductPriceRequestInfo productPriceRequest, ProductPriceRequestStatus?status, ref string productID, ref int proSysNo) { CheckProductPriceReques(productPriceRequest); if (productPriceRequest.AuditType == null) { throw new BizException(ResouceManager.GetMessageString("IM.ProductPriceRequest", "ProductPriceRequestTypeIsNull")); } var productPriceRequestDA = ObjectFactory <IProductPriceRequestDA> .Instance; if (productPriceRequest.SysNo == null) { return; } var productSysNo = productPriceRequestDA.GetProductSysNoBySysNo(productPriceRequest.SysNo.Value); proSysNo = productSysNo; if (productSysNo <= 0) { throw new BizException(ResouceManager.GetMessageString("IM.ProductPriceRequest", "ProductSysNoIsNull")); } var productDA = ObjectFactory <IProductDA> .Instance; var product = productDA.GetProductInfoBySysNo(productSysNo); productID = product.ProductID; if (product == null || String.IsNullOrEmpty(product.ProductID)) { throw new BizException(ResouceManager.GetMessageString("IM.ProductPriceRequest", "ProductIsNull")); } if (productPriceRequest.RequestStatus == null) { throw new BizException(ResouceManager.GetMessageString("IM.ProductPriceRequest", "ProductPriceRequestStatusIsNull")); } if (!PendingList.Contains(productPriceRequest.RequestStatus.Value)) { var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest", "AuditProductPriceRequestForPending"); throw new BizException(String.Format(errorStr, product.ProductID)); } if (status != null && productPriceRequest.AuditType.Value == ProductPriceRequestAuditType.SeniorAudit && productPriceRequest.RequestStatus.Value == ProductPriceRequestStatus.NeedSeniorApprove && status.Value == ProductPriceRequestStatus.Origin) { var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest", "AuditProductPriceRequestForPending"); throw new BizException(String.Format(errorStr, product.ProductID)); } if (status != null && productPriceRequest.AuditType.Value == ProductPriceRequestAuditType.Audit && status.Value == ProductPriceRequestStatus.NeedSeniorApprove) { var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest", "TLAuditProductPriceRequest"); throw new BizException(String.Format(errorStr, product.ProductID)); } if (productPriceRequest.AuditType.Value == ProductPriceRequestAuditType.SeniorAudit) { if (String.IsNullOrEmpty(productPriceRequest.TLMemo.Trim()) && productPriceRequest.RequestStatus.Value == ProductPriceRequestStatus.Origin) { var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest", "TLMemoInvalid"); throw new BizException(String.Format(errorStr, product.ProductID)); } if (String.IsNullOrEmpty(productPriceRequest.PMDMemo.Trim()) && productPriceRequest.RequestStatus.Value == ProductPriceRequestStatus.NeedSeniorApprove) { var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest", "PMDMemoInvalid"); throw new BizException(String.Format(errorStr, product.ProductID)); } } var result = ExternalDomainBroker.CheckMarketIsActivity(productSysNo); if (result && status == ProductPriceRequestStatus.Approved) { var errorStr = ResouceManager.GetMessageString("IM.ProductPriceRequest", "ProductPriceRequestStatusInvalid"); throw new BizException(String.Format(errorStr, product.ProductID)); } ExternalDomainBroker.CheckComboPriceAndSetStatus(productSysNo); }
public string CheckPendingMessage(string messageId) { PendingMessage pending = null; PendingList.TryGetValue(messageId, out pending); if (pending == null) { return(null); } if (pending.CheckCount > 10) { return(pending.MessageId); } // Every 20 minutes or first time if (!pending.LastCheckDate.HasValue || pending.LastCheckDate.Value.AddMinutes(20) < DateTime.Now) { var client = new SendInBlueClient(ApiKey); pending.CheckCount++; pending.LastCheckDate = DateTime.Now; Models.EmailEventReport result = null; try { result = client.GetMessageHistory(pending.SendInBlueMessageId); } catch (Exception ex) { GlobalConfiguration.Configuration.Logger.Error($"Get history fail with email {pending.Email}/{pending.Subject}"); GlobalConfiguration.Configuration.Logger.Error(ex); SentFail(pending, "sendinblue:historyFail", "Status code error"); } if (result == null) { return(null); } if (result.Events == null || result.Events.Count == 0) { return(null); } var item = result.Events.Last(); if (item.Event == EmailEventReportEvent.EventEnum.Clicks || item.Event == EmailEventReportEvent.EventEnum.Opened || item.Event == EmailEventReportEvent.EventEnum.Delivered) { GlobalConfiguration.Configuration.Logger.Debug($"email {pending.Email}/{pending.Subject} was sent with status {item.Event}"); return(pending.MessageId); } else if (item.Event == EmailEventReportEvent.EventEnum.Bounces || item.Event == EmailEventReportEvent.EventEnum.HardBounces || item.Event == EmailEventReportEvent.EventEnum.SoftBounces) { GlobalConfiguration.Configuration.Logger.Warn($"email {pending.Email}/{pending.Subject} was bounces"); SentFail(pending, "sendinblue:bounce", item.Reason); return(pending.MessageId); } else if (item.Event == EmailEventReportEvent.EventEnum.Blocked) { GlobalConfiguration.Configuration.Logger.Warn($"email {pending.Email}/{pending.Subject} was blocked"); SentFail(pending, "sendinblue:blocked"); } else if (item.Event == EmailEventReportEvent.EventEnum.Requests) { return(null); } else if (item.Event == EmailEventReportEvent.EventEnum.Spam) { GlobalConfiguration.Configuration.Logger.Warn($"email {pending.Email}/{pending.Subject} marked as spam"); SentFail(pending, "sendinblue:spam"); return(pending.MessageId); } else if (item.Event == EmailEventReportEvent.EventEnum.Unsubscribed) { GlobalConfiguration.Configuration.Logger.Warn($"email {pending.Email}/{pending.Subject} need unsubscribe"); SentFail(pending, "sendinblue:unsubscribe"); return(pending.MessageId); } else if (item.Event == EmailEventReportEvent.EventEnum.Invalid) { GlobalConfiguration.Configuration.Logger.Warn($"email {pending.Email}/{pending.Subject} was invalid"); SentFail(pending, "sendinblue:invalid"); return(pending.MessageId); } } return(null); }
public string CheckPendingMessage(string messageId) { PendingMessage pending = null; PendingList.TryGetValue(messageId, out pending); if (pending == null) { return(null); } if (pending.CheckCount > 10) { return(pending.MessageId); } // Every 20 minutes or first time if (!pending.LastCheckDate.HasValue || pending.LastCheckDate.Value.AddMinutes(20) < DateTime.Now) { var client = new MailJetClient(PublicKey, PrivateKey); pending.CheckCount++; pending.LastCheckDate = DateTime.Now; Models.MessageHistory result = null; try { result = client.GetMessageHistory(pending.MailJetMessageId); } catch (Exception ex) { GlobalConfiguration.Configuration.Logger.Error($"Get history fail with email {pending.Email}/{pending.Subject}"); GlobalConfiguration.Configuration.Logger.Error(ex); SentFail(pending, "mailjet:historyFail", "Status code error"); } if (result == null) { return(null); } if (result.Count == 0) { return(null); } var item = result.Data.Last(); if (item.EventType == Models.MessageStatus.Clicked || item.EventType == Models.MessageStatus.Opened || item.EventType == Models.MessageStatus.Sent) { GlobalConfiguration.Configuration.Logger.Debug($"email {pending.Email}/{pending.Subject} was sent with status {item.EventType}"); return(pending.MessageId); } else if (item.EventType == Models.MessageStatus.Bounced) { GlobalConfiguration.Configuration.Logger.Warn($"email {pending.Email}/{pending.Subject} was bounces"); SentFail(pending, "mailjet:bounce", item.Comment); return(pending.MessageId); } else if (item.EventType == Models.MessageStatus.Blocked) { GlobalConfiguration.Configuration.Logger.Warn($"email {pending.Email}/{pending.Subject} was blocked"); SentFail(pending, "mailjet:blocked"); } else if (item.EventType == Models.MessageStatus.Queued) { return(null); } else if (item.EventType == Models.MessageStatus.Spam) { GlobalConfiguration.Configuration.Logger.Warn($"email {pending.Email}/{pending.Subject} marked as spam"); SentFail(pending, "mailjet:spam"); return(pending.MessageId); } else if (item.EventType == Models.MessageStatus.Unsub) { GlobalConfiguration.Configuration.Logger.Warn($"email {pending.Email}/{pending.Subject} need unsubscribe"); SentFail(pending, "mailjet:unsubscribe"); return(pending.MessageId); } } return(null); }