public async Task SendAddfare(List <IncamAddfareModel> incamAddfares)
        {
            foreach (var incamAddfare in incamAddfares)
            {
                var name           = incamAddfare.name;
                var all            = (float)incamAddfare.hour_price * incamAddfare.hour;
                var all_tax        = Math.Truncate(all * incamAddfare.income / 10) * 10;
                var hour           = incamAddfare.hour;
                var income_type_nm = incamAddfare.income_type_nm;
                var hour_price     = incamAddfare.hour_price;
                var employee_all   = (float)incamAddfare.contract_price * incamAddfare.hour;
                var employee_tax   = Math.Truncate(employee_all * incamAddfare.income / 10) * 10;
                var contract_price = incamAddfare.contract_price;
                var remit          = (all - all_tax) - (employee_all - employee_tax);
                var class_name     = incamAddfare.@class;
                var month          = incamAddfare.addfare_date.Month;
                var day            = incamAddfare.addfare_date.Day;

                var result = await(
                    from teacher in _context.TeacherContext
                    where teacher.teacher_seq == incamAddfare.teacher_seq
                    select teacher).FirstOrDefaultAsync();

                string title = $"[핀인사이트] {incamAddfare.@class} 지급명세서 {incamAddfare.addfare_date.ToString("yyyy-MM-dd")}";

                string content = $@"
                   <br/>
                   <br/>
                   안녕하세요, <span style='color:blue'>{incamAddfare.name}</span> 님<br/>
                   <br/>
                   {incamAddfare.@class} 과정 강의료 지급명세서 송부합니다.<br/>
                   명세서 확인 후 아래와 같이 송금 요청드립니다.<br/>
                   <br/>
                   - 교육과정 총 입금액 : ₩{ToAccounting(all - all_tax)}<br/>
                   - 강의료 실지급액 : <span style='color:blue;'>₩{ToAccounting(employee_all - employee_tax)}</span> <span style='color:red;'>(세전 {contract_price / 10000}만원 * {hour}시간)</span><br/>
                   - 송금요청액 : <span style='color:blue;'>₩{ToAccounting(remit)}</span><br/>
                   - 송금계좌 : KB국민 | 277237-04-001089 | (주)핀인사이트<br/>
                   <br/>
                   <br/>
                   지급명세서는 아래 링크에서 확인하실수 있습니다. (링크를 공유하지 말아주세요)<br/>
                   <a href='http://49.50.172.5:8080/admin?seq={result.teacher_seq}&password={result.passwd}' target='_blank'>지급명세서 확인</a><br/>
                ";

                string[] test = { "*****@*****.**" };
                await _email.SendEmail(result.email, title, content, test);

                EmailLogModel emailLog = new EmailLogModel
                {
                    use_yn   = 1,
                    subject  = title,
                    contents = content,
                    to       = result.email,
                    type     = "addfare"
                };

                await _context.AddAsync(emailLog);

                await _context.SaveChangesAsync();
            }
        }
Example #2
0
 //
 //====================================================================================================
 /// <summary>
 /// getFieldEditorPreference remote method
 /// </summary>
 /// <param name="cp"></param>
 /// <returns></returns>
 public override object Execute(Contensive.BaseClasses.CPBaseClass cp)
 {
     try {
         CoreController core        = ((CPClass)cp).core;
         int            emailDropId = core.docProperties.getInteger(rnEmailOpenFlag);
         if (emailDropId != 0)
         {
             //
             // -- Email open detected. Log it and redirect to a 1x1 spacer
             EmailDropModel emailDrop = DbBaseModel.create <EmailDropModel>(core.cpParent, emailDropId);
             if (emailDrop != null)
             {
                 PersonModel recipient = DbBaseModel.create <PersonModel>(core.cpParent, core.docProperties.getInteger(rnEmailMemberId));
                 if (recipient != null)
                 {
                     EmailLogModel log = DbBaseModel.addDefault <EmailLogModel>(core.cpParent);
                     log.name        = "User " + recipient.name + " opened email drop " + emailDrop.name + " at " + core.doc.profileStartTime.ToString();
                     log.emailDropId = emailDrop.id;
                     log.emailId     = emailDrop.emailId;
                     log.memberId    = recipient.id;
                     log.logType     = EmailLogTypeOpen;
                     log.visitId     = cp.Visit.Id;
                     log.save(cp);
                 }
             }
         }
         core.webServer.redirect(NonEncodedLink: "" + cdnPrefix + "images/spacer.gif", RedirectReason: "Group Email Open hit, redirecting to a dummy image", IsPageNotFound: false, allowDebugMessage: false);
     } catch (Exception ex) {
         cp.Site.ErrorReport(ex);
     }
     return("");
 }
