Example #1
0
        public ICommandResult Handle(AdicionarVotoCommand command)
        {
            try
            {
                if (!command.ValidarCommand())
                {
                    return(new CommandResult(false, "Por favor, corrija as inconsistências abaixo", command.Notifications));
                }

                int     id      = 0;
                Usuario usuario = new Usuario(command.IdUsuario);
                Filme   filme   = new Filme(command.IdFilme);

                Voto voto = new Voto(id, usuario, filme);

                if (voto.Usuario.Id == 0)
                {
                    AddNotification("Id Usuário", "Id não está vinculado à operação solicitada");
                }

                if (voto.Filme.Id == 0)
                {
                    AddNotification("Id Filme", "Id não está vinculado à operação solicitada");
                }

                if (!_repositoryUsuario.CheckId(voto.Usuario.Id))
                {
                    AddNotification("Id Usuário", "Este Id Usuário não está cadastrado! Impossível prosseguir com este Id Usuário.");
                }

                if (!_repositoryFilme.CheckId(voto.Filme.Id))
                {
                    AddNotification("Id Filme", "Este Id Filme não está cadastrado! Impossível prosseguir com este Id Filme.");
                }

                if (_repository.CheckUsuarioVotou(voto.Usuario.Id))
                {
                    AddNotification("Id Usuário", "Este Id Usuário já possui um voto registrado.");
                }

                if (Invalid)
                {
                    return(new CommandResult(false, "Por favor, corrija as inconsistências abaixo", Notifications));
                }

                id = _repository.Salvar(voto);

                return(new CommandResult(true, "Voto gravado com sucesso!", new
                {
                    Id = id,
                    IdUsuario = voto.Usuario.Id,
                    IdFilme = voto.Filme.Id
                }));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #2
0
        public ICommandResult Handle(AtualizarFilmeCommand command)
        {
            try
            {
                if (!command.ValidarCommand())
                {
                    return(new CommandResult(false, "Por favor, corrija as inconsistências abaixo", command.Notifications));
                }

                int    id      = command.Id;
                string titulo  = command.Titulo;
                string diretor = command.Diretor;

                Filme filme = new Filme(id, titulo, diretor);

                if (filme.Id == 0)
                {
                    AddNotification("Id", "Id não está vinculado à operação solicitada");
                }

                if (!_repository.CheckId(filme.Id))
                {
                    AddNotification("Id", "Este Id não está cadastrado! Impossível prosseguir com este Id.");
                }

                if (Invalid)
                {
                    return(new CommandResult(false, "Por favor, corrija as inconsistências abaixo", Notifications));
                }

                _repository.Atualizar(filme);

                return(new CommandResult(true, "Filme atualizado com sucesso!", new
                {
                    Id = filme.Id,
                    Titulo = filme.Titulo,
                    Diretor = filme.Diretor
                }));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }