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(); } }
/// <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 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 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); }
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 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); } }