Example #3
0
        public async Task <EmailLogModel> Save(EmailLogModel data)
        {
            EmailLogModel objEmailLogModel = new EmailLogModel();
            Message       _objMessage;
            string        returnMsg = string.Empty;

            try
            {
                _objMessage                  = Message.CreateMessageObject(System.Configuration.ConfigurationManager.AppSettings["COMM_TYPE"].ToString());
                _objMessage._toMailId        = data.MailTo.ToString();
                _objMessage._ccToEmailId     = data.MailCC.ToString();
                _objMessage._bccToEmailId    = data.MailBCC.ToString();
                _objMessage._subject         = data.Subject.ToString();
                _objMessage._messageBody     = data.MailSMSBody.ToString();
                _objMessage._mailAttachments = data.MailAttachments.ToString();
                _objMessage._hostName        = System.Configuration.ConfigurationManager.AppSettings["HostName"].ToString();
                _objMessage._port            = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["Port"].ToString());
                _objMessage._fromMailId      = System.Configuration.ConfigurationManager.AppSettings["FromMailId"].ToString();
                _objMessage._frmEmailPwd     = System.Configuration.ConfigurationManager.AppSettings["FrmEmailPwd"].ToString();
                _objMessage._isBodyHtml      = Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["IsBodyHtml"].ToString());
                _objMessage._isSSLEnable     = System.Configuration.ConfigurationManager.AppSettings["IsSSLEnable"].ToString();
                returnMsg        = _objMessage.Send();
                objEmailLogModel = await _emailLog.SaveAsync(data);

                objEmailLogModel.ReturnMessage = returnMsg;
                return(objEmailLogModel);
            }
            catch (Exception ex)
            {
                Common.MyLogger.Error(ex.Message + ex.StackTrace + ex.InnerException.ToString());
                return(null);
            }
        }
        public async Task <ActionResult> Put([FromBody] EmailLogModel emaillogs, int email_log_seq)
        {
            emaillogs.email_log_seq = email_log_seq;
            await _emaillog.Update(emaillogs);

            return(Ok());
        }
Example #5
0
        public bool sendEmail(HttpContext context, string userEmail, string callBackUrl, IEmailServerModel model, Constant.EmailType emailType, long userId = 0, long systemId = 0)
        {
            if (model.UserName == null)
            {
                model.UserName = context.User.Identity.Name;
            }
            if (userEmail == null)
            {
                userEmail = Convert.ToString(context.Session[Constant.EmailId]);
            }

            //long userId = Convert.ToInt64(context.Session[Constant.UserId]);
            //long sysytemId = (long)context.Session[Constant.SystemId];
            //IEmailLogModel emailLog = generateEmailLogModel(context);

            IEmailLogModel emailLog = new EmailLogModel {
                UserId = userId, SystemId = systemId, To = userEmail
            };

            if (this.SendEmail(emailLog, callBackUrl, model, emailType) == 1)
            {
                return(true);
            }

            return(false);
        }
        public async Task <ActionResult> Post([FromBody] EmailLogModel emaillogs)
        {
            emaillogs.reg_date = DateTime.Now;
            await _emaillog.Add(emaillogs);

            return(Ok());
        }
