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);
        }
Exemple #2
0
        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);
                }
            }
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }