public CondominoViewModel Run(Repository value)
        {
            CondominoViewModel c;
            CondominoViewModel r;

            if (value is CondominoPFViewModel)
            {
                c = (CondominoPFViewModel)value;
                r = new CondominoPFViewModel();
            }
            else
            {
                c = (CondominoPJViewModel)value;
                r = new CondominoPJViewModel();
            }
            try
            {
                if (SessaoLocal.CondominoID > 0)
                {
                    r.CondominoID = SessaoLocal.CondominoID;
                    if (value is CondominoPFViewModel)
                    {
                        CondominoPFModel model = new CondominoPFModel(this.db, this.seguranca_db);
                        r = model.getObject((CondominoPFViewModel)r);
                    }
                    else
                    {
                        // escrever aqui o código para recuperar o condomino PJ
                    }
                }
                else
                {
                    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);
        }
예제 #2
0
        public RegisterViewModel Run(Repository value)
        {
            RegisterViewModel r = (RegisterViewModel)value;

            try
            {
                int _empresaId = int.Parse(db.Parametros.Find(r.CondominioID, (int)Enumeracoes.Enumeradores.Param.EMPRESA).Valor);
                int _grupoId   = int.Parse(db.Parametros.Find(r.CondominioID, (int)Enumeracoes.Enumeradores.Param.GRUPO_USUARIO).Valor);

                #region validar cadastro
                Validate validate = Validate(r);
                if (validate.Code > 0)
                {
                    throw new ArgumentException(validate.MessageBase);
                }
                #endregion

                #region Cadastrar o condômino como um usuário em DWM-Segurança

                #region Usuario
                EmpresaSecurity <SecurityContext> security = new EmpresaSecurity <SecurityContext>();

                Usuario user = new Usuario()
                {
                    nome        = r.Nome.Trim().Length > 40 ? r.Nome.Substring(0, 40).ToUpper() : r.Nome.Trim().ToUpper(),
                    login       = r.Email,
                    empresaId   = _empresaId,
                    dt_cadastro = Funcoes.Brasilia(),
                    situacao    = r.UnidadeViewModel.Validador != null && r.UnidadeViewModel.Validador != "" ? "A" : "D",
                    isAdmin     = "N",
                    senha       = security.Criptografar(r.senha)
                };

                seguranca_db.Usuarios.Add(user);
                #endregion

                #region UsuarioGrupo
                UsuarioGrupo ug = new UsuarioGrupo()
                {
                    Usuario  = user,
                    grupoId  = _grupoId,
                    situacao = "A"
                };

                seguranca_db.UsuarioGrupos.Add(ug);
                #endregion

                seguranca_db.SaveChanges();

                #endregion

                #region Incluir Condômino
                CondominoViewModel condomino = null;
                if (r.UnidadeViewModel.TipoCondomino == "F")
                {
                    #region Incluir o Condômino PF
                    condomino = new CondominoPFViewModel()
                    {
                        uri             = r.uri,
                        empresaId       = _empresaId,
                        CondominoID     = r.CondominoID,
                        CondominioID    = r.CondominioID,
                        Nome            = r.Nome,
                        IndFiscal       = r.IndFiscal,
                        IndProprietario = r.IndProprietario,
                        TelParticular1  = r.TelParticular1,
                        TelParticular2  = r.TelParticular2,
                        Email           = r.Email,
                        IndSituacao     = r.UnidadeViewModel.Validador != null && r.UnidadeViewModel.Validador != "" ? "A" : "D",
                        UsuarioID       = user.usuarioId,
                        ProfissaoID     = r.ProfissaoID,
                        DataNascimento  = r.DataNascimento,
                        Sexo            = r.Sexo,
                        IndAnimal       = r.IndAnimal,
                    };

                    CondominoPFModel condominoPFModel = new CondominoPFModel(this.db, this.seguranca_db);
                    condomino = condominoPFModel.Insert((CondominoPFViewModel)condomino);
                    if (condomino.mensagem.Code > 0)
                    {
                        #region Exclui o usuário
                        seguranca_db.UsuarioGrupos.Remove(ug);
                        seguranca_db.Usuarios.Remove(user);
                        seguranca_db.SaveChanges();
                        #endregion
                        throw new App_DominioException(condomino.mensagem);
                    }
                    #endregion
                }
                else
                {
                    #region Incluir o Condômino PJ
                    condomino = new CondominoPJViewModel()
                    {
                        uri             = r.uri,
                        empresaId       = _empresaId,
                        CondominoID     = r.CondominoID,
                        CondominioID    = r.CondominioID,
                        Nome            = r.Nome,
                        IndFiscal       = r.IndFiscal,
                        IndProprietario = r.IndProprietario,
                        TelParticular1  = r.TelParticular1,
                        TelParticular2  = r.TelParticular2,
                        Email           = r.Email,
                        IndSituacao     = r.UnidadeViewModel.Validador != null && r.UnidadeViewModel.Validador != "" ? "A" : "D",
                        UsuarioID       = user.usuarioId,
                        Administrador   = r.Administrador,
                        RamoAtividadeID = r.RamoAtividadeID,
                    };

                    CondominoPJModel condominoPJModel = new CondominoPJModel(this.db, this.seguranca_db);
                    condomino = condominoPJModel.Insert((CondominoPJViewModel)condomino);
                    if (condomino.mensagem.Code > 0)
                    {
                        #region Exclui o usuário
                        seguranca_db.UsuarioGrupos.Remove(ug);
                        seguranca_db.Usuarios.Remove(user);
                        seguranca_db.SaveChanges();
                        #endregion
                        throw new App_DominioException(condomino.mensagem);
                    }
                    #endregion
                }
                #endregion

                #region Incluir o CondominoUnidade
                CondominoUnidadeViewModel condominoUnidadeViewModel = new CondominoUnidadeViewModel()
                {
                    uri                = r.uri,
                    CondominioID       = r.UnidadeViewModel.CondominioID,
                    EdificacaoID       = r.UnidadeViewModel.EdificacaoID,
                    UnidadeID          = r.UnidadeViewModel.UnidadeID,
                    CondominoID        = r.CondominoID,
                    DataInicio         = Funcoes.Brasilia().Date,
                    CondominoViewModel = condomino
                };

                CondominoUnidadeModel condominoUnidadeModel = new CondominoUnidadeModel(this.db, this.seguranca_db);
                condominoUnidadeViewModel = condominoUnidadeModel.Insert(condominoUnidadeViewModel);
                if (condominoUnidadeViewModel.mensagem.Code > 0)
                {
                    throw new App_DominioException(condomino.mensagem);
                }
                #endregion

                r.CondominoID = condomino.CondominoID;
                r.IndSituacao = condomino.IndSituacao;
                r.mensagem    = condomino.mensagem;
                r.UnidadeViewModel.EdificacaoDescricao = db.Edificacaos.Find(r.UnidadeViewModel.EdificacaoID).Descricao;
                db.SaveChanges();
            }
            catch (ArgumentException ex)
            {
                r.mensagem = new Validate()
                {
                    Code = 999, Message = MensagemPadrao.Message(999).ToString(), MessageBase = ex.Message
                };
            }
            catch (App_DominioException ex)
            {
                r.mensagem = ex.Result;

                if (ex.InnerException != null)
                {
                    r.mensagem.MessageBase = new App_DominioException(ex.InnerException.Message ?? ex.Message, GetType().FullName).Message;
                }
                else
                {
                    r.mensagem.MessageBase = new App_DominioException(ex.Result.Message, GetType().FullName).Message;
                }
            }
            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);
        }