Example #7
0
 //
 //====================================================================================================
 /// <summary>
 /// getFieldEditorPreference remote method
 /// </summary>
 /// <param name="cp"></param>
 /// <returns></returns>
 public override object Execute(Contensive.BaseClasses.CPBaseClass cp)
 {
     try {
         CoreController core = ((CPClass)cp).core;
         //
         // -- Email click detected
         EmailDropModel emailDrop = DbBaseModel.create <EmailDropModel>(core.cpParent, core.docProperties.getInteger(rnEmailClickFlag));
         if (emailDrop != null)
         {
             PersonModel recipient = DbBaseModel.create <PersonModel>(core.cpParent, core.docProperties.getInteger(rnEmailMemberId));
             if (recipient != null)
             {
                 EmailLogModel log = DbBaseModel.addDefault <EmailLogModel>(core.cpParent);
                 log.name        = "User " + recipient.name + " clicked link from email drop " + emailDrop.name + " at " + core.doc.profileStartTime.ToString();
                 log.emailDropId = emailDrop.id;
                 log.emailId     = emailDrop.emailId;
                 log.memberId    = recipient.id;
                 log.logType     = EmailLogTypeClick;
                 log.visitId     = cp.Visit.Id;
                 log.save(cp);
             }
         }
     } catch (Exception ex) {
         cp.Site.ErrorReport(ex);
     }
     return("");
 }
Example #8
0
        public EmailLogModel Update(EmailLogModel entity)
        {
            var emailLog = _emailLog.Update(Mapper.Map <EmailLog>(entity));

            return(new EmailLogModel {
                LogId = emailLog.LogId
            });
        }
Example #9
0
        public async Task <EmailLogModel> UpdateAsync(EmailLogModel entity)
        {
            var emailLog = await _emailLog.UpdateAsync(Mapper.Map <EmailLog>(entity));

            return(new EmailLogModel {
                LogId = emailLog.LogId
            });
        }
Example #10
0
        public async Task <EmailLogModel> CreateMail(EmailLogModel model)
        {
            EmailLog entity = _mapper.Map <EmailLog>(model);

            _dbcontext.Set <EmailLog>().Add(entity);
            int count = await _dbcontext.SaveChangesAsync();

            return(_mapper.Map <EmailLogModel>(entity));
        }
 public async Task Update(EmailLogModel emaillogModel)
 {
     //_context.Entry(emaillogModel).Property(x => x.email_log_seq).IsModified = true;
     _context.Entry(emaillogModel).Property(x => x.subject).IsModified  = true;
     _context.Entry(emaillogModel).Property(x => x.contents).IsModified = true;
     _context.Entry(emaillogModel).Property(x => x.to).IsModified       = true;
     _context.Entry(emaillogModel).Property(x => x.reg_date).IsModified = true;
     //_context.Entry(emaillogModel).Property(x => x.use_yn).IsModified = true;
     await _context.SaveChangesAsync();
 }
Example #12
0
        private IEmailLogModel generateEmailLogModel(HttpContext context)
        {
            string         userEmail = Convert.ToString(context.Session[Constant.EmailId]);
            long           userId    = Convert.ToInt64(context.Session[Constant.UserId]);
            long           systemId  = Convert.ToInt64(context.Session[Constant.SystemId]);
            IEmailLogModel emailLog  = new EmailLogModel {
                UserId = userId, SystemId = systemId, To = userEmail
            };

            return(emailLog);
        }
        public async Task <ActionResult> Delete(int seq)
        {
            EmailLogModel emaillogs = new EmailLogModel
            {
                email_log_seq = seq
            };

            emaillogs.use_yn = 0;
            await _emaillog.Delete(emaillogs);

            return(Ok());
        }
