Ejemplo n.º 1
0
 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();
     }
 }
Ejemplo n.º 2
0
        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());
            }
        }
Ejemplo n.º 3
0
        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);
        }