/// <summary> /// Method builds a set of EDTTransactionMessage objects based on Guidance Message Counts and /// whether the XML passed schema validate, and binds these new objects to the EDTTransaction. /// </summary> /// <param name="cmePackage"></param> private void PopulateEDTTranactionMessages(CMEPackage cmePackage) { if (cmePackage == null) { throw new ArgumentNullException("cmePackage"); } // Retrieve Guidance Message Counts for EDT Transaction Messages var requiredGuidanceMessageCount = cmePackage.GuidanceMessages.Count(gm => gm.LevelID == (int)GuidanceLevel.Required && !gm.Voided); var warningGuidanceMessageCount = cmePackage.GuidanceMessages.Count(gm => gm.LevelID == (int)GuidanceLevel.Warning && !gm.Voided); var advisoryGuidanceMessageCount = cmePackage.GuidanceMessages.Count(gm => gm.LevelID == (int)GuidanceLevel.Advisory && !gm.Voided); // Add RequiredSummary EDT Transaction Message if (requiredGuidanceMessageCount > 0) { var messageText = "Found " + requiredGuidanceMessageCount + " Required Guidance Messages."; if (!cmePackage.IsValidXMLAgainstSchema) { messageText = "XML did not pass schema validation. " + messageText; } var requiredEDTTransactionMessage = new EDTTransactionMessage { EDTTransaction = cmePackage.EDTTransaction, TypeID = (int)EDTTransactionMessageType.Required, Message = messageText }; requiredEDTTransactionMessage.SetCommonFields(currentUserID: Repository.ContextAccountID, creating: true); cmePackage.EDTTransactionMessages.Add(requiredEDTTransactionMessage); } // Add WarningSummary EDT Transaction Message if (cmePackage.GuidanceMessages.Count(gm => gm.LevelID == (int)GuidanceLevel.Warning && !gm.Voided) > 0) { var warningEDTTransactionMessage = new EDTTransactionMessage { EDTTransaction = cmePackage.EDTTransaction, TypeID = (int)EDTTransactionMessageType.Warning, Message = "Found " + requiredGuidanceMessageCount + " Warning Guidance Messages." }; warningEDTTransactionMessage.SetCommonFields(currentUserID: Repository.ContextAccountID, creating: true); cmePackage.EDTTransactionMessages.Add(warningEDTTransactionMessage); } // Add AdvisorySummary EDT Transaction Message if (cmePackage.GuidanceMessages.Count(gm => gm.LevelID == (int)GuidanceLevel.Advisory && !gm.Voided) > 0) { var advisoryEDTTransactionMessage = new EDTTransactionMessage { EDTTransaction = cmePackage.EDTTransaction, TypeID = (int)EDTTransactionMessageType.Advisory, Message = "Found " + requiredGuidanceMessageCount + " Advisory Guidance Messages." }; advisoryEDTTransactionMessage.SetCommonFields(currentUserID: Repository.ContextAccountID, creating: true); cmePackage.EDTTransactionMessages.Add(advisoryEDTTransactionMessage); } }
public void WriteMessage(string message, EDTTransactionMessageType type) { EDTTransactionMessage entry = new EDTTransactionMessage(); entry.TypeID = (int)type; entry.EDTTransaction = Transaction; entry.Message = message; Repository.EDTTransactionMessages.Save(entry); WriteActivity(message, type: type); }