public void Exit(string sessionId) { using (db = new PinheiroSereniContext()) { SessaoRepository r = (from s in db.Sessaos where s.sessaoId == sessionId select new SessaoRepository() { sessionId = s.sessaoId, sessao = s, chatRepositories = (from c in db.Chats where c.sessaoId == sessionId && c.dt_fim == null select new ChatRepository { chat = c }) }).First(); Sessao _s = db.Sessaos.Find(sessionId); _s.dt_desativacao = DateTime.Now; db.Entry(_s).State = EntityState.Modified; foreach (ChatRepository cr in r.chatRepositories) { PinheiroSereni.Dominio.Entidades.Chat _chat = db.Chats.Find(cr.chat.chatId); _chat.dt_fim = DateTime.Now; db.Entry(_chat).State = EntityState.Modified; } db.SaveChanges(); } }
public void TypingClient(int chatId, string value) { using (db = new PinheiroSereniContext()) { _TypingClient(chatId, value); db.SaveChanges(); } }
public Repository Update(Repository value) { using (db = new PinheiroSereniContext()) { try { value.mensagem = new Validate() { Code = 0, Message = MensagemPadrao.Message(0).ToString() }; ParamRepository r = (ParamRepository)value; db.Entry(r.parametro).State = EntityState.Modified; db.SaveChanges(); } catch (System.Data.Entity.Infrastructure.DbUpdateException ex) { value.mensagem.Code = 36; value.mensagem.MessageBase = MensagemPadrao.Message(36).ToString(); if ((ex.Message.ToUpper().Contains("FOREIGN KEY") || ex.Message.ToUpper().Contains("REFERENCE")) || (ex.InnerException.ToString().ToUpper().Contains("FOREIGN KEY") || ex.InnerException.ToString().ToUpper().Contains("REFERENCE"))) { value.mensagem.Code = 16; value.mensagem.Message = MensagemPadrao.Message(16).ToString(); } else if (ex.Message.ToUpper().Contains("PRIMARY KEY") || ex.InnerException.ToString().ToUpper().Contains("PRIMARY KEY")) { value.mensagem.Code = 37; value.mensagem.Message = MensagemPadrao.Message(37).ToString(); } else { value.mensagem.Message = MensagemPadrao.Message(17).ToString(); } PinheiroSereniException.saveError(ex, GetType().FullName); } catch (Exception ex) { PinheiroSereniException.saveError(ex, GetType().FullName); value.mensagem.Code = 17; value.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message; value.mensagem.Message = new PinheiroSereniException(ex.Message, GetType().FullName).Message; } } return(value); }
public Repository Insert(Repository value) { using (db = new PinheiroSereniContext()) { try { #region validar inclusão value.mensagem = this.Validate(value, Crud.INCLUIR); #endregion #region insere a sessao if (value.mensagem.Code == 0) { SessaoRepository r = (SessaoRepository)value; r.sessao.sessaoId = getId(); if (db.Sessaos.Find(r.sessao.sessaoId) == null) { db.Sessaos.Add(r.sessao); } db.SaveChanges(); } #endregion } catch (ArgumentException ex) { value.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { value.mensagem.Code = 17; value.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message; value.mensagem.Message = new PinheiroSereniException(ex.Message, GetType().FullName).Message; } } return(value); }
/// <summary> /// Este método verifica as sessões com mais de 15 minutos de inatividade. /// Para cada uma dessas sessões o sistema desativa as mesmas e os chats relacionados a elas. /// </summary> public void CleanInactiveSessions() { using (db = new PinheiroSereniContext()) { DateTime dt_ref = DateTime.Now.AddMinutes(-15); IEnumerable <SessaoRepository> r = from s in db.Sessaos where s.dt_atualizacao < dt_ref && s.dt_desativacao == null select new SessaoRepository() { sessionId = s.sessaoId, sessao = s, chatRepositories = (from c in db.Chats where c.Sessao == s select new ChatRepository { chat = c }) }; foreach (SessaoRepository sr in r) { Sessao _s = db.Sessaos.Find(sr.sessionId); _s.dt_desativacao = DateTime.Now; db.Entry(_s).State = EntityState.Modified; foreach (ChatRepository cr in sr.chatRepositories) { PinheiroSereni.Dominio.Entidades.Chat _chat = db.Chats.Find(cr.chat.chatId); _chat.dt_fim = DateTime.Now; db.Entry(_chat).State = EntityState.Modified; } } if (r.Count() > 0) { db.SaveChanges(); } } }
public Repository Delete(Repository value) { using (db = new PinheiroSereniContext()) { try { #region validar exclusão value.mensagem = this.Validate(value, Crud.EXCLUIR); #endregion #region exclui a sessao if (value.mensagem.Code == 0) { SessaoRepository r = (SessaoRepository)value; Sessao s = db.Sessaos.Find(r.sessao.sessaoId); db.Sessaos.Remove(s); db.SaveChanges(); } #endregion } catch (ArgumentException ex) { value.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { value.mensagem.Code = 17; value.mensagem.MessageBase = ex.Message; value.mensagem.Message = new PinheiroSereniException(ex.Message, GetType().FullName).Message; } } return(value); }
public Repository Update(Repository value) { using (db = new PinheiroSereniContext()) { try { #region validar alteração value.mensagem = this.Validate(value, Crud.ALTERAR); #endregion #region altera a sessão if (value.mensagem.Code == 0) { SessaoRepository r = (SessaoRepository)value; db.Entry(r.sessao).State = EntityState.Modified; db.SaveChanges(); } #endregion } catch (ArgumentException ex) { value.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { value.mensagem.Code = 17; value.mensagem.MessageBase = ex.Message; value.mensagem.Message = new PinheiroSereniException(ex.Message, GetType().FullName).Message; } } return(value); }
/// <summary> /// Inicia um novo chat entre o cliente e o corretor /// </summary> /// <param name="chatRepository"></param> /// <returns></returns> public Repository Start(Repository chatRepository) { using (db = new PinheiroSereniContext()) { try { ChatRepository r = (ChatRepository)chatRepository; #region identifica o corretor da vez r.corretor = r.corretorDaVez.obterCorretor(db.Chats, 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 == r.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) { throw new ArgumentNullException(); // não tem nenhum corretor online } else if (_s.Where(m => m.CorretorOnline.indexEscala >= r.corretor.indexEscala).Count() > 0) { _s = _s.Where(m => m.CorretorOnline.indexEscala >= r.corretor.indexEscala); } } #endregion r.corretor = db.CorretorOnlines.Find(_s.First().corretorId); r.sessionId = _s.First().sessaoId; r.sessao = _s.First(); #region Incluir cliente Prospect p = new Prospect() { email = ((ChatRepository)chatRepository).prospect.email.ToLower(), empreendimentoId = ((ChatRepository)chatRepository).prospect.empreendimentoId, nome = ((ChatRepository)chatRepository).prospect.nome, telefone = ((ChatRepository)chatRepository).prospect.telefone, isFolderDigital = "N", dt_cadastro = DateTime.Now }; if (db.Prospects.Find(r.prospect.email, r.prospect.empreendimentoId) == null) { db.Prospects.Add(p); } #endregion #region Incluir o Chat PinheiroSereni.Dominio.Entidades.Chat chat = new Dominio.Entidades.Chat() { sessaoId = r.sessionId, corretorId = r.corretor.corretorId, email = r.prospect.email, empreendimentoId = r.prospect.empreendimentoId, dt_inicio = DateTime.Now }; db.Chats.Add(chat); #endregion #region Incluir a mensagem de boas vindas ChatMessage msg = new ChatMessage() { messageId = Guid.NewGuid(), chatId = chat.chatId, corretorId = r.corretor.corretorId, dt_message = DateTime.Now, empreendimentoId = r.prospect.empreendimentoId, message = "Olá <b>" + r.prospect.nome + "</b>. Sou da equipe de vendas da Pinheiro Sereni Engenharia. Estou à disposição para ajudá-lo(a). Você já foi atendido(a) por um de nossos corretores?" }; db.ChatMessages.Add(msg); #endregion db.SaveChanges(); r.chat.chatId = chat.chatId; r.path_fotoCorretor = db.Parametros.Find((int)Parametros.PATH_FOTOCORRETOR).valor; return(r); } catch (ArgumentNullException ex) { chatRepository.mensagem = new Validate() { Code = 35, Message = MensagemPadrao.Message(35).ToString(), MessageBase = ex.Message }; } catch (ArgumentException ex) { chatRepository.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { chatRepository.mensagem.Code = 17; chatRepository.mensagem.MessageBase = ex.Message; chatRepository.mensagem.Message = new PinheiroSereniException(ex.Message + " => " + ex.InnerException.Message, GetType().FullName).Message; } } return(chatRepository); }
public Repository ContabilizaClick(Repository chatRepository) { using (db = new PinheiroSereniContext()) { try { ChatRepository r = (ChatRepository)chatRepository; #region verifica se tem sessão ativa para o corretor da vez var _s = db.Sessaos.Take(1); #endregion r.corretor = db.CorretorOnlines.Find(25); // Supervisor Online r.sessionId = _s.First().sessaoId; r.sessao = _s.First(); #region Incluir cliente Prospect p = new Prospect() { email = ((ChatRepository)chatRepository).prospect.email.ToLower(), empreendimentoId = ((ChatRepository)chatRepository).prospect.empreendimentoId, nome = ((ChatRepository)chatRepository).prospect.nome, isFolderDigital = "N", dt_cadastro = DateTime.Now }; if (db.Prospects.Find(r.prospect.email, r.prospect.empreendimentoId) == null) { db.Prospects.Add(p); } #endregion #region Incluir o Chat PinheiroSereni.Dominio.Entidades.Chat chat = new Dominio.Entidades.Chat() { sessaoId = r.sessionId, corretorId = r.corretor.corretorId, email = r.prospect.email, empreendimentoId = r.prospect.empreendimentoId, dt_inicio = DateTime.Now, dt_fim = DateTime.Now.AddSeconds(1), typingClient = "N", typingOperator = "N" }; db.Chats.Add(chat); #endregion #region Incluir a mensagem de boas vindas ChatMessage msg = new ChatMessage() { messageId = Guid.NewGuid(), chatId = chat.chatId, email = r.prospect.email, dt_message = DateTime.Now, empreendimentoId = r.prospect.empreendimentoId, message = "[Contabilização de CHAT - Data do click: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm") + "h. - IP do cliente: " + System.Web.HttpContext.Current.Request.UserHostAddress + " ]" }; db.ChatMessages.Add(msg); #endregion db.SaveChanges(); r.chat.chatId = chat.chatId; return(r); } catch (ArgumentNullException ex) { chatRepository.mensagem = new Validate() { Code = 35, Message = MensagemPadrao.Message(35).ToString(), MessageBase = ex.Message }; } catch (ArgumentException ex) { chatRepository.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { chatRepository.mensagem.Code = 17; chatRepository.mensagem.MessageBase = ex.Message; chatRepository.mensagem.Message = new PinheiroSereniException(ex.Message + " => " + ex.InnerException.Message, GetType().FullName).Message; } } return(chatRepository); }
public Repository Delete(Repository value) { using (db = new PinheiroSereniContext()) { try { #region validar exclusão value.mensagem = this.Validate(value, Crud.EXCLUIR); #endregion #region excui o Corretor if (value.mensagem.Code == 0) { CorretorRepository r = (CorretorRepository)value; CorretorOnline corr = db.CorretorOnlines.Find(r.corretor.corretorId); db.CorretorOnlines.Remove(corr); db.SaveChanges(); } else { value.mensagem.MessageBase = MensagemPadrao.Message(999).ToString(); } #endregion } catch (System.Data.Entity.Infrastructure.DbUpdateException ex) { value.mensagem.Code = 36; value.mensagem.MessageBase = MensagemPadrao.Message(36).ToString(); if ((ex.Message.ToUpper().Contains("FOREIGN KEY") || ex.Message.ToUpper().Contains("REFERENCE")) || (ex.InnerException.ToString().ToUpper().Contains("FOREIGN KEY") || ex.InnerException.ToString().ToUpper().Contains("REFERENCE"))) { value.mensagem.Code = 16; value.mensagem.Message = MensagemPadrao.Message(16).ToString(); } else if (ex.Message.ToUpper().Contains("PRIMARY KEY") || ex.InnerException.ToString().ToUpper().Contains("PRIMARY KEY")) { value.mensagem.Code = 37; value.mensagem.Message = MensagemPadrao.Message(37).ToString(); } else { value.mensagem.Message = MensagemPadrao.Message(17).ToString(); } PinheiroSereniException.saveError(ex, GetType().FullName); } catch (ArgumentException ex) { value.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { PinheiroSereniException.saveError(ex, GetType().FullName); value.mensagem.Code = 17; value.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message; value.mensagem.Message = new PinheiroSereniException(ex.Message, GetType().FullName).Message; } } return(value); }
public Repository Update(Repository value) { using (db = new PinheiroSereniContext()) { try { #region validar alteração value.mensagem = this.Validate(value, Crud.ALTERAR); #endregion #region altera a Corretor if (value.mensagem.Code == 0) { CorretorRepository r = (CorretorRepository)value; db.Entry(r.corretor).State = EntityState.Modified; db.SaveChanges(); } else { value.mensagem.MessageBase = MensagemPadrao.Message(999).ToString(); } #endregion } catch (System.Data.Entity.Infrastructure.DbUpdateException ex) { value.mensagem.Code = 36; value.mensagem.MessageBase = MensagemPadrao.Message(36).ToString(); if ((ex.Message.ToUpper().Contains("FOREIGN KEY") || ex.Message.ToUpper().Contains("REFERENCE")) || (ex.InnerException.ToString().ToUpper().Contains("FOREIGN KEY") || ex.InnerException.ToString().ToUpper().Contains("REFERENCE"))) { value.mensagem.Code = 16; value.mensagem.Message = MensagemPadrao.Message(16).ToString(); } else if (ex.Message.ToUpper().Contains("PRIMARY KEY") || ex.InnerException.ToString().ToUpper().Contains("PRIMARY KEY")) { value.mensagem.Code = 37; value.mensagem.Message = MensagemPadrao.Message(37).ToString(); } else { value.mensagem.Message = MensagemPadrao.Message(17).ToString(); } PinheiroSereniException.saveError(ex, GetType().FullName); } catch (ArgumentException ex) { value.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { PinheiroSereniException.saveError(ex, GetType().FullName); value.mensagem.Code = 17; value.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message; value.mensagem.Message = new PinheiroSereniException(ex.Message, GetType().FullName).Message; } } return(value); }
public Validate autenticar(string usuario, string senha) { using (db = new PinheiroSereniContext()) { Validate validate = new Validate() { Code = 0, Message = MensagemPadrao.Message(0).ToString() }; try { int id = 0; if (!int.TryParse(usuario, out id)) { throw new ArithmeticException("ID informado não é um número inteiro válido"); } #region Recupera o usuário CorretorOnline operador = db.CorretorOnlines.Find(id); #endregion #region autenticar if (operador != null) { if (!senha.Equals(operador.senha) || operador.situacao != "A") { validate.Code = 35; validate.Message = MensagemPadrao.Message(35).ToString(); validate.MessageBase = MensagemPadrao.Message(999).ToString(); } } else { validate.Code = 35; validate.Message = MensagemPadrao.Message(35).ToString(); validate.MessageBase = MensagemPadrao.Message(999).ToString(); } #endregion #region Limpa as sessões inativas e os chats vinculados ChatModel chatModel = new ChatModel(); chatModel.CleanInactiveSessions(); #endregion #region verifica se o corretor está online em alguma outra sessão if ((from s1 in db.Sessaos where s1.corretorId == id && s1.dt_desativacao == null select s1).Count() > 0) { validate.Code = 36; validate.Message = MensagemPadrao.Message(36).ToString(); validate.MessageBase = MensagemPadrao.Message(998).ToString(); } #endregion #region insere a sessao if (validate.Code == 0) { System.Web.HttpContext web = System.Web.HttpContext.Current; if (db.Sessaos.Find(web.Session.SessionID) == null) { Sessao sessao = new Sessao() { sessaoId = web.Session.SessionID, dt_ativacao = DateTime.Now, dt_atualizacao = DateTime.Now, corretorId = operador.corretorId, statusOperador = "O" // online }; db.Sessaos.Add(sessao); db.SaveChanges(); validate.Field = web.Session.SessionID; } else { Sessao sessao = db.Sessaos.Find(web.Session.SessionID); #region verifica se a sessão é do mesmo corretor if (sessao.corretorId != operador.corretorId && sessao.dt_desativacao == null) { validate.Code = 39; validate.Message = MensagemPadrao.Message(39).ToString(); validate.MessageBase = MensagemPadrao.Message(998).ToString(); } #endregion else { sessao.dt_desativacao = null; sessao.dt_atualizacao = DateTime.Now; sessao.corretorId = operador.corretorId; sessao.statusOperador = "O"; db.Entry(sessao).State = EntityState.Modified; db.SaveChanges(); validate.Field = web.Session.SessionID; } } } #endregion } catch (ArithmeticException ex) { validate.Code = 4; validate.Message = MensagemPadrao.Message(4, "ID do operador", ex.Message).ToString(); validate.MessageBase = MensagemPadrao.Message(999).ToString(); } catch (Exception ex) { validate.Code = 17; validate.MessageBase = ex.Message; validate.Message = new PinheiroSereniException(ex.Message + " => " + ex.InnerException.Message, GetType().FullName).Message; } return(validate); } }
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 Validate autenticar(string usuario, string senha) { using (db = new PinheiroSereniContext()) { Validate validate = new Validate() { Code = 0, Message = MensagemPadrao.Message(0).ToString() }; try { #region Recupera o usuário string _usuario = db.Parametros.Find((int)Parametros.EMAIL_ADMINISTRACAO).valor; #endregion #region recupera a senha string _senha = db.Parametros.Find((int)Parametros.AUTKEY).valor; #endregion #region autenticar if (!usuario.Equals(_usuario) || !senha.Equals(_senha)) { validate.Code = 35; validate.Message = MensagemPadrao.Message(35).ToString(); validate.MessageBase = MensagemPadrao.Message(999).ToString(); } #endregion #region insere a sessao if (validate.Code == 0) { System.Web.HttpContext web = System.Web.HttpContext.Current; Sessao s1 = db.Sessaos.Find(web.Session.SessionID); if (s1 == null) { Sessao sessao = new Sessao() { sessaoId = web.Session.SessionID, dt_ativacao = DateTime.Now, dt_atualizacao = DateTime.Now, statusOperador = "O" }; db.Sessaos.Add(sessao); } else { Sessao sessao = db.Sessaos.Find(web.Session.SessionID); sessao.dt_desativacao = null; sessao.dt_atualizacao = DateTime.Now; db.Entry(sessao).State = EntityState.Modified; } db.SaveChanges(); validate.Field = web.Session.SessionID; } #endregion } catch (DbEntityValidationException ex) { throw new PinheiroSereniException(ex.Message, GetType().FullName); } catch (Exception ex) { throw new PinheiroSereniException(ex.Message, GetType().FullName); } return(validate); } }
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); }
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 SMSRepository r = (SMSRepository)value; CorretorOnline corretor = r.corretor.obterCorretor(db.SMSs, 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 o registro SMS do cliente r.sms.dt_cadastro = DateTime.Now; r.sms.corretorId = corretor.corretorId; db.SMSs.Add(r.sms); db.SaveChanges(); #endregion #region enviar o SMS #if (release) Torpedo torpedo = new Torpedo(); value.mensagem = torpedo.send("", r.sms.nome, r.sms.telefone, corretor.telefone); Validate mensagemCaco = torpedo.send("", r.sms.nome, r.sms.telefone, "9184524500"); #endif #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 = value.mensagem.Code, Message = MensagemPadrao.Message(value.mensagem.Code.Value, "telefone", value.mensagem.Message.ToString()).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { throw new PinheiroSereniException(ex.Message, GetType().FullName); } } return(value); }