public IEnumerable <Repository> ListRepository(params object[] param) { string _path_fotoCorretor = db.Parametros.Find((int)Parametros.PATH_FOTOCORRETOR).valor; string sessionId = param[0].ToString(); using (db = new PinheiroSereniContext()) { IEnumerable <ChatRepository> q = ( from ch in db.Chats join s in db.Sessaos on ch.Sessao equals s join c in db.CorretorOnlines on s.CorretorOnline equals c join p in db.Prospects on ch.Prospect equals p where ch.sessaoId == sessionId && ch.dt_fim == null select new ChatRepository() { sessionId = sessionId, sessao = s, corretor = c, nome_cliente = p.nome, path_fotoCorretor = _path_fotoCorretor, chat = ch, chatMessages = (from m in db.ChatMessages where m.chatId == ch.chatId orderby m.dt_message select m), } ).ToList(); return(q); } }
public ActionResult Rpt01(int?index) { ViewBag.drpOrdenacao = BindDropDownListFactory.BindEnum <drpOrdenacao>("A"); using (PinheiroSereniContext db = new PinheiroSereniContext()) ViewBag.drpEmpreendimentos = BindDropDownListFactory.Bind <drpEmpreedimentos>(db, "1"); return(Rpt01List(index, DateTime.Today.AddDays(-30).ToString("dd/MM/yyyy"), DateTime.Today.ToString("dd/MM/yyyy"), "A", "1", "40")); }
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 Repository getRepository(Object id) { int mensagemId = (int)id; using (db = new PinheiroSereniContext()) { Rpt03Repository r = (from p in db.Prospects join m in db.Mensagems on p equals m.Prospect join c in db.CorretorOnlines on m.CorretorOnline equals c where m.mensagemId == mensagemId select new Rpt03Repository { mensagem = new Validate() { Code = 0 }, sessionId = System.Web.HttpContext.Current.Session.SessionID, id = m.mensagemId, mensagemEmail = m.mensagem, email = p.email, empreendimentoId = p.empreendimentoId, nome = p.nome, telefone = p.telefone, dt_cadastro = m.dt_cadastro.Value, nome_corretor = c.nome, corretorId = m.corretorId, tipo = "Atendimento por e-mail" }).FirstOrDefault(); return(r); } }
public static IEnumerable <SelectListItem> Bind <T>(PinheiroSereniContext pinheiroSereni_db, string selectedValue = "", string header = "", params object[] param) { IDictionary <string, string> dic = new Dictionary <string, string>(); IEnumerable <SelectListItem> entity = new List <SelectListItem>(); IBindDropDownList Instance = (IBindDropDownList)Activator.CreateInstance(typeof(T)); try { entity = (IEnumerable <SelectListItem>)Instance.List(pinheiroSereni_db, param); foreach (SelectListItem e in entity) { dic.Add(e.Value, e.Text); } return(Funcoes.getDropDownList(dic, selectedValue, header)); } catch (Exception ex) { Validate result = new Validate() { Field = "", Message = PinheiroSereniException.Exception(ex, "PinheiroSereni.Dominio.Factory.BindDropDownList", PinheiroSereniException.ErrorType.DropDownListError) }; return(null); } }
public void TypingClient(int chatId, string value) { using (db = new PinheiroSereniContext()) { _TypingClient(chatId, value); db.SaveChanges(); } }
public ActionResult Rpt02(int?index) { using (PinheiroSereniContext db = new PinheiroSereniContext()) { ViewBag.drpCorretores = BindDropDownListFactory.Bind <drpCorretores>(db, "", "Todos..."); ViewBag.drpEmpreendimentos = BindDropDownListFactory.Bind <drpEmpreedimentos>(db, "1"); } return(Rpt02List(index, DateTime.Today.AddDays(-30).ToString("dd/MM/yyyy"), DateTime.Today.ToString("dd/MM/yyyy"), null, "1", "15")); }
public IEnumerable <SelectListItem> List(PinheiroSereniContext pinheiroSereni_db, params object[] param) { IEnumerable <SelectListItem> q = (from f in pinheiroSereni_db.Empreendimentos select new SelectListItem() { Value = SqlFunctions.StringConvert((decimal)f.empreendimentoId).Trim(), Text = f.nomeEmpreendimento }).ToList(); return(q); }
public IEnumerable <SelectListItem> List(PinheiroSereniContext pinheiroSereni_db, params object[] param) { IEnumerable <SelectListItem> q = (from f in pinheiroSereni_db.CorretorOnlines select new SelectListItem() { Value = SqlFunctions.StringConvert((decimal)f.corretorId).Trim(), Text = f.nome }).ToList(); return(q); }
public IEnumerable <Repository> List() { using (db = new PinheiroSereniContext()) { return((from c in db.Sessaos select new SessaoRepository { sessao = c }).ToList()); } }
public Repository getObject(Object id) { using (PinheiroSereniContext db = new PinheiroSereniContext()) { Prospect value = (Prospect)id; ProspectRepository r = new ProspectRepository() { prospect = db.Prospects.Find(value.email, value.empreendimentoId) }; return(r); } }
public Repository getObject(Object id) { using (db = new PinheiroSereniContext()) { ParamRepository r = new ParamRepository() { mensagem = new Validate(), parametro = db.Parametros.Find((int)id) }; return(r); } }
public Repository getObject(Object id) { using (db = new PinheiroSereniContext()) { CorretorRepository r = new CorretorRepository() { mensagem = new Validate(), corretor = db.CorretorOnlines.Find((int)id) }; return(r); } }
public IEnumerable <Repository> List() { using (db = new PinheiroSereniContext()) { return((from c in db.Corretoras select new CorretoraRepository { mensagem = new Validate() { Code = 0 }, corretora = c }).ToList()); } }
public IEnumerable <Repository> List() { using (db = new PinheiroSereniContext()) { return((from c in db.CorretorOnlines select new CorretorRepository { mensagem = new Validate() { Code = 0 }, sessionId = System.Web.HttpContext.Current.Session.SessionID, corretor = c }).ToList()); } }
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 IEnumerable <Repository> ListRepository(params object[] param) { DateTime dt_inicio = (DateTime)param[0]; DateTime dt_fim = ((DateTime)param[1]).AddDays(1).AddMinutes(-1); string ordenacao = param[2].ToString(); int empreendimentoId = (int)(param[3]); using (db = new PinheiroSereniContext()) { IEnumerable <Rpt01Repository> q1 = (from p in db.Prospects where p.dt_cadastro >= dt_inicio && p.dt_cadastro <= dt_fim && p.empreendimentoId == empreendimentoId orderby p.nome select new Rpt01Repository { mensagem = new Validate() { Code = 0 }, sessionId = System.Web.HttpContext.Current.Session.SessionID, email = p.email, empreendimentoId = p.empreendimentoId, nome = p.nome, telefone = p.telefone, dt_cadastro = p.dt_cadastro.Value, isFolderDigital = p.isFolderDigital == "S" ? "SIM" : "NÃO", isAtendimentoEmail = (from m in db.Mensagems where m.email == p.email select m.email).Count() > 0 ? "SIM" : "NÃO", isChat = (from c in db.Chats where c.email == p.email select c.email).Count() > 0 ? "SIM" : "NÃO", isSms = (from s in db.SMSs where s.telefone == p.telefone select s.nome).Count() > 0 ? "SIM" : "NÃO" }).ToList(); if (ordenacao == "D") { return(q1.OrderBy(m => m.dt_cadastro).ToList()); } else { return(q1); } } }
public IEnumerable <Repository> List() { using (db = new PinheiroSereniContext()) { return((from p in db.Parametros where p.parametroID == 1 || p.parametroID == 7 select new ParamRepository { mensagem = new Validate() { Code = 0 }, sessionId = System.Web.HttpContext.Current.Session.SessionID, parametro = p }).ToList()); } }
public IEnumerable <Repository> ListRepository(params object[] param) { DateTime dt_inicio = (DateTime)param[0]; DateTime dt_fim = ((DateTime)param[1]).AddDays(1).AddMinutes(-1); int? corretorId = (int?)param[2]; int empreendimentoId = (int)(param[3]); using (db = new PinheiroSereniContext()) { DateTime d = dt_inicio; IList <Rpt02Repository> list = new List <Rpt02Repository>(); while (d <= dt_fim) { DateTime d1 = d; DateTime d2 = d1.AddDays(1).AddMinutes(-1); Rpt02Repository r = new Rpt02Repository() { dt_cadastro = d, empreendimentoId = empreendimentoId, qteAtendimentoEmail = (from a in db.Mensagems where a.dt_cadastro >= d1 && a.dt_cadastro <= d2 && a.empreendimentoId == empreendimentoId && (corretorId == null || a.corretorId == corretorId) select a).Count(), qteChat = (from b in db.Chats where b.dt_inicio >= d1 && b.dt_inicio <= d2 && b.dt_fim != null && b.empreendimentoId == empreendimentoId && (corretorId == null || b.corretorId == corretorId) select b).Count(), qteFolderDigital = (from c in db.Prospects where c.dt_cadastro >= d1 && c.dt_cadastro <= d2 && c.empreendimentoId == empreendimentoId && c.isFolderDigital == "S" select c).Count(), qteSms = (from e in db.SMSs where e.dt_cadastro >= d1 && e.dt_cadastro <= d2 && e.empreendimentoId == empreendimentoId && (corretorId == null || e.corretorId == corretorId) select e).Count() }; list.Add(r); d = d.AddDays(1); } Rpt02Repository rT = new Rpt02Repository() { qteAtendimentoEmail = list.Sum(m => m.qteAtendimentoEmail), qteChat = list.Sum(m => m.qteChat), qteFolderDigital = list.Sum(m => m.qteFolderDigital), qteSms = list.Sum(m => m.qteSms) }; list.Add(rT); return(list); } }
public ActionResult Create(string sucesso = "") { if (AccessDenied(System.Web.HttpContext.Current.Session.SessionID)) { return(RedirectToAction("Index", "Home")); } using (PinheiroSereniContext db = new PinheiroSereniContext()) ViewBag.drpCorretoras = BindDropDownListFactory.Bind <drpCorretoras>(db, "", "Selecione..."); ViewBag.drpSituacao = BindDropDownListFactory.BindEnum <PinheiroSereni.Dominio.Enumeracoes.drpSituacao>("A"); if (sucesso != null) { if (sucesso.Trim() != "") { ViewBag.Sucesso = sucesso; } } return(View()); }
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 IEnumerable <Repository> ListRepository(params object[] param) { DateTime dt_inicio = (DateTime)param[0]; DateTime dt_fim = ((DateTime)param[1]).AddDays(1).AddMinutes(-1); int? corretorId = (int?)param[2]; int tipo = (int)param[3]; int empreendimentoId = (int)(param[4]); using (db = new PinheiroSereniContext()) { IList <Rpt03Repository> q1 = null; IList <Rpt03Repository> q2 = null; IList <Rpt03Repository> q3 = null; IList <Rpt03Repository> q = new List <Rpt03Repository>(); // Todos ou Atendimento por E-Mail if (tipo == 0 || tipo == 1) { q1 = (from p in db.Prospects join m in db.Mensagems on p equals m.Prospect join c in db.CorretorOnlines on m.CorretorOnline equals c where m.dt_cadastro >= dt_inicio && m.dt_cadastro <= dt_fim && m.empreendimentoId == empreendimentoId && (corretorId == null || m.corretorId == corretorId) orderby m.dt_cadastro select new Rpt03Repository { mensagem = new Validate() { Code = 0 }, sessionId = System.Web.HttpContext.Current.Session.SessionID, id = m.mensagemId, email = p.email, empreendimentoId = empreendimentoId, nome = p.nome, telefone = p.telefone, dt_cadastro = m.dt_cadastro.Value, nome_corretor = c.nome, corretorId = m.corretorId, tipo = "Atendimento por e-mail" }).ToList(); q = q.Union(q1).ToList(); } // Todos ou Chat if (tipo == 0 || tipo == 2) { q2 = (from p in db.Prospects join ch in db.Chats on p equals ch.Prospect join cor in db.CorretorOnlines on ch.CorretorOnline equals cor where ch.dt_inicio >= dt_inicio && ch.dt_inicio <= dt_fim && ch.empreendimentoId == empreendimentoId && (corretorId == null || ch.corretorId == corretorId) && ch.dt_fim != null orderby ch.dt_inicio select new Rpt03Repository { mensagem = new Validate() { Code = 0 }, sessionId = System.Web.HttpContext.Current.Session.SessionID, id = ch.chatId, email = p.email, empreendimentoId = empreendimentoId, nome = p.nome, telefone = p.telefone, dt_cadastro = ch.dt_inicio, nome_corretor = cor.nome, corretorId = ch.corretorId, tipo = "Chat" }).ToList(); q = q.Union(q2).ToList(); } // Todos ou SMS if (tipo == 0 || tipo == 3) { q3 = (from sms in db.SMSs join c in db.CorretorOnlines on sms.CorretorOnline equals c where sms.dt_cadastro >= dt_inicio && sms.dt_cadastro <= dt_fim && sms.empreendimentoId == empreendimentoId && (corretorId == null || sms.corretorId == corretorId) orderby sms.dt_cadastro select new Rpt03Repository { mensagem = new Validate() { Code = 0 }, sessionId = System.Web.HttpContext.Current.Session.SessionID, id = sms.smsId, nome = sms.nome, empreendimentoId = empreendimentoId, telefone = sms.telefone, dt_cadastro = sms.dt_cadastro.Value, nome_corretor = c.nome, corretorId = sms.corretorId, tipo = "Ligamos para você" }).ToList(); q = q.Union(q3).ToList(); } return(q.OrderBy(m => m.dt_cadastro).ToList()); } }
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 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); }