public override ChamadoViewModel CreateRepository(HttpRequestBase Request = null) { ChamadoViewModel value = base.CreateRepository(Request); using (ApplicationContext db = new ApplicationContext()) { using (SecurityContext seguranca_db = new SecurityContext()) { EmpresaSecurity <SecurityContext> security = new EmpresaSecurity <SecurityContext>(); security.Create(seguranca_db); Sessao sessaoCorrente = security._getSessaoCorrente(seguranca_db); SessaoLocal SessaoLocal = DWMSessaoLocal.GetSessaoLocal(sessaoCorrente, db); value.CondominioID = sessaoCorrente.empresaId; value.CondominoID = SessaoLocal.CondominoID; value.UsuarioID = SessaoLocal.usuarioId; value.CredenciadoID = SessaoLocal.CredenciadoID; value.FilaCondominoID = DWMSessaoLocal.FilaCondominoID(sessaoCorrente, db); ListViewCondominoUnidadeChamado l = new ListViewCondominoUnidadeChamado(db, seguranca_db); if (SessaoLocal.CondominoID == 0) { value.Condominos = (PagedList <CondominoUnidadeViewModel>)l.getPagedList(0, 10, 0, 0, ""); } else { value.Condominos = (PagedList <CondominoUnidadeViewModel>)l.getPagedList(0, 10, SessaoLocal.CondominoID); } // Anexo value.ChamadoAnexoViewModel = new ChamadoAnexoViewModel(); if (Request["_ChamadoMotivoID"] != null && Request["_ChamadoMotivoID"] != "") { value.ChamadoMotivoID = int.Parse(Request["_ChamadoMotivoID"]); } if (Request["_FilaSolicitanteID"] != null && Request["_FilaSolicitanteID"] != "") { value.FilaSolicitanteID = int.Parse(Request["_FilaSolicitanteID"]); } if (Request["_FilaAtendimentoID"] != null && Request["_FilaAtendimentoID"] != "") { value.FilaAtendimentoID = int.Parse(Request["_FilaAtendimentoID"]); } value.Assunto = Request["Assunto"] ?? ""; value.Prioridade = "2"; } } return(value); }
public IEnumerable <SelectListItem> Usuarios(params object[] param) { // params[0] -> cabeçalho (Selecione..., Todos...) // params[1] -> SelectedValue string cabecalho = param[0].ToString(); string selectedValue = param[1].ToString(); EmpresaSecurity <SecurityContext> Security = new EmpresaSecurity <SecurityContext>(); using (ApplicationContext db = new ApplicationContext()) { using (SecurityContext seguranca_db = new SecurityContext()) { IList <SelectListItem> q = new List <SelectListItem>(); if (cabecalho != "") { q.Add(new SelectListItem() { Value = "", Text = cabecalho }); } Sessao sessaoCorrente = Security._getSessaoCorrente(seguranca_db); int GRUPO_USUARIO = int.Parse(db.Parametros.Find(sessaoCorrente.empresaId, (int)Param.GRUPO_USUARIO).Valor); int GRUPO_CREDENCIADO = int.Parse(db.Parametros.Find(sessaoCorrente.empresaId, (int)Param.GRUPO_CREDENCIADO).Valor); q = q.Union(from u in seguranca_db.Usuarios.AsEnumerable() join g in seguranca_db.UsuarioGrupos.AsEnumerable() on u.usuarioId equals g.usuarioId where u.empresaId == sessaoCorrente.empresaId && g.grupoId != GRUPO_USUARIO && g.grupoId != GRUPO_CREDENCIADO orderby u.nome select new SelectListItem() { Value = u.usuarioId.ToString(), Text = u.nome, Selected = (selectedValue != "" ? u.nome.Equals(selectedValue) : false) }).GroupBy(info => info.Value).Select(m => m.First()).ToList(); return(q); } } }
public VisitanteAcessoViewModel Run(Repository value) { VisitanteAcessoViewModel a = (VisitanteAcessoViewModel)value; VisitanteAcessoViewModel r = new VisitanteAcessoViewModel(); try { EmpresaSecurity <SecurityContext> security = new EmpresaSecurity <SecurityContext>(); security.Create(this.seguranca_db); sessaoCorrente = security._getSessaoCorrente(seguranca_db, value.sessionId); SessaoLocal = DWMSessaoLocal.GetSessaoLocal(sessaoCorrente, this.db); DateTime _hoje = Funcoes.Brasilia().Date; #region Recupera o AcessoID if (a.AcessoID == 0) { a.AcessoID = (from vac in db.VisitanteAcessos where vac.VisitanteID == a.VisitanteID && System.Data.Entity.DbFunctions.TruncateTime(vac.DataInclusao) == _hoje select vac.AcessoID).Max(); } VisitanteAcessoModel AcessoModel = new VisitanteAcessoModel(this.db, this.seguranca_db); a = AcessoModel.getObject(a); #endregion #region Enviar E-mail de notificação int EmailTemplateID = int.Parse(db.Parametros.Find(sessaoCorrente.empresaId, (int)Enumeracoes.Enumeradores.Param.EMAIL_TEMPLATE_PORTARIA).Valor); string _Edificacao = " - Administração"; string _Nome = seguranca_db.Usuarios.Find(sessaoCorrente.usuarioId).nome; if (SessaoLocal.Unidades != null) { _Edificacao = " - " + db.Edificacaos.Find(a.EdificacaoID).Descricao + " " + a.UnidadeID.ToString(); _Nome = a.Visitante.NomeCondomino; } EmailLogViewModel EmailLogViewModel = new EmailLogViewModel() { UsuarioID = sessaoCorrente.usuarioId, uri = value.uri, empresaId = sessaoCorrente.empresaId, EmailTipoID = (int)Enumeracoes.Enumeradores.EmailTipo.PORTARIA, CondominioID = sessaoCorrente.empresaId, EdificacaoID = a.EdificacaoID ?? 0, UnidadeID = a.UnidadeID ?? 0, GrupoCondominoID = null, DataEmail = Funcoes.Brasilia(), Descricao_Edificacao = a.DescricaoEdificacao, Nome = _Nome, Assunto = db.EmailTipos.Find((int)Enumeracoes.Enumeradores.EmailTipo.PORTARIA, sessaoCorrente.empresaId).Assunto + " " + a.AcessoID.ToString(), EmailMensagem = db.EmailTemplates.Find(EmailTemplateID).EmailMensagem.Replace("@ID", a.AcessoID.ToString()).Replace("@NomeVisitante", a.Visitante.Nome).Replace("@data", a.DataAutorizacao.ToString("dd/MM/yyyy")), Repository = a }; EmailNotificacaoBI notificacaoBI = new EmailNotificacaoBI(this.db, this.seguranca_db); EmailLogViewModel = notificacaoBI.Run(EmailLogViewModel); if (EmailLogViewModel.mensagem.Code > 0) { throw new App_DominioException(EmailLogViewModel.mensagem); } EmailLogViewModel.Repository = a; IEnumerable <EmailLogViewModel> EmailLogPessoas = notificacaoBI.List(EmailLogViewModel); #endregion foreach (EmailLogViewModel log in EmailLogPessoas.Where(info => info.UsuarioID > 0)) { Alerta alerta = new Alerta() { usuarioId = log.UsuarioID.Value, sistemaId = sessaoCorrente.sistemaId, dt_emissao = Funcoes.Brasilia(), linkText = "Convite - " + a.Visitante.Nome, url = "../Portaria/Edit?AcessoID=" + a.AcessoID.ToString(), mensagem = "<b>" + Funcoes.Brasilia().ToString("dd/MM/yyyy HH:mm") + "h</b><p>Convite - " + a.Visitante.Nome + "</p>" }; seguranca_db.Alertas.Add(alerta); } r.mensagem = new Validate() { Code = 0 }; } catch (DbUpdateException ex) { r.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message; if (r.mensagem.MessageBase.ToUpper().Contains("REFERENCE")) { if (r.mensagem.MessageBase.ToUpper().Contains("DELETE")) { r.mensagem.Code = 16; r.mensagem.Message = MensagemPadrao.Message(16).ToString(); r.mensagem.MessageType = MsgType.ERROR; } else { r.mensagem.Code = 28; r.mensagem.Message = MensagemPadrao.Message(28).ToString(); r.mensagem.MessageType = MsgType.ERROR; } } else if (r.mensagem.MessageBase.ToUpper().Contains("PRIMARY")) { r.mensagem.Code = 37; r.mensagem.Message = MensagemPadrao.Message(37).ToString(); r.mensagem.MessageType = MsgType.WARNING; } else if (r.mensagem.MessageBase.ToUpper().Contains("UNIQUE KEY")) { r.mensagem.Code = 54; r.mensagem.Message = MensagemPadrao.Message(54).ToString(); r.mensagem.MessageType = MsgType.WARNING; } else { r.mensagem.Code = 44; r.mensagem.Message = MensagemPadrao.Message(44).ToString(); r.mensagem.MessageType = MsgType.ERROR; } } catch (System.Data.Entity.Validation.DbEntityValidationException ex) { r.mensagem = new Validate() { Code = 42, Message = MensagemPadrao.Message(42).ToString(), MessageBase = ex.EntityValidationErrors.Select(m => m.ValidationErrors.First().ErrorMessage).First() }; } catch (Exception ex) { r.mensagem.Code = 17; r.mensagem.Message = MensagemPadrao.Message(17).ToString(); r.mensagem.MessageBase = new App_DominioException(ex.InnerException.InnerException.Message ?? ex.Message, GetType().FullName).Message; r.mensagem.MessageType = MsgType.ERROR; } return(r); }
public AlertaRepository Run(Repository value) { ChamadoViewModel c = (ChamadoViewModel)value; AlertaRepository r = new AlertaRepository(); try { EmpresaSecurity <SecurityContext> security = new EmpresaSecurity <SecurityContext>(); security.Create(this.seguranca_db); sessaoCorrente = security._getSessaoCorrente(seguranca_db, value.sessionId); #region Recupera o número do chamado if (c.ChamadoID == 0) { c.ChamadoID = (from cham in db.Chamados where cham.CondominioID == sessaoCorrente.empresaId && cham.UsuarioID == sessaoCorrente.usuarioId select cham.ChamadoID).Max(); } else { ChamadoModel ChamadoModel = new ChamadoModel(); ChamadoModel.Create(this.db, this.seguranca_db); c = ChamadoModel.getObject(c); } #endregion #region Enviar E-mail de notificação int EmailTemplateID = int.Parse(db.Parametros.Find(sessaoCorrente.empresaId, (int)Enumeracoes.Enumeradores.Param.EMAIL_TEMPLATE_CHAMADO).Valor); string _Edificacao = c.EdificacaoID > 0 && c.FilaSolicitanteID == DWMSessaoLocal.FilaCondominoID(sessaoCorrente, db) ? " - " + db.Edificacaos.Find(c.EdificacaoID).Descricao + " " + c.UnidadeID.ToString() : ""; EmailLogViewModel EmailLogViewModel = new EmailLogViewModel() { uri = value.uri, empresaId = sessaoCorrente.empresaId, EmailTipoID = (int)Enumeracoes.Enumeradores.EmailTipo.CHAMADO, CondominioID = sessaoCorrente.empresaId, EdificacaoID = c.EdificacaoID, UnidadeID = c.UnidadeID, GrupoCondominoID = null, DataEmail = Funcoes.Brasilia(), Nome = c.NomeUsuario + _Edificacao, Assunto = db.EmailTipos.Find((int)Enumeracoes.Enumeradores.EmailTipo.CHAMADO, sessaoCorrente.empresaId).Assunto + " " + c.ChamadoID.ToString() + " - " + c.Assunto, EmailMensagem = db.EmailTemplates.Find(EmailTemplateID).EmailMensagem, Repository = c }; EmailNotificacaoBI notificacaoBI = new EmailNotificacaoBI(this.db, this.seguranca_db); EmailLogViewModel = notificacaoBI.Run(EmailLogViewModel); if (EmailLogViewModel.mensagem.Code > 0) { throw new App_DominioException(EmailLogViewModel.mensagem); } EmailLogViewModel.Repository = c; IEnumerable <EmailLogViewModel> EmailLogPessoas = notificacaoBI.List(EmailLogViewModel); #endregion foreach (EmailLogViewModel log in EmailLogPessoas) { Alerta alerta = new Alerta() { usuarioId = log.UsuarioID.Value, sistemaId = sessaoCorrente.sistemaId, dt_emissao = Funcoes.Brasilia(), linkText = c.Assunto, url = "../Chamado/Index?id=" + c.ChamadoID.ToString(), mensagem = "<b>" + Funcoes.Brasilia().ToString("dd/MM/yyyy HH:mm") + "h</b><p>" + c.Assunto + "</p>" }; seguranca_db.Alertas.Add(alerta); } r.mensagem = new Validate() { Code = 0 }; } catch (DbUpdateException ex) { r.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message; if (r.mensagem.MessageBase.ToUpper().Contains("REFERENCE")) { if (r.mensagem.MessageBase.ToUpper().Contains("DELETE")) { r.mensagem.Code = 16; r.mensagem.Message = MensagemPadrao.Message(16).ToString(); r.mensagem.MessageType = MsgType.ERROR; } else { r.mensagem.Code = 28; r.mensagem.Message = MensagemPadrao.Message(28).ToString(); r.mensagem.MessageType = MsgType.ERROR; } } else if (r.mensagem.MessageBase.ToUpper().Contains("PRIMARY")) { r.mensagem.Code = 37; r.mensagem.Message = MensagemPadrao.Message(37).ToString(); r.mensagem.MessageType = MsgType.WARNING; } else if (r.mensagem.MessageBase.ToUpper().Contains("UNIQUE KEY")) { r.mensagem.Code = 54; r.mensagem.Message = MensagemPadrao.Message(54).ToString(); r.mensagem.MessageType = MsgType.WARNING; } else { r.mensagem.Code = 44; r.mensagem.Message = MensagemPadrao.Message(44).ToString(); r.mensagem.MessageType = MsgType.ERROR; } } catch (System.Data.Entity.Validation.DbEntityValidationException ex) { r.mensagem = new Validate() { Code = 42, Message = MensagemPadrao.Message(42).ToString(), MessageBase = ex.EntityValidationErrors.Select(m => m.ValidationErrors.First().ErrorMessage).First() }; } catch (Exception ex) { r.mensagem.Code = 17; r.mensagem.Message = MensagemPadrao.Message(17).ToString(); r.mensagem.MessageBase = new App_DominioException(ex.InnerException.InnerException.Message ?? ex.Message, GetType().FullName).Message; r.mensagem.MessageType = MsgType.ERROR; } return(r); }