Exemplo n.º 1
0
        public ICommandResult Handle(CriarInstituicaoCommand command)
        {
            command.Validar();
            if (!command.IsValid)
            {
                return(new GenericCommandResult(false, "Dados inválidos!", command.Notifications));
            }

            string codigo;

            do
            {
                codigo = GerarCodigo();
            } while (Repositorio.Buscar(codigo) != null);

            var instituicao = new Instituicao(command.Nome, command.Descricao, codigo);

            var usuarioInstituicao = new UsuarioInstituicao(command.IdUsuario, instituicao.Id, EnTipoUsuario.Administrador);

            instituicao.UsuariosInstituicoes.Add(usuarioInstituicao);

            Repositorio.Adicionar(instituicao);

            var result = new InstituicaoGenericCommandResult(instituicao.Nome, instituicao.Descricao, instituicao.Codigo);

            return(new GenericCommandResult(true, "Instituição criada com sucesso!", result));
        }
        public ICommandResult Handle(AlterarInstituicaoCommand command)
        {
            command.Validar();
            if (!command.IsValid)
            {
                return(new GenericCommandResult(false, "Dados inválidos!", command.Notifications));
            }

            var insti = Repository.Buscar(command.IdInstituicao);

            if (insti == null)
            {
                return(new GenericCommandResult(false, "Instituição inexistente!", command.IdInstituicao));
            }

            insti.Alterar(command.Nome, command.Descricao);

            insti = Repository.Alterar(insti);

            var result = new InstituicaoGenericCommandResult(insti.Nome, insti.Descricao, insti.Codigo);

            return(new GenericCommandResult(true, "Informação(ões) da instituição alterada(s)", result));
        }