Example #14
0
        public async Task <bool> UpdateMailAfterSent(EmailLogModel model)
        {
            var entity = await _dbcontext.Set <EmailLog>().FirstOrDefaultAsync(x => x.Id == model.Id);

            if (entity != null)
            {
                entity.DateSent = model.DateSent;
                entity.IsSent   = model.IsSent;
                entity.Retires  = model.Retires;
            }
            int count = await _dbcontext.SaveChangesAsync();

            return(count > 0);
        }
Example #15
0
 //
 //====================================================================================================
 /// <summary>
 /// getFieldEditorPreference remote method
 /// </summary>
 /// <param name="cp"></param>
 /// <returns></returns>
 public override object Execute(Contensive.BaseClasses.CPBaseClass cp)
 {
     try {
         CoreController core = ((CPClass)cp).core;
         //
         // -- click spam block detected
         {
             string recipientEmailToBlock = core.docProperties.getText(rnEmailBlockRecipientEmail);
             if (!string.IsNullOrEmpty(recipientEmailToBlock))
             {
                 List <PersonModel> recipientList = DbBaseModel.createList <PersonModel>(core.cpParent, "(email=" + DbController.encodeSQLText(recipientEmailToBlock) + ")");
                 foreach (var recipient in recipientList)
                 {
                     recipient.allowBulkEmail = false;
                     recipient.save(cp, 0);
                     //
                     // -- Email spam footer was clicked, clear the AllowBulkEmail field
                     EmailController.addToBlockList(core, recipientEmailToBlock);
                     //
                     // -- log entry to track the result of this email drop
                     int emailDropId = core.docProperties.getInteger(rnEmailBlockRequestDropId);
                     if (emailDropId != 0)
                     {
                         EmailDropModel emailDrop = DbBaseModel.create <EmailDropModel>(cp, emailDropId);
                         if (emailDrop != null)
                         {
                             EmailLogModel log = DbBaseModel.addDefault <EmailLogModel>(core.cpParent);
                             log.name        = "User " + recipient.name + " clicked linked spam block from email drop " + emailDrop.name + " at " + core.doc.profileStartTime.ToString();
                             log.emailDropId = emailDrop.id;
                             log.emailId     = emailDrop.emailId;
                             log.memberId    = recipient.id;
                             log.logType     = EmailLogTypeBlockRequest;
                             log.visitId     = cp.Visit.Id;
                             log.save(cp);
                         }
                     }
                 }
             }
             return(cp.Content.GetCopy("Default Email Blocked Response Page", Resources.defaultEmailBlockedResponsePage));
         }
     } catch (Exception ex) {
         cp.Site.ErrorReport(ex);
     }
     return("");
 }
        public bool sendChangePasswordEmail(HttpContext context, string userEmail, string callBackUrl, IEmailServerModel model)
        {
            model.UserName = context.User.Identity.GetUserName();
            IEmailLogModel emailLog = new EmailLogModel {
                To = userEmail
            };

            if (this.SendEmail(emailLog, callBackUrl, model, Constant.EmailType.ChangePassword) == 1)
            {
                context.Items[Constant.QuerySuccess] = true;
                return(true);
            }
            else
            {
                context.Items[Constant.QuerySuccess] = false;
                return(false);
            }
        }
Example #17
0
        public bool ForgetPasswordEmail(string token, string email, string fullName, string userId)
        {
            try
            {
                string projectRootPath = _hostingEnvironment.ContentRootPath;
                //string folderPath = Path.Combine(projectRootPath, "~/EmailTemplate/PasswordResetNotification.html");

                var callbackUrl = "";
                callbackUrl = $"{_settings.EmailURL}/#/resetPassword/{userId}?token={token}";
                string confirmationEmailPath = Path.Combine(projectRootPath, "EmailTemplate/PasswordResetNotification.html");

                string fileContents = File.ReadAllText(confirmationEmailPath);
                fileContents = fileContents.Replace("##NAME##", $"{fullName}");
                fileContents = fileContents.Replace("##ACTIVATIONLINK##", callbackUrl);
                EmailLogModel logmodel = new EmailLogModel();
                logmodel.Receiver    = email;
                logmodel.Sender      = _mailsettings.MailFrom;
                logmodel.Subject     = "Password Reset Notification";
                logmodel.MessageBody = fileContents;
                logmodel.DateCreated = logmodel.DateToSend = DateTime.Now;
                logmodel.IsSent      = false;
                bool result = SendMail(logmodel.Subject, logmodel.Receiver, fileContents);
                if (result)
                {
                    logmodel.DateSent = DateTime.Now;
                    logmodel.IsSent   = true;
                    logmodel.Retires++;
                }
                else
                {
                    logmodel.IsSent = false;
                    logmodel.Retires++;
                }
                _emailRepository.CreateMail(logmodel);
                return(true);
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                return(false);
            }
        }
