public Repository Insert(Repository value) { using (PinheiroSereniContext db = new PinheiroSereniContext()) { try { value.mensagem = Validate(value, Crud.INCLUIR); if (value.mensagem.Code > 0) { throw new ArgumentException(value.mensagem.Message); } #region identifica o corretor da vez AtendimentoEmailRepository r = (AtendimentoEmailRepository)value; CorretorOnline corretor = r.corretor.obterCorretor(db.Mensagems, db.CorretorOnlines); #endregion #region verifica se tem sessão ativa para o corretor da vez var _s = from s in db.Sessaos where s.corretorId == corretor.corretorId && s.dt_desativacao == null && s.statusOperador.Equals("O") select s; #endregion #region Se o corretor da vez não tiver sessão ativa, procurar o primeiro corretor que esteja online if (_s.Count() == 0) { _s = from s in db.Sessaos where s.dt_desativacao == null && s.statusOperador.Equals("O") && s.corretorId != null orderby s.CorretorOnline.indexEscala select s; if (_s.Count() == 0) // não tem corretor online => usar o corretor "Supervisor Online" { corretor = (from cor in db.CorretorOnlines where cor.nome == "Supervisor Online" select cor).FirstOrDefault(); } else if (_s.Where(m => m.CorretorOnline.indexEscala >= corretor.indexEscala).Count() > 0) { _s = _s.Where(m => m.CorretorOnline.indexEscala >= corretor.indexEscala); corretor = db.CorretorOnlines.Find(_s.First().corretorId); } } #endregion #region insere a inscricao do cliente r.prospect.dt_cadastro = DateTime.Now; r.prospect.isFolderDigital = "N"; if (db.Prospects.Find(r.prospect.email, r.prospect.empreendimentoId) == null) { db.Prospects.Add(r.prospect); } #endregion #region insere a mensagem r.msg.dt_cadastro = DateTime.Now; r.msg.email = r.prospect.email; r.msg.empreendimentoId = r.prospect.empreendimentoId; r.msg.corretorId = corretor.corretorId; r.msg.emailDirecao1 = db.Parametros.Find((int)Parametros.EMAIL_ADMINISTRACAO).valor; r.msg.assunto = "Confirmação de recebimento de e-mail"; db.Mensagems.Add(r.msg); #endregion db.SaveChanges(); #region envia e-mail para o corretor e para os diretores (com cópia para o próprio cliente) string fone_emp = "3131-4450"; Empreendimento emp = db.Empreendimentos.Find(r.prospect.empreendimentoId); if (emp.empreendimentoId == 2) { fone_emp = "3222-8111"; } EMail message = new EMail(); //message.From = new MailAddress(db.Parametros.Find((int)Parametros.EMAIL_SISTEMA).valor, db.Parametros.Find((int)Parametros.NOME_EMAIL_SISTEMA).valor); message.From = new MailAddress(System.Configuration.ConfigurationManager.AppSettings["emailRemetente"], db.Parametros.Find((int)Parametros.NOME_EMAIL_SISTEMA).valor); message.To.Add(new MailAddress(corretor.email, corretor.nome)); message.Bcc.Add(new MailAddress(r.prospect.email, r.prospect.nome)); message.Bcc.Add(new MailAddress(db.Parametros.Find((int)Parametros.EMAIL_ADMINISTRACAO).valor, db.Parametros.Find((int)Parametros.NOME_ADMINISTRACAO).valor)); message.Subject = r.msg.assunto; message.Body = "<div style=\"font-family: verdana; font-size: 12px; width: 700px\">" + "<div><p>Olá, <b>" + r.prospect.nome + "</b></p></div>" + "<div><p>Você cadastrou seus dados no hotsite " + emp.nomeEmpreendimento + ", um empreendimento da " + db.Parametros.Find((int)Parametros.NOME_ADMINISTRACAO).valor + ", e está recebendo a confirmação de envio de sua mensagem para um de nossos corretores.</p></div>" + "<div><p>E-Mail:</p></div>" + "<div><p><a href=\"mailto:" + r.prospect.email + "\">" + r.prospect.email + "</a></p></div>" + "<div><p>Mensagem:</p></div>" + "<div><p><i>\"" + r.msg.mensagem + "\"</i></p></div>" + "<div><p>Caso deseje obter mais informações sobre o " + emp.nomeEmpreendimento + ", teremos o maior prazer em atendê-lo através de nossa Central de Atendimento, pelo telefone: (91)" + fone_emp + ".</p></div>" + "<div><p>Um abraço,</p></div>" + "<div><b>Salomão Benmuyal</b></div>" + "<div><b>Gerente Comercial</b></div>" + "<div><b>" + db.Parametros.Find((int)Parametros.NOME_ADMINISTRACAO).valor + "</b></div>" + "<div> </div>" + "<div><img src=\"http://www.vendaspiazzatoscana.com.br/content/themes/base/images/PiazzaToscana/LogoPinheiroSereni.png\" alt=\"\" /></div>" + "</div>"; #if (release) message.SendMail(); #endif message.Dispose(); #endregion //trans.Commit(); } catch (PinheiroSereniException ex) { value.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (ArgumentException ex) { value.mensagem = new Validate() { Code = value.mensagem.Code, Message = MensagemPadrao.Message(value.mensagem.Code.Value, "telefone", value.mensagem.Message.ToString()).ToString(), MessageBase = ex.Message }; } catch (System.Net.Mail.SmtpException ex) { //trans.Rollback(); PinheiroSereniException.saveError(ex, GetType().FullName); value.mensagem = new Validate() { Code = 15, Message = MensagemPadrao.Message(15).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { //trans.Rollback(); throw new PinheiroSereniException(ex.Message, GetType().FullName); } } return(value); }
public Repository Insert(Repository value) { using (PinheiroSereniContext db = new PinheiroSereniContext()) { value.mensagem = new Validate() { Code = 0, Message = "Seu folder digital já foi enviado para sua caixa de e-mail.".Replace("[br]", "<br />") }; try { #region insere a inscricao do cliente ProspectRepository r = (ProspectRepository)value; r.prospect.nome = r.nomeCompleto; r.prospect.email = r.prospect.email.ToLower(); r.prospect.dt_cadastro = DateTime.Now; r.prospect.isFolderDigital = "S"; if (db.Prospects.Find(r.prospect.email, r.prospect.empreendimentoId) == null) { db.Prospects.Add(r.prospect); db.SaveChanges(); } #endregion #region envia e-mail com o anexo do prospecto do empreendimento para o cliente e para a administração Empreendimento emp = db.Empreendimentos.Find(r.prospect.empreendimentoId); string fone_emp = "3131-4450"; if (emp.empreendimentoId == 2) { fone_emp = "3222-8111"; } System.Web.HttpContext web = System.Web.HttpContext.Current; EMail message = new EMail(); //message.From = new MailAddress(db.Parametros.Find((int)Parametros.EMAIL_SISTEMA).valor, db.Parametros.Find((int)Parametros.NOME_EMAIL_SISTEMA).valor); message.From = new MailAddress(System.Configuration.ConfigurationManager.AppSettings["emailRemetente"], db.Parametros.Find((int)Parametros.NOME_EMAIL_SISTEMA).valor); message.To.Add(new MailAddress(r.prospect.email, r.prospect.nome)); message.Bcc.Add(new MailAddress(db.Parametros.Find((int)Parametros.EMAIL_ADMINISTRACAO).valor, db.Parametros.Find((int)Parametros.NOME_ADMINISTRACAO).valor)); if (r.prospect.empreendimentoId == 1) { message.Attachments.Add(new Attachment(web.Server.MapPath("").Replace("\\Home", "") + db.Parametros.Find((int)Parametros.PATH_EMAIL_ANEXO).valor + emp.nomeEmpreendimento.Replace(" ", "") + ".pdf")); } message.Subject = "Apresentação " + emp.nomeEmpreendimento + " - Folder Digital"; message.Body = "<!DOCTYPE html>" + "<html xmlns=\"http://www.w3.org/1999/xhtml\">" + "<head>" + " <title>" + emp.nomeEmpreendimento + "</title>" + "</head>" + "<body>"; message.Body += "<div style=\"font-family: verdana; font-size: 12px; width: 700px\">" + "<div><p>Olá, <b>" + r.prospect.nome + "</b></p></div>" + "<div><p>Você cadastrou seus dados no hotsite " + emp.nomeEmpreendimento + ", um empreendimento da " + db.Parametros.Find((int)Parametros.NOME_ADMINISTRACAO).valor + ", e está recebendo, em anexo, nosso folder digital com detalhes do projeto.</p></div>" + "<div><p>Caso deseje obter mais informações sobre o " + emp.nomeEmpreendimento + ", teremos o maior prazer em atendê-lo através de nossa Central de Atendimento, pelo telefone: (91)" + fone_emp + ".</p></div>"; if (r.prospect.empreendimentoId == 2) // somente se for San Gennaro { message.Body += "<div><p><a href=\"" + db.Empreendimentos.Find(2).urlFolderDigital + "\">Clique aqui para consultar o folder digital do empreendimento</a></p></div>"; } message.Body += "<div><p>Um abraço,</p></div>" + "<div><b>Salomão Benmuyal</b></div>" + "<div><b>Gerente Comercial</b></div>" + "<div><b>" + db.Parametros.Find((int)Parametros.NOME_ADMINISTRACAO).valor + "</b></div>" + "<div> </div>" + //"<div><img src=\"http://www.vendaspiazzatoscana.com.br/content/themes/base/images/PiazzaToscana/LogoPinheiroSereni.png\" alt=\"\" /></div>" + "</div>"; message.Body += "</body>" + "</html>"; #if (release) message.SendMail(); #endif message.Dispose(); #endregion } catch (PinheiroSereniException ex) { value.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (ArgumentException ex) { value.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (System.Net.Mail.SmtpException ex) { PinheiroSereniException.saveError(ex, GetType().FullName); value.mensagem = new Validate() { Code = 15, Message = MensagemPadrao.Message(15).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { throw new PinheiroSereniException(ex.Message, GetType().FullName); } } return(value); }