/// <summary>
        /// Método para validar os processos para alterar um pacote
        /// </summary>
        /// <param name="_command">Comando de alteração do pacote</param>
        /// <returns>Dados salvos ou erros gerados</returns>
        public ICommandResult Handle(AlterarImagemPacoteCommand _command)
        {
            //1º Verificando se a requisição não está inserindo um arquivo
            if (_command.Arquivo != null)
            {
                //Caso um arquivo esteja sendo anexado, enviamos para o método de 'UploadFile'
                var _imagemArquivo = UploadFile.Local(_command.Arquivo, "Pacotes");

                //Atribuindo o caminho de exibição da imagem para o objeto
                _command.Imagem = _imagemArquivo;
            }

            //2º - Validando se o command recebido é válido
            _command.Validar();

            //Caso seja inválido, recebemos quando são os valores incorretos identificados por ele
            if (_command.Invalid)
            {
                return(new GenericCommandResult(false, "Informe os dados corretamente", _command.Notifications));
            }

            //3º - Verificando se o pacote existe no sistema
            var _pacoteExistente = _repository.BuscarPacotePorId(_command.IdPacote);

            if (_pacoteExistente == null)
            {
                return(new GenericCommandResult(false, "Pacote não encontrado, verifique o código do pacote", _command.Notifications));
            }

            //4º Verificando se o usuário informou uma nova imagem
            if (_command.Imagem == _pacoteExistente.Imagem)
            {
                return(new GenericCommandResult(false, "A imagem não pode ser a mesma, informe uma nova imagem", _command.Imagem));
            }

            //5º - Atribuir ao objeto pacote a alteração dos dados do mesmo
            _pacoteExistente.AlterarImagemPacote(_command.Imagem);

            //6º - Verificando se as alterações não contém erros para salvarmos
            if (_pacoteExistente.Invalid)
            {
                return(new GenericCommandResult(false, "Dados inválidos", _pacoteExistente.Notifications));
            }

            //7º - Salvando as alterações no banco de dados
            _repository.AlterarPacote(_pacoteExistente);

            //Caso sucesso
            return(new GenericCommandResult(true, "Imagem alterada com sucesso", _pacoteExistente));
        }
        /// <summary>
        /// Método para validar os processos para alterar um pacote
        /// </summary>
        /// <param name="_command">Comando de alteração do pacote</param>
        /// <returns>Dados salvos ou erros gerados</returns>
        public ICommandResult Handle(AlterarPacoteCommand _command)
        {
            //1º - Validando se o command recebido é válido
            _command.Validar();

            //Caso seja inválido, recebemos quando são os valores incorretos identificados por ele
            if (_command.Invalid)
            {
                return(new GenericCommandResult(false, "Informe os dados corretamente", _command.Notifications));
            }

            //2º - Verificando se o pacote existe no sistema
            var _pacoteExistente = _repository.BuscarPacotePorId(_command.IdPacote);

            if (_pacoteExistente == null)
            {
                return(new GenericCommandResult(false, "Pacote não encontrado, verifique o código do pacote", _command.Notifications));
            }

            //3º - Verificando se o novo titulo não está repetido com os armazenados na base de dados
            if (_command.Titulo != _pacoteExistente.Titulo)
            {
                //Buscando o email no banco de dados
                var _novoTituloExistente = _repository.BuscarPacotePorTitulo(_command.Titulo);

                //Verificando se há usuários utilizando o novo email informado
                if (_novoTituloExistente != null)
                {
                    return(new GenericCommandResult(false, "Este título já está vinculado a uma pacote, informe outro titulo", _command.Notifications));
                }
            }

            //4º - Atribuir ao objeto pacote a alteração dos dados do mesmo
            _pacoteExistente.AlterarPacote(_command.Titulo, _command.Descricao);

            //5º - Verificando se as alterações não contém erros para salvarmos
            if (_pacoteExistente.Invalid)
            {
                return(new GenericCommandResult(false, "Dados do pacote inválido", _command.Notifications));
            }

            //6º - Salvamos as alterações no banco de dados
            _repository.AlterarPacote(_pacoteExistente);

            //Caso não haja erros, restornamos sucesso e o novo objeto
            return(new GenericCommandResult(true, "Pacote alterado", _pacoteExistente));
        }
Esempio n. 3
0
        /// <summary>
        /// Método para validar os processos para alterar um pacote
        /// </summary>
        /// <param name="_command">Comando de alteração do pacote</param>
        /// <returns>Dados salvos ou erros gerados</returns>
        public ICommandResult Handle(AlterarStatusPacoteCommand _command)
        {
            //1º - Validando se o command recebido é válido
            _command.Validar();

            //Caso seja inválido, recebemos quando são os valores incorretos identificados por ele
            if (_command.Invalid)
            {
                return(new GenericCommandResult(false, "Informe os dados corretamente", _command.Notifications));
            }

            //2º - Verificando se o pacote existe no sistema
            var _pacoteExistente = _repository.BuscarPacotePorId(_command.IdPacote);

            if (_pacoteExistente == null)
            {
                return(new GenericCommandResult(false, "Pacote não encontrado, verifique o código do pacote", _command.Notifications));
            }

            if (_command.Status == _pacoteExistente.Ativo)
            {
                return(new GenericCommandResult(true, "Este status já está definido.", _command.Notifications));
            }

            _pacoteExistente.AlterarStatus(_command.Status);

            if (_pacoteExistente.Invalid)
            {
                return(new GenericCommandResult(false, "Dados inválidos", _pacoteExistente.Notifications));
            }

            //Salvar alteração no banco
            _repository.AlterarPacote(_pacoteExistente);

            return(new GenericCommandResult(true, "Status de pacote alterado", _pacoteExistente));
        }