Example #18
0
        public static string Send(EmailLogModel Model)
        {
            var         FromEmail  = System.Configuration.ConfigurationManager.AppSettings["FromEmail"];
            var         password   = System.Configuration.ConfigurationManager.AppSettings["passsword"];
            int         PortNumber = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["PortNumber"]);
            string      HostName   = System.Configuration.ConfigurationManager.AppSettings["HostName"];
            MailMessage mail       = new MailMessage();

            mail.To.Add(Model.ToEmail);
            mail.From       = new MailAddress(FromEmail);
            mail.Subject    = Model.EmailSubject;
            mail.Body       = Model.EmailBody;
            mail.IsBodyHtml = true;

            if (Model.CcEmail != "" && Model.CcEmail != null)
            {
                mail.CC.Add(Model.CcEmail);
            }

            SmtpClient smtp = new SmtpClient();

            smtp.Host = HostName;
            smtp.Port = PortNumber;

            smtp.UseDefaultCredentials = false;
            smtp.EnableSsl             = true;

            smtp.Credentials    = new System.Net.NetworkCredential(FromEmail, password);
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
            try
            {
                smtp.Send(mail);
            }
            catch (Exception ex)
            {
                return(ex.Message.ToString());
            }

            return("");
        }
Example #19
0
        public ActionResult SaveContactDetail(ContactUsModel model)
        {
            var result = objContactUsService.AddEditContactDetails(model);

            var Emailresult = objContactUsService.GetEmailMasterByLanguageId(model.LanguageId);

            string send = "";

            if (Emailresult != "")
            {
                string bodyTemplate = "Name : " + model.Name;
                bodyTemplate = bodyTemplate + "</br>Email : " + model.Email;
                bodyTemplate = bodyTemplate + "</br>Message : " + model.Message;

                EmailLogModel ModelNew = new EmailLogModel();
                ModelNew.EmailBody    = bodyTemplate;
                ModelNew.EmailSubject = "Inquiry";
                ModelNew.ToEmail      = Emailresult;
                send = EmailHelper.Send(ModelNew);
            }
            return(Json(send, JsonRequestBehavior.AllowGet));
        }
        public async Task SendCertification(int class_seq, int order_user_seq, string file_path)
        {
            var result = await(
                from cls in _context.ClassContext
                join order_item in _context.OrderItemContext on class_seq equals order_item.class_seq
                join order in _context.OrderContext on order_item.order_id equals order.order_id
                join user in _context.UserContext on order.order_user_seq equals user.user_seq
                where cls.class_seq == class_seq && order.order_user_seq == order_user_seq
                select new ClassStudentModel
            {
                order_id       = order.order_id,
                order_user_seq = order.order_user_seq,
                name           = user.name,
                email          = user.email,
                class_nm       = cls.class_nm,
                order_item_seq = order_item.order_item_seq,
                order_date     = order.order_date,
                start_date     = cls.start_date,
                end_date       = cls.end_date,
                order_type     = order.order_type,
                order_price    = order.order_price,
                address        = order.address,
                survey_url     = cls.survey_url
            }).SingleAsync();

            string title = $"[인사이트 캠퍼스/ {result.class_nm}] 수료증 및 종강 설문조사 안내드립니다.";

            string content = $@"
                <p>안녕하세요,</p> 
                <p>인사이트 캠퍼스입니다.</p>
                <p>강의 수강하시느라 수고 많으셨습니다.</p>
                <br />
                <p>=========================</p>
                <p>- 수료증 (PDF 파일 첨부)</p>
                <br />
                <p>-설문조사 참여</p>
                <p>더 나은 교육을 위해 설문을 진행합니다.</p>
                <p>설문해주신 분들께 할인쿠폰을 드립니다.</p>
                <br />
                <p>*설문 맨 하단에 쿠폰코드가 있습니다.</p>
                <p>*할인쿠폰 종강 후 6개월 내 / 1회 / 타쿠폰과 중복 사용 가능.</p>
                <br />
                <p>설문하러가기>> <a href='{result.survey_url}'>{result.survey_url}</a></p>
                <br />
                <p>=========================</p>
                <br />
                <p>좋은 교육으로 또 뵙겠습니다.</p>
                <p>문의 있으시면 언제든 연락바랍니다.</p>
                <p>감사합니다.</p>";

            string[] sender = { "*****@*****.**" };

            string fileName = $"{result.class_nm}강의수료증({result.name}님)";

            await _email.SendEmail(result.email, title, content, file_path, fileName, sender);

            EmailLogModel emailLog = new EmailLogModel
            {
                use_yn   = 1,
                subject  = title,
                contents = content,
                to       = result.email,
                type     = "certification"
            };

            await _context.AddAsync(emailLog);

            await _context.SaveChangesAsync();
        }
