private static ProcessEntity?UpdateMessages(List <SMSMessageEntity> messages) { if (!messages.Any()) { return(null); } SMSUpdatePackageEntity package = new SMSUpdatePackageEntity().Save(); var packLite = package.ToLite(); if (messages.Any(m => m.State != SMSMessageState.Sent)) { throw new ApplicationException("SMS messages must be sent prior to update the status"); } messages.ForEach(ms => ms.UpdatePackage = packLite); messages.SaveList(); var process = ProcessLogic.Create(SMSMessageProcess.UpdateStatus, package); process.Execute(ProcessOperation.Execute); return(process); }
public static ProcessEntity?UpdateAllSentSMS() { var messages = Database.Query <SMSMessageEntity>().Where(a => a.State == SMSMessageState.Sent); if (!messages.Any()) { return(null); } SMSUpdatePackageEntity package = new SMSUpdatePackageEntity(); package.Save(); messages.UnsafeUpdate().Set(a => a.UpdatePackage, a => package.ToLite()).Execute(); return(SMSMessageProcess.UpdateStatus.Create(package).Execute(ProcessOperation.Execute)); }