예제 #3
0
        public ActionResult EditCondomino(int CondominioID, int CondominoID, string Nome, string Email, string IndFiscal, string DataCadastro,
                                          string IndSituacao, string TelParticular1, string TelParticular2, string DataNascimento, string usuarioId,
                                          string Sexo, string IndProprietario, string IndAnimal, string ProfissaoID, string Observacao,
                                          string cnpj, string Administrador, string RamoAtividadeID)
        {
            if (ViewBag.ValidateRequest)
            {
                CondominoViewModel result = null;
                try
                {
                    SessaoLocal s = DWMSessaoLocal.GetSessaoLocal();
                    ViewBag.SessaoLocal = s;
                    CondominoViewModel value = null;

                    if (IndFiscal != null && IndFiscal.Trim().Length > 0)
                    {
                        value = new CondominoPFViewModel()
                        {
                            CondominioID     = CondominioID,
                            CondominoID      = CondominoID,
                            Nome             = Nome,
                            Email            = Email,
                            IndFiscal        = IndFiscal,
                            IndSituacao      = IndSituacao,
                            DataCadastro     = DataCadastro != null && DataCadastro != "" ? Funcoes.StringToDate(DataCadastro).Value : Funcoes.Brasilia(),
                            TelParticular1   = TelParticular1,
                            TelParticular2   = TelParticular2,
                            Sexo             = Sexo,
                            IndProprietario  = IndProprietario,
                            IndAnimal        = IndAnimal,
                            DataNascimento   = Funcoes.StringToDate(DataNascimento),
                            ProfissaoID      = ProfissaoID != null && int.Parse(ProfissaoID) > 0 ? int.Parse(ProfissaoID) : 0,
                            Observacao       = Observacao,
                            UsuarioViewModel = new UsuarioViewModel()
                            {
                                empresaId = CondominioID,
                                usuarioId = usuarioId != null && usuarioId != "" ? int.Parse(usuarioId) : 0
                            }
                        };

                        value.uri = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString();
                        Facade <CondominoPFViewModel, CondominoPFModel, ApplicationContext> facade = new Facade <CondominoPFViewModel, CondominoPFModel, ApplicationContext>();
                        result = facade.Save((CondominoPFViewModel)value, Crud.ALTERAR);
                    }
                    else
                    {
                        value = new CondominoPJViewModel()
                        {
                            CondominioID     = CondominioID,
                            CondominoID      = CondominoID,
                            Nome             = Nome,
                            Email            = Email,
                            IndFiscal        = cnpj,
                            IndSituacao      = IndSituacao,
                            DataCadastro     = DataCadastro != null && DataCadastro != "" ? Funcoes.StringToDate(DataCadastro).Value : Funcoes.Brasilia(),
                            TelParticular1   = TelParticular1,
                            TelParticular2   = TelParticular2,
                            IndProprietario  = IndProprietario,
                            Administrador    = Administrador,
                            RamoAtividadeID  = RamoAtividadeID != null && RamoAtividadeID != "" ? int.Parse(RamoAtividadeID) : 0,
                            Observacao       = Observacao,
                            UsuarioViewModel = new UsuarioViewModel()
                            {
                                empresaId = CondominioID,
                                usuarioId = usuarioId != null && usuarioId != "" ? int.Parse(usuarioId) : 0
                            }
                        };

                        value.uri = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString();
                        Facade <CondominoPJViewModel, CondominoPJModel, ApplicationContext> facade = new Facade <CondominoPJViewModel, CondominoPJModel, ApplicationContext>();
                        result = facade.Save((CondominoPJViewModel)value, Crud.ALTERAR);
                    }

                    if (result.mensagem.Code > 0)
                    {
                        throw new App_DominioException(result.mensagem);
                    }

                    Success("Condômino alterado com sucesso");
                }
                catch (App_DominioException ex)
                {
                    ModelState.AddModelError("", ex.Result.MessageBase); // mensagem amigável ao usuário
                    Error(ex.Result.Message);                            // Mensagem em inglês com a descrição detalhada do erro e fica no topo da tela
                }
                catch (Exception ex)
                {
                    App_DominioException.saveError(ex, GetType().FullName);
                    ModelState.AddModelError("", MensagemPadrao.Message(17).ToString()); // mensagem amigável ao usuário
                    Error(ex.Message);                                                   // Mensagem em inglês com a descrição detalhada do erro e fica no topo da tela
                }

                return(View(result));
            }
            else
            {
                return(View());
            }
        }
        public CondominoUnidadeViewModel Run(Repository value)
        {
            CondominoUnidadeViewModel cu = (CondominoUnidadeViewModel)value;

            cu.mensagem = new Validate()
            {
                Code = 0, Message = "Registro incluído com sucesso"
            };

            CondominoPFViewModel Cond = new CondominoPFViewModel()
            {
                CondominioID = cu.CondominioID,
                CondominoID  = cu.CondominoID,
            };

            CondominoPFModel     model = new CondominoPFModel(this.db, this.seguranca_db);
            CondominoPFViewModel r     = model.getObject(Cond);

            try
            {
                r.IndSituacao = "A";
                r.uri         = value.uri;
                r             = model.Update(r);
                db.SaveChanges();

                #region envio de e-mail ao condômino para notificação de ativação
                int EmailTemplateID = int.Parse(db.Parametros.Find(sessaoCorrente.empresaId, (int)Enumeracoes.Enumeradores.Param.EMAIL_TEMPLATE_ATIVACAO_CONDOMINO).Valor);
                EmailLogViewModel EmailLogViewModel = new EmailLogViewModel()
                {
                    UsuarioID            = sessaoCorrente.usuarioId,
                    uri                  = value.uri,
                    empresaId            = sessaoCorrente.empresaId,
                    EmailTipoID          = (int)DWM.Models.Enumeracoes.Enumeradores.EmailTipo.ATIVACAO_CONDOMINO,
                    CondominioID         = sessaoCorrente.empresaId,
                    EdificacaoID         = cu.EdificacaoID,
                    Descricao_Edificacao = db.Edificacaos.Find(cu.EdificacaoID).Descricao,
                    UnidadeID            = cu.UnidadeID,
                    Email                = r.Email,
                    DataEmail            = Funcoes.Brasilia(),
                    Nome                 = r.Nome,
                    Assunto              = db.EmailTipos.Find((int)Enumeracoes.Enumeradores.EmailTipo.ATIVACAO_CONDOMINO, sessaoCorrente.empresaId).Assunto,
                    EmailMensagem        = db.EmailTemplates.Find(EmailTemplateID).EmailMensagem,
                    Repository           = r
                };

                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 = r;
                IEnumerable <EmailLogViewModel> EmailLogPessoas = notificacaoBI.List(EmailLogViewModel);

                foreach (EmailLogViewModel log in EmailLogPessoas)
                {
                    Alerta alerta = new Alerta()
                    {
                        usuarioId  = r.UsuarioID.Value, // log.UsuarioID.Value,
                        sistemaId  = sessaoCorrente.sistemaId,
                        dt_emissao = Funcoes.Brasilia(),
                        linkText   = "Ativação - " + r.Nome.Split(' ')[0] + " " + r.Nome.Split(' ')[1],
                        url        = "../Condomino/Index?id=" + r.CondominoID.ToString() + "&EdificacaoID=" + cu.EdificacaoID.ToString() + "&UnidadeID=" + cu.UnidadeID.ToString() + "&TipoPessoa=PF",
                        mensagem   = "<b>" + Funcoes.Brasilia().ToString("dd/MM/yyyy HH:mm") + "h</b><p>Ativação - " + r.Nome.Split(' ')[0] + " " + r.Nome.Split(' ')[1] + "</p>"
                    };

                    seguranca_db.Alertas.Add(alerta);
                }
                #endregion
            }
            catch (ArgumentException ex)
            {
                cu.mensagem = new Validate()
                {
                    Code = 997, Message = MensagemPadrao.Message(997).ToString(), MessageBase = ex.Message
                };
            }
            catch (App_DominioException ex)
            {
                cu.mensagem = ex.Result;

                if (ex.InnerException != null)
                {
                    cu.mensagem.MessageBase = new App_DominioException(ex.InnerException.Message ?? ex.Message, GetType().FullName).Message;
                }
                else
                {
                    cu.mensagem.MessageBase = new App_DominioException(ex.Result.Message, GetType().FullName).Message;
                }
            }
            catch (DbUpdateException ex)
            {
                cu.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message;
                if (cu.mensagem.MessageBase.ToUpper().Contains("REFERENCE") || cu.mensagem.MessageBase.ToUpper().Contains("FOREIGN"))
                {
                    if (cu.mensagem.MessageBase.ToUpper().Contains("DELETE"))
                    {
                        cu.mensagem.Code        = 16;
                        cu.mensagem.Message     = MensagemPadrao.Message(16).ToString();
                        cu.mensagem.MessageType = MsgType.ERROR;
                    }
                    else
                    {
                        cu.mensagem.Code        = 28;
                        cu.mensagem.Message     = MensagemPadrao.Message(28).ToString();
                        cu.mensagem.MessageType = MsgType.ERROR;
                    }
                }
                else if (cu.mensagem.MessageBase.ToUpper().Contains("PRIMARY"))
                {
                    cu.mensagem.Code        = 37;
                    cu.mensagem.Message     = MensagemPadrao.Message(37).ToString();
                    cu.mensagem.MessageType = MsgType.WARNING;
                }
                else if (cu.mensagem.MessageBase.ToUpper().Contains("UNIQUE KEY"))
                {
                    cu.mensagem.Code        = 54;
                    cu.mensagem.Message     = MensagemPadrao.Message(54).ToString();
                    cu.mensagem.MessageType = MsgType.WARNING;
                }
                else
                {
                    cu.mensagem.Code        = 44;
                    cu.mensagem.Message     = MensagemPadrao.Message(44).ToString();
                    cu.mensagem.MessageType = MsgType.ERROR;
                }
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException ex)
            {
                cu.mensagem = new Validate()
                {
                    Code = 42, Message = MensagemPadrao.Message(42).ToString(), MessageBase = ex.EntityValidationErrors.Select(m => m.ValidationErrors.First().ErrorMessage).First()
                };
            }
            catch (Exception ex)
            {
                cu.mensagem.Code        = 17;
                cu.mensagem.Message     = MensagemPadrao.Message(17).ToString();
                cu.mensagem.MessageBase = new App_DominioException(ex.InnerException.InnerException.Message ?? ex.Message, GetType().FullName).Message;
                cu.mensagem.MessageType = MsgType.ERROR;
            }
            return(cu);
        }