string GetMessageTo(UnitOfWork unitOfWork, MessageGeneratorRule rule) { var criteria = rule.CustomMessage2ObjectCriteria; if (!string.IsNullOrEmpty(criteria)) { var to = ""; var objects = unitOfWork.GetObjects(unitOfWork.Dictionary.GetClassInfo(rule.BusinessObject4MessageTo), CriteriaOperator.Parse(rule.CustomMessage2ObjectCriteria), null, 100, false, true); foreach (var item in objects) { to += EvaluetedObject(unitOfWork, item, rule.CustomMessageTo) + "; "; } return(to); } return(rule.MessageTo); }
bool CancelNotSentMessage(UnitOfWork unitOfWork, object obj, MessageGeneratorRule rule) { var cancellationCriteriaResult = ObjectSpace.IsObjectFitForCriteria(obj, CriteriaOperator.Parse(rule.CancellationCriteria)); if (cancellationCriteriaResult != true) { return(false); } var classInfo = unitOfWork.GetClassInfo(obj); var key = classInfo.KeyProperty.GetValue(obj).ToString(); var notSentMessage = unitOfWork.Query <DoSoMessageBase>().Where(x => x.ExpiredOn == null && !x.IsSent && !x.IsCanceled && x.ObjectKey == key && x.ObjectTypeName == obj.GetType().FullName); foreach (var item in notSentMessage) { item.IsCanceled = true; item.StatusComment = string.Format("Cancelled From Rule - {0} {1}{2}{3}", rule.ID, DateTime.Now, Environment.NewLine, rule.CancellationComment); } return(true); }