// This can be used in future // private MailAddressCollection RemoveDuplicateAddresses(MailAddressCollection mailAddressCollection) // { // throw new NotImplementedException(); // } /// <summary> /// Method to get mail template based on mail type to be sent. /// Also it will fetch ticket details to be send with mail /// </summary> /// <param name="mail">Mail object- mail type and Ticket details</param> /// <param name="subject">get and send back mail subject from template</param> /// <returns>MAil body</returns> private string GetMailBody(dynamic mail, out string subject) { try { // Mail template string template = null; // Ticket data to be assigned in template List <string> data = new List <string>(); // Type of mail to be sent MailMessageType mailType = (MailMessageType)mail.MailType; // Take template based on mail type switch (mailType) { // When Changes request is initiated case MailMessageType.RequesterRaisedRequest: template = GetDataIntoTemplate(config.RequesterRaisedRequest, mail, ref data); break; // When Changes request Failed On TestMachine case MailMessageType.RequestFailedOnTestMachine: data.Add("REQUEST VERIFICATION FAILED ON SANDBOX"); template = GetDataIntoTemplate(config.RequestFailedOnTestMachine, mail, ref data); break; // When Changes request Failed On Production case MailMessageType.RequestFailedOnProdMachine: data.Add("REQUEST VERIFICATION FAILED ON PRODUCTION"); template = GetDataIntoTemplate(config.RequestFailedOnProdMachine, mail, ref data); break; // When Changes request RollBack On TestMachine case MailMessageType.RequestRollbackOnSandBox: data.Add("REQUEST ROLLBACK ON SANDBOX"); template = GetDataIntoTemplate(config.RequestRollbackOnSandBox, mail, ref data); break; // When Changes request Rollback On Production case MailMessageType.RequestRollbackOnProduction: data.Add("REQUEST ROLLBACK ON PRODUCTION"); template = GetDataIntoTemplate(config.RequestRollbackOnProduction, mail, ref data); break; // When Changes request is sent for approval case MailMessageType.RequestSentForApproval: data.Add("#FF8C00"); data.Add("AWAITING APPROVAL"); template = GetDataIntoTemplate(config.RequestSentForApproval, mail, ref data); break; // When Changes request is approved by any approver case MailMessageType.RequestApproved: data.Add("#107C10"); data.Add("REQUEST APPROVED"); template = GetDataIntoTemplate(config.RequestApproved, mail, ref data); break; // When change request is Rejected case MailMessageType.RequestRejected: data.Add("REQUEST REJECTED"); template = GetDataIntoTemplate(config.RequestRejected, mail, ref data); break; // When change request is Delegated case MailMessageType.RequestDelegated: data.Add("REQUEST DELEGATED FOR TICKET"); template = GetDataIntoTemplate(config.RequestDelegated, mail, ref data); break; // When change request is SignOff case MailMessageType.SignOff: data.Add("#004B1C"); data.Add("REQUEST SIGNED-OFF"); template = GetDataIntoTemplate(config.SignOff, mail, ref data); break; // When Changes request is production changes are done through scheduler case MailMessageType.ProductionChangesDoneThroughScheduler: data.Add("PRODUCTION CHANGES DONE THROUGH SCHEDULER"); template = GetDataIntoTemplate(config.ProductionChangesDoneThroughScheduler, mail, ref data); break; // When Changes request is scheduled for production case MailMessageType.RequestScheduledForProduction: data.Add("REQUEST SCHEDULED FOR PRODUCTION CHANGES"); template = GetDataIntoTemplate(config.RequestScheduledForProduction, mail, ref data); break; // When User is Edited case MailMessageType.UserEdited: data.Add("USER INFORMATION EDITED SUCCESSFULLY"); // User requested for Registration on EMIE SSP template = GetUserDataIntoTemplate(config.UserEdited, mail, ref data); break; // When user registration is done case MailMessageType.UserRegistered: data.Add("USER REGISTERATION"); template = GetUserDataIntoTemplate(config.UserRegistered, mail, ref data); break; // When user requested registration case MailMessageType.RegistrationRequested: data.Add("USER REGISTRATION"); template = GetUserDataIntoTemplate(config.UserRegistrationRequested, mail, ref data); break; // When User is Activated case MailMessageType.UserActivated: data.Add("USER ACTIVATION"); template = GetUserDataIntoTemplate(config.UserActivated, mail, ref data); break; // When User is Deleted case MailMessageType.UserDeactivated: data.Add("USER DEACTIVATION"); template = GetUserDataIntoTemplate(config.UserDeactivated, mail, ref data); break; // When New User Added case MailMessageType.UserAdded: data.Add("USER ACTIVATION"); template = GetUserDataIntoTemplate(config.UserAdded, mail, ref data); break; // When Reminder for changes request approval is sent to approvers case MailMessageType.SendReminder: data.Add("#FF8C00"); data.Add("AWAITING APPROVAL"); template = GetDataIntoTemplate(config.SendReminder, mail, ref data); break; // When Configuration Settings Edited is done case MailMessageType.ConfigurationSettingsEdited: template = GetConfigurationDataIntoTemplate(config.ConfigurationSettingsEdited, mail, ref data); break; case MailMessageType.ContactSupportTeam: data.Add("Ticket Information"); template = GetDataIntoTemplate(config.ContactSupportTeam, mail, ref data); break; // If none of above mail type found default: throw new InvalidEnumArgumentException(Constants.MailType); } // Get mail subject subject = mailType.GetDescription(); // Return mail body return(template); } catch { throw; } }