Example #21
0
        public Int32 SendEmail(IEmailLogModel emailLog, string callBackUrl, IEmailServerModel model, Constant.EmailType emailType)
        {
            TempUserDAL    _dal          = new TempUserDAL();
            IEmailLogModel emailLogModel = null;
            string         emailBody     = "";
            string         emailSubject  = "";
            int            retVal        = 0;

            retVal = _dal.GetEmailTemplate(model.UserId, model.UserName, callBackUrl, ref emailBody, ref emailSubject, emailType);
            // Initialize emailLogModel
            //emailLogModel = new EmailLogModel() { UserId = model.UserId, To = user.EmailId, Subject = emailSubject, Body = emailBody, EmailType = (int)emailType };
            emailLogModel = new EmailLogModel()
            {
                UserId = emailLog.UserId, To = emailLog.To, Subject = emailSubject, Body = emailBody, EmailType = (int)emailType, SystemId = emailLog.SystemId
            };

            {
                model.SysEmailServers = new List <EmailServerModel>();
                model.SysEmailServers = GetEmailServerList();

                if (model.SysEmailServers.Count > 0)
                {
                    //MailMessage message = new MailMessage();
                    //message.From = new MailAddress("your email address");

                    //message.To.Add(new MailAddress("your recipient"));

                    //message.Subject = "your subject";
                    //message.Body = "content of your email";

                    //SmtpClient client = new SmtpClient();
                    //client.Send(message);



                    Email email = new Email("HireThingsAdminPortal", model.SysEmailServers);
                    email.SetToAddress(emailLog.To);
                    email.SetSubject(emailSubject);
                    email.SetBody(Convert.ToString(emailBody));
                    email.IsBodyHTML = true;
                    if (email.SendEmail())
                    {
                        // Email Log
                        emailLogModel.SentStatus = 1;
                        _dal.EmailLog(emailLogModel);
                        // Email sending successful
                        retVal = 1;
                    }
                    else
                    {
                        // Email Log
                        emailLogModel.SentStatus   = 0;
                        emailLogModel.UnSentReason = "Write Exception Log here";
                        _dal.EmailLog(emailLogModel);
                        retVal = 2;
                    }
                }
                else
                {
                    retVal = 2;
                }
            }

            return(retVal);
        }
        public EmailLogViewModel Run(Repository value)
        {
            EmailLogViewModel log = (EmailLogViewModel)value;

            log.mensagem = new Validate()
            {
                Code = 0, Message = "Registro incluído com sucesso"
            };
            string habilitaEmail = db.Parametros.Find(log.CondominioID, (int)Enumeracoes.Enumeradores.Param.HABILITA_EMAIL).Valor;

            if (habilitaEmail == "S")
            {
                try
                {
                    EmailLogModel Model    = new EmailLogModel(this.db, this.seguranca_db, this.Anonymous);
                    Validate      Validate = Model.Validate(log, Crud.INCLUIR);
                    if (Validate.Code > 0)
                    {
                        throw new ArgumentException(Validate.Message);
                    }

                    if (log.empresaId == 0)
                    {
                        log.empresaId = SessaoLocal.empresaId;
                    }

                    int _sistemaId = int.Parse(db.Parametros.Find(log.CondominioID, (int)Enumeracoes.Enumeradores.Param.SISTEMA).Valor);

                    Condominio condominio    = db.Condominios.Find(log.CondominioID);
                    Sistema    sistema       = seguranca_db.Sistemas.Find(_sistemaId);
                    string     CodigoUnidade = log.UnidadeID.HasValue ? db.Unidades.Find(log.CondominioID, log.EdificacaoID, log.UnidadeID).Codigo : "";

                    IEnumerable <EmailLogViewModel> EmailLogPessoas = List(log);

                    SendEmail sendMail = new SendEmail();

                    MailAddress   sender     = new MailAddress(condominio.RazaoSocial + " <" + condominio.Email + ">");
                    List <string> recipients = new List <string>();
                    List <string> CarbonCopy = new List <string>();

                    if (EmailLogPessoas.Count() > 1)
                    {
                        foreach (EmailLogViewModel item in EmailLogPessoas)
                        {
                            CarbonCopy.Add(item.Nome + "<" + item.Email + ">");
                        }
                        recipients.Add(condominio.PathInfo + "<" + condominio.Email + ">");
                    }
                    else
                    {
                        // somente 1 e-mail em EmailLogPessoas
                        foreach (EmailLogViewModel item in EmailLogPessoas)
                        {
                            recipients.Add(item.Nome + "<" + item.Email + ">");
                        }

                        CarbonCopy = null;
                    }

                    if (log.EdificacaoID.HasValue && log.UnidadeID.HasValue && String.IsNullOrEmpty(log.Nome))
                    {
                        log.Nome = (from cu in db.CondominoUnidades
                                    join con in db.Condominos on cu.CondominoID equals con.CondominoID
                                    where cu.CondominioID == sessaoCorrente.empresaId && cu.DataFim == null && cu.EdificacaoID == log.EdificacaoID && cu.UnidadeID == log.UnidadeID
                                    select con.Nome).FirstOrDefault().ToUpper();

                        log.Email = EmailLogPessoas.FirstOrDefault().Email;
                        log.Descricao_Edificacao = db.Edificacaos.Find(log.EdificacaoID).Descricao;
                    }

                    log.EmailMensagem = log.EmailMensagem.Replace("@condominio", condominio.RazaoSocial).Replace("@nome", log.Nome).Replace("@unidade", CodigoUnidade).Replace("@edificacao", log.Descricao_Edificacao).Replace("@grupo", log.Descricao_GrupoCondomino).Replace("@sistema", sistema.descricao).Replace("@email", log.Email);

                    string Subject = "[" + condominio.PathInfo + "] " + log.Assunto.Replace("@condominio", "");
                    string Html    = log.EmailMensagem;

                    Validate result = sendMail.Send(sender, recipients, Html, Subject, "", CarbonCopy);
                    if (result.Code > 0)
                    {
                        result.MessageBase = "Não foi possível enviar o e-mail. Tente novamente mais tarde e se o erro persistir, favor entrar em contato com [email protected] e reporte o código de erro " + result.Code.ToString() + ". ";
                        throw new App_DominioException(result);
                    }

                    #region Incluir o Log do e-mail enviado
                    string Email     = log.Email;
                    int?   usuarioId = log.UsuarioID;
                    log = Model.Insert(log);
                    if (log.mensagem.Code > 0)
                    {
                        throw new App_DominioException(log.mensagem);
                    }
                    #endregion

                    log.Email     = Email;
                    log.UsuarioID = usuarioId;
                    log.mensagem  = new Validate()
                    {
                        Code = 0, Message = MensagemPadrao.Message(0).ToString(), MessageType = MsgType.SUCCESS
                    };
                }
                catch (ArgumentException ex)
                {
                    log.mensagem = new Validate()
                    {
                        Code = 997, Message = MensagemPadrao.Message(997).ToString(), MessageBase = ex.Message
                    };
                }
                catch (App_DominioException ex)
                {
                    log.mensagem = ex.Result;

                    if (ex.InnerException != null)
                    {
                        log.mensagem.MessageBase = new App_DominioException(ex.InnerException.Message ?? ex.Message, GetType().FullName).Message;
                    }
                    else
                    {
                        log.mensagem.MessageBase = new App_DominioException(ex.Result.Message, GetType().FullName).Message;
                    }
                }
                catch (DbUpdateException ex)
                {
                    log.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message;
                    if (log.mensagem.MessageBase.ToUpper().Contains("REFERENCE") || log.mensagem.MessageBase.ToUpper().Contains("FOREIGN"))
                    {
                        if (log.mensagem.MessageBase.ToUpper().Contains("DELETE"))
                        {
                            log.mensagem.Code        = 16;
                            log.mensagem.Message     = MensagemPadrao.Message(16).ToString();
                            log.mensagem.MessageType = MsgType.ERROR;
                        }
                        else
                        {
                            log.mensagem.Code        = 28;
                            log.mensagem.Message     = MensagemPadrao.Message(28).ToString();
                            log.mensagem.MessageType = MsgType.ERROR;
                        }
                    }
                    else if (log.mensagem.MessageBase.ToUpper().Contains("PRIMARY"))
                    {
                        log.mensagem.Code        = 37;
                        log.mensagem.Message     = MensagemPadrao.Message(37).ToString();
                        log.mensagem.MessageType = MsgType.WARNING;
                    }
                    else if (log.mensagem.MessageBase.ToUpper().Contains("UNIQUE KEY"))
                    {
                        log.mensagem.Code        = 54;
                        log.mensagem.Message     = MensagemPadrao.Message(54).ToString();
                        log.mensagem.MessageType = MsgType.WARNING;
                    }
                    else
                    {
                        log.mensagem.Code        = 44;
                        log.mensagem.Message     = MensagemPadrao.Message(44).ToString();
                        log.mensagem.MessageType = MsgType.ERROR;
                    }
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                {
                    log.mensagem = new Validate()
                    {
                        Code = 42, Message = MensagemPadrao.Message(42).ToString(), MessageBase = ex.EntityValidationErrors.Select(m => m.ValidationErrors.First().ErrorMessage).First()
                    };
                }
                catch (Exception ex)
                {
                    log.mensagem.Code        = 17;
                    log.mensagem.Message     = MensagemPadrao.Message(17).ToString();
                    log.mensagem.MessageBase = new App_DominioException(ex.InnerException.InnerException.Message ?? ex.Message, GetType().FullName).Message;
                    log.mensagem.MessageType = MsgType.ERROR;
                }
            }

            return(log);
        }
Example #23
0
 public async Task DeleteAsync(EmailLogModel entity)
 {
     await _emailLog.DeleteAsync(entity.LogId);
 }
Example #24
0
 public void Delete(EmailLogModel entity)
 {
     _emailLog.Delete(entity.LogId);
 }
 public async Task Delete(EmailLogModel emaillogModel)
 {
     _context.Entry(emaillogModel).Property(x => x.use_yn).IsModified = true;
     await _context.SaveChangesAsync();
 }