示例#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(EntrarNaInstituicaoCommand command)
        {
            command.Validar();
            if (!command.IsValid)
            {
                return(new GenericCommandResult(false, "Dados inválidos!", command.Notifications));
            }

            var instituicao = Repositorio.Buscar(command.Codigo);

            if (instituicao == null)
            {
                return(new GenericCommandResult(false, "Não existe nenhuma instituição com o código informado!", command.Codigo));
            }

            if (instituicao.UsuariosInstituicoes.Find(ui => ui.IdUsuario == command.IdUsuario) != null)
            {
                return(new GenericCommandResult(false, "Você já faz parte dessa instituição!", command.Codigo));
            }

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

            Repositorio.AdicionarUsuario(usuarioInstituicao);

            return(new GenericCommandResult(true, $"Bem vindo à {instituicao.Nome}!", null));
        }
示例#3
0
 public void AlterarUsuario(UsuarioInstituicao usuarioInstituicao)
 {
     Contexto
     .Entry(usuarioInstituicao)
     .State = EntityState.Modified;
     Contexto
     .SaveChanges();
 }
示例#4
0
 public void AdicionarUsuario(UsuarioInstituicao usuarioInstituicao)
 {
     Contexto
     .UsuariosInstituicoes
     .Add(usuarioInstituicao);
     Contexto
     .SaveChanges();
 }