private void LogNotificationJob(string subject, string recipient, string template, int mailtype, string branch, string branchname, List <Exceptions> allExceptions) { using (var _db = new AppDbContext()) { CM_BACK_JOBS backJob = new CM_BACK_JOBS { CUSTOMER_NO = null, JOB_TYPE = 2, FROM_EMAIL = "SVC_CMDM", DATE_LOGGED = DateTime.Now, CREATED_BY = "SYSTEM", RCPT_EMAIL = recipient, FLG_STATUS = 0, DATE_SENT = null, COUNT_RETRIES = 0, MSG_SUBJECT = subject, BRANCH_ID = Convert.ToInt32(branch), RECIPIENTNAME = recipient, REQUIREDDATE = DateTime.Now, MAILBODY = null, MAILBODY_2 = null, MAILTYPE = mailtype, MAIL_TEMPLATE = template, USERFULLNAME = "SVC_CMDM", BRANCHNAME = branchname, ACCOUNT_OFFICER = allExceptions[0].ACCOUNT_OFFICER, WRONG_SECTOR = allExceptions[0].WRONG_SECTOR, WRONG_SCHEME_CODES = allExceptions[0].WRONG_SCHEME_CODES, MULTIPLE_AO_CODES = allExceptions[0].MULTIPLE_AO_CODES, EMAIL_PHONE_VAL = allExceptions[0].EMAIL_PHONE_VAL, SEGMENT_MAPPING = allExceptions[0].SEGMENT_MAPPING, MULTIPLE_ID = allExceptions[0].MULTIPLE_ID, OUTSTANDING_DOCS = allExceptions[0].OUTSTANDING_DOCS, PHONE_NUMBER_VAL = allExceptions[0].PHONE_NUMBER_VAL }; _db.CM_BACK_JOBS.Add(backJob); _db.SaveChanges(); } }
public void LogEmailJob(int userProfile, string customerNo, MessageJobEnum.MailType mailType, int?createdBy = null) { string mailTemplate = null; string mailSubject = null; int branchId = Convert.ToInt32(GetBranchIdbyProdileId(userProfile)); List <string> recepientNames = new List <string>(); CM_BACK_JOBS backJob = new CM_BACK_JOBS(); switch (mailType) { case MessageJobEnum.MailType.Authorize: mailTemplate = "Authorize.cshtml"; mailSubject = "A new Customer information has been authorized"; recepientNames[0] = GetUserNamebyUserId(createdBy); break; case MessageJobEnum.MailType.Change: mailTemplate = "Change.cshtml"; mailSubject = "A new Customer information has been changed"; recepientNames = GetChekersbyMakerRole(userProfile, branchId.ToString()); break; case MessageJobEnum.MailType.Reject: mailTemplate = "Reject.cshtml"; mailSubject = "A new Customer information has been Rejected"; recepientNames[0] = GetUserNamebyUserId(createdBy); break; default: mailTemplate = "Change.cshtml"; recepientNames[0] = ""; break; } try { backJob = new CM_BACK_JOBS { CUSTOMER_NO = customerNo, JOB_TYPE = 2, FROM_EMAIL = GetUserNamebyUserId(userProfile), DATE_LOGGED = DateTime.Now, CREATED_BY = userProfile.ToString(), RCPT_EMAIL = recepientNames.SingleOrDefault(), FLG_STATUS = 1, DATE_SENT = DateTime.Now, COUNT_RETRIES = 0, MSG_SUBJECT = mailSubject, BRANCH_ID = branchId, RECIPIENTNAME = recepientNames.SingleOrDefault(), REQUIREDDATE = DateTime.Now, MAILBODY = null, MAILBODY_2 = null, MAILTYPE = (int)mailType, MAIL_TEMPLATE = mailTemplate, USERFULLNAME = GetUserFullNamebyProdileId(userProfile), BRANCHNAME = GetBranchName(branchId.ToString()) }; string htmlbody = GenerateBody(backJob); if (htmlbody.Length > 4000) { backJob.MAILBODY = htmlbody.Substring(1, 3999); backJob.MAILBODY_2 = htmlbody.Substring(4000); } else { backJob.MAILBODY = htmlbody; } db.CM_BACK_JOBS.Add(backJob); db.SaveChanges(); SendMail(recepientNames, mailSubject, htmlbody, backJob.FROM_EMAIL, GetUserFullNamebyProdileId(userProfile)); } catch (Exception e) { Console.WriteLine(e.ToString()); } }
public string GenerateBody(CM_BACK_JOBS job) { string htmlBody = string.Empty; switch (job.MAILTYPE) { case (int)MessageJobEnum.MailType.Authorize: var auth_customer = db.CM_BACK_JOBS.FirstOrDefault(o => o.CUSTOMER_NO == job.CUSTOMER_NO); // start template var auth_model = new MessageModel() { CUSTOMER_NO = auth_customer.CUSTOMER_NO, RequiredDate = Convert.ToDateTime(auth_customer.REQUIREDDATE), UserID = job.USERFULLNAME, BRANCHNAME = job.BRANCHNAME, RCPT_EMAIL = job.RCPT_EMAIL, RECIPIENTNAME = job.RECIPIENTNAME }; var authEmailTemplate = File.ReadAllText(Path.Combine(TemplateFolderPath, job.MAIL_TEMPLATE)); AddDefaultNamespacesFromWebConfig(_templateService); htmlBody = _templateService.Parse(authEmailTemplate, auth_model, null, "AuthNotifyApprover"); //end template break; case (int)MessageJobEnum.MailType.Change: var change_customer = db.CM_BACK_JOBS.FirstOrDefault(o => o.CUSTOMER_NO == job.CUSTOMER_NO); // start template var change_model = new MessageModel() { CUSTOMER_NO = change_customer.CUSTOMER_NO, RequiredDate = Convert.ToDateTime(change_customer.REQUIREDDATE), UserID = job.USERFULLNAME, BRANCHNAME = job.BRANCHNAME, RCPT_EMAIL = job.RCPT_EMAIL, RECIPIENTNAME = job.RECIPIENTNAME }; var changeEmailTemplate = File.ReadAllText(Path.Combine(TemplateFolderPath, job.MAIL_TEMPLATE)); AddDefaultNamespacesFromWebConfig(_templateService); htmlBody = _templateService.Parse(changeEmailTemplate, change_model, null, "ChangeNotifyApprover"); //end template break; case (int)MessageJobEnum.MailType.Reject: var reject_customer = db.CM_BACK_JOBS.FirstOrDefault(o => o.CUSTOMER_NO == job.CUSTOMER_NO); // start template var reject_model = new MessageModel() { CUSTOMER_NO = reject_customer.CUSTOMER_NO, RequiredDate = Convert.ToDateTime(reject_customer.REQUIREDDATE), UserID = job.USERFULLNAME, BRANCHNAME = job.BRANCHNAME, RCPT_EMAIL = job.RCPT_EMAIL, RECIPIENTNAME = job.RECIPIENTNAME }; var rejectEmailTemplate = File.ReadAllText(Path.Combine(TemplateFolderPath, job.MAIL_TEMPLATE)); AddDefaultNamespacesFromWebConfig(_templateService); htmlBody = _templateService.Parse(rejectEmailTemplate, reject_model, null, "RejectNotifyApprover"); //end template break; case (int)MessageJobEnum.MailType.CsoNotification: var cso_customer = db.CM_BACK_JOBS.FirstOrDefault(o => o.JOBID == job.JOBID); // start template var cso_model = new MessageModel() { CUSTOMER_NO = cso_customer.CUSTOMER_NO, RequiredDate = Convert.ToDateTime(cso_customer.REQUIREDDATE), UserID = job.USERFULLNAME, BRANCH_ID = job.BRANCH_ID, BRANCHNAME = job.BRANCHNAME, RCPT_EMAIL = job.RCPT_EMAIL, RECIPIENTNAME = job.RECIPIENTNAME, OUTSTANDING_DOCS = job.OUTSTANDING_DOCS, MULTIPLE_AO_CODES = job.MULTIPLE_AO_CODES, PHONE_NUMBER_VAL = job.PHONE_NUMBER_VAL, ACCOUNT_OFFICER = job.ACCOUNT_OFFICER, WRONG_SECTOR = job.WRONG_SECTOR, SEGMENT_MAPPING = job.SEGMENT_MAPPING, WRONG_SCHEME_CODES = job.WRONG_SCHEME_CODES }; var csoEmailTemplate = File.ReadAllText(Path.Combine(BackTemplateFolderPath, job.MAIL_TEMPLATE)); AddDefaultNamespacesFromWebConfig(_templateService); htmlBody = _templateService.Parse(csoEmailTemplate, cso_model, null, "NotifyCSO"); //end template break; case (int)MessageJobEnum.MailType.CsmNotification: var csm_customer = db.CM_BACK_JOBS.FirstOrDefault(o => o.JOBID == job.JOBID); // start template var csm_model = new MessageModel() { CUSTOMER_NO = csm_customer.CUSTOMER_NO, RequiredDate = Convert.ToDateTime(csm_customer.REQUIREDDATE), UserID = job.USERFULLNAME, BRANCH_ID = job.BRANCH_ID, BRANCHNAME = job.BRANCHNAME, RCPT_EMAIL = job.RCPT_EMAIL, RECIPIENTNAME = job.RECIPIENTNAME, OUTSTANDING_DOCS = job.OUTSTANDING_DOCS, MULTIPLE_AO_CODES = job.MULTIPLE_AO_CODES, PHONE_NUMBER_VAL = job.PHONE_NUMBER_VAL, ACCOUNT_OFFICER = job.ACCOUNT_OFFICER, WRONG_SECTOR = job.WRONG_SECTOR, SEGMENT_MAPPING = job.SEGMENT_MAPPING, WRONG_SCHEME_CODES = job.WRONG_SCHEME_CODES }; var csmEmailTemplate = File.ReadAllText(Path.Combine(BackTemplateFolderPath, job.MAIL_TEMPLATE)); AddDefaultNamespacesFromWebConfig(_templateService); htmlBody = _templateService.Parse(csmEmailTemplate, csm_model, null, "NotifyCsm"); //end template break; case (int)MessageJobEnum.MailType.ZsmNotification: var zsm_customer = db.CM_BACK_JOBS.FirstOrDefault(o => o.JOBID == job.JOBID); // start template var zsm_model = new MessageModel() { CUSTOMER_NO = zsm_customer.CUSTOMER_NO, RequiredDate = Convert.ToDateTime(zsm_customer.REQUIREDDATE), UserID = job.USERFULLNAME, BRANCH_ID = job.BRANCH_ID, BRANCHNAME = job.BRANCHNAME, RCPT_EMAIL = job.RCPT_EMAIL, RECIPIENTNAME = job.RECIPIENTNAME, OUTSTANDING_DOCS = job.OUTSTANDING_DOCS, MULTIPLE_AO_CODES = job.MULTIPLE_AO_CODES, PHONE_NUMBER_VAL = job.PHONE_NUMBER_VAL, ACCOUNT_OFFICER = job.ACCOUNT_OFFICER, WRONG_SECTOR = job.WRONG_SECTOR, SEGMENT_MAPPING = job.SEGMENT_MAPPING, WRONG_SCHEME_CODES = job.WRONG_SCHEME_CODES }; var zsmEmailTemplate = File.ReadAllText(Path.Combine(BackTemplateFolderPath, job.MAIL_TEMPLATE)); AddDefaultNamespacesFromWebConfig(_templateService); htmlBody = _templateService.Parse(zsmEmailTemplate, zsm_model, null, "NotifyZsm"); //end template break; case (int)MessageJobEnum.MailType.AmuNotification: var amu_customer = db.CM_BACK_JOBS.FirstOrDefault(o => o.JOBID == job.JOBID); // start template var amu_model = new MessageModel() { CUSTOMER_NO = amu_customer.CUSTOMER_NO, RequiredDate = Convert.ToDateTime(amu_customer.REQUIREDDATE), UserID = job.USERFULLNAME, BRANCH_ID = job.BRANCH_ID, BRANCHNAME = job.BRANCHNAME, RCPT_EMAIL = job.RCPT_EMAIL, RECIPIENTNAME = job.RECIPIENTNAME, MULTIPLE_ID = job.MULTIPLE_ID }; var amuEmailTemplate = File.ReadAllText(Path.Combine(BackTemplateFolderPath, job.MAIL_TEMPLATE)); AddDefaultNamespacesFromWebConfig(_templateService); htmlBody = _templateService.Parse(amuEmailTemplate, amu_model, null, "NotifyAmu"); //end template break; case (int)MessageJobEnum.MailType.AmuCsmNotification: var amuCsm_customer = db.CM_BACK_JOBS.FirstOrDefault(o => o.JOBID == job.JOBID); // start template var amuCsm_model = new MessageModel() { CUSTOMER_NO = amuCsm_customer.CUSTOMER_NO, RequiredDate = Convert.ToDateTime(amuCsm_customer.REQUIREDDATE), UserID = job.USERFULLNAME, BRANCH_ID = job.BRANCH_ID, BRANCHNAME = job.BRANCHNAME, RCPT_EMAIL = job.RCPT_EMAIL, RECIPIENTNAME = job.RECIPIENTNAME, MULTIPLE_ID = job.MULTIPLE_ID }; var amuCsmEmailTemplate = File.ReadAllText(Path.Combine(BackTemplateFolderPath, job.MAIL_TEMPLATE)); AddDefaultNamespacesFromWebConfig(_templateService); htmlBody = _templateService.Parse(amuCsmEmailTemplate, amuCsm_model, null, "NotifyAmuCsm"); //end template break; case (int)MessageJobEnum.MailType.AmuZsmNotification: var amuZsm_customer = db.CM_BACK_JOBS.FirstOrDefault(o => o.JOBID == job.JOBID); // start template var amuZsm_model = new MessageModel() { CUSTOMER_NO = amuZsm_customer.CUSTOMER_NO, RequiredDate = Convert.ToDateTime(amuZsm_customer.REQUIREDDATE), UserID = job.USERFULLNAME, BRANCH_ID = job.BRANCH_ID, BRANCHNAME = job.BRANCHNAME, RCPT_EMAIL = job.RCPT_EMAIL, RECIPIENTNAME = job.RECIPIENTNAME, MULTIPLE_ID = job.MULTIPLE_ID }; var amuZsmEmailTemplate = File.ReadAllText(Path.Combine(BackTemplateFolderPath, job.MAIL_TEMPLATE)); AddDefaultNamespacesFromWebConfig(_templateService); htmlBody = _templateService.Parse(amuZsmEmailTemplate, amuZsm_model, null, "NotifyAmuZsm"); //end template break; case (int)MessageJobEnum.MailType.FinconNotification: var fincon_customer = db.CM_BACK_JOBS.FirstOrDefault(o => o.JOBID == job.JOBID); // start template var fincon_model = new MessageModel() { CUSTOMER_NO = fincon_customer.CUSTOMER_NO, RequiredDate = Convert.ToDateTime(fincon_customer.REQUIREDDATE), UserID = job.USERFULLNAME, BRANCH_ID = job.BRANCH_ID, BRANCHNAME = job.BRANCHNAME, RCPT_EMAIL = job.RCPT_EMAIL, RECIPIENTNAME = job.RECIPIENTNAME, MULTIPLE_AO_CODES = job.MULTIPLE_AO_CODES }; var finconEmailTemplate = File.ReadAllText(Path.Combine(BackTemplateFolderPath, job.MAIL_TEMPLATE)); AddDefaultNamespacesFromWebConfig(_templateService); htmlBody = _templateService.Parse(finconEmailTemplate, fincon_model, null, "NotifyFincon"); //end template break; case (int)MessageJobEnum.MailType.BmNotification: var bm_customer = db.CM_BACK_JOBS.FirstOrDefault(o => o.JOBID == job.JOBID); // start template var bm_model = new MessageModel() { CUSTOMER_NO = bm_customer.CUSTOMER_NO, RequiredDate = Convert.ToDateTime(bm_customer.REQUIREDDATE), UserID = job.USERFULLNAME, BRANCH_ID = job.BRANCH_ID, BRANCHNAME = job.BRANCHNAME, RCPT_EMAIL = job.RCPT_EMAIL, RECIPIENTNAME = job.RECIPIENTNAME, MULTIPLE_AO_CODES = job.MULTIPLE_AO_CODES }; var bmEmailTemplate = File.ReadAllText(Path.Combine(BackTemplateFolderPath, job.MAIL_TEMPLATE)); AddDefaultNamespacesFromWebConfig(_templateService); htmlBody = _templateService.Parse(bmEmailTemplate, bm_model, null, "NotifyBm"); //end template break; case (int)MessageJobEnum.MailType.ZonalControlNotification: var zonal_control_customer = db.CM_BACK_JOBS.FirstOrDefault(o => o.JOBID == job.JOBID); // start template var zonal_control_model = new MessageModel() { CUSTOMER_NO = zonal_control_customer.CUSTOMER_NO, RequiredDate = Convert.ToDateTime(zonal_control_customer.REQUIREDDATE), UserID = job.USERFULLNAME, BRANCH_ID = job.BRANCH_ID, BRANCHNAME = job.BRANCHNAME, RCPT_EMAIL = job.RCPT_EMAIL, RECIPIENTNAME = job.RECIPIENTNAME, OUTSTANDING_DOCS = job.OUTSTANDING_DOCS, PHONE_NUMBER_VAL = job.PHONE_NUMBER_VAL, ACCOUNT_OFFICER = job.ACCOUNT_OFFICER, WRONG_SECTOR = job.WRONG_SECTOR, SEGMENT_MAPPING = job.SEGMENT_MAPPING, WRONG_SCHEME_CODES = job.WRONG_SCHEME_CODES }; var zonalControlEmailTemplate = File.ReadAllText(Path.Combine(BackTemplateFolderPath, job.MAIL_TEMPLATE)); AddDefaultNamespacesFromWebConfig(_templateService); htmlBody = _templateService.Parse(zonalControlEmailTemplate, zonal_control_model, null, "NotifyZonalControl"); //end template break; case (int)MessageJobEnum.MailType.ZonalHeadNotification: var zonal_head_customer = db.CM_BACK_JOBS.FirstOrDefault(o => o.JOBID == job.JOBID); // start template var zonal_head_model = new MessageModel() { CUSTOMER_NO = zonal_head_customer.CUSTOMER_NO, RequiredDate = Convert.ToDateTime(zonal_head_customer.REQUIREDDATE), UserID = job.USERFULLNAME, BRANCH_ID = job.BRANCH_ID, BRANCHNAME = job.BRANCHNAME, RCPT_EMAIL = job.RCPT_EMAIL, RECIPIENTNAME = job.RECIPIENTNAME, MULTIPLE_AO_CODES = job.MULTIPLE_AO_CODES }; var zonalHeadEmailTemplate = File.ReadAllText(Path.Combine(BackTemplateFolderPath, job.MAIL_TEMPLATE)); AddDefaultNamespacesFromWebConfig(_templateService); htmlBody = _templateService.Parse(zonalHeadEmailTemplate, zonal_head_model, null, "NotifyZonalHead"); //end template break; default: break; } return (htmlBody); }