コード例 #1
0
        /// <summary>
        /// Verifica se os dados são válidos e retorna mensagem de erro caso encontre algum erro ou nulo caso não encontre
        /// </summary>
        /// <returns>Mensagem de erro caso dado inválido ou vazio caso tudo válido</returns>
        public string ValidarDados()
        {
            // Via reflection, valida se todas as propriedades possuem valor
            var dadoInvalido = GetType().GetProperties().Any(p => p.GetValue(this).ToString().Trim() == "");

            if (dadoInvalido)
            {
                return(ErrorMsgs.Get("CAMPOS_VAZIOS"));
            }

            // Verifica se CPF é válido
            if (!CpfHelper.ValidaCpf(Cpf))
            {
                return(ErrorMsgs.Get("CPF_INVALIDO"));
            }

            // Verifica se E-mail é válido
            if (!EmailHelper.ValidaEmail(Email))
            {
                return(ErrorMsgs.Get("EMAIL_INVALIDO"));
            }

            // Retorna vazio caso não tenha encontrado nenhum erro
            return(null);
        }
コード例 #2
0
        /// <summary>
        /// Realizar atualização do cliente
        /// </summary>
        /// <param name="newCliente">Objeto contendo os dados do cliente atualizado</param>
        /// <returns>Retorna se houve erro em algum dos dados do cliente ou nulo caso não tenha erros</returns>
        public string AtualizarCliente(Cliente newCliente)
        {
            // Buscar o cliente que será atualizado. Retorna mensagem de erro, caso cliente não seja encontrado, para apresentar via retorno de API
            var savedCliente = ClienteRepository.BuscarPorCpf(newCliente.Cpf);

            if (savedCliente == null)
            {
                return(ErrorMsgs.Get("CLIENTE_CPF_NAO_ECONTRADO", newCliente.Cpf));
            }

            // Valida os dados do cliente e retorna a mensagem de erro, caso exista, para apresentar via retorno da API
            var errorValidacaoDados = newCliente.ValidarDados();

            if (errorValidacaoDados != null)
            {
                return(errorValidacaoDados);
            }

            // Caso o e-mail tenha sido alterado, verifica se o novo digitado já é utilizado por outro usuário. Retorna mensagem de erro caso já exista um cadastro
            if (newCliente.Email != savedCliente.Email && ClienteRepository.EmailJaCadastrado(newCliente.Email))
            {
                return(ErrorMsgs.Get("EMAIL_CADASTRADO"));
            }

            // Atualiza a instância de cliente buscada no banco e a persiste no banco de dados. Retorna nulo como mensagem de erro
            savedCliente.AtualizarDados(newCliente);
            ClienteRepository.SaveChanges();
            return(null);
        }
コード例 #3
0
        public HttpResponseMessage GetCliente(string cpfCliente)
        {
            string  msgError     = null;
            Cliente savedCliente = null;

            try
            {
                savedCliente = new ClienteBusiness().BuscarPorCpf(cpfCliente);

                if (savedCliente == null)
                {
                    msgError = ErrorMsgs.Get("CLIENTE_CPF_NAO_ECONTRADO", cpfCliente);
                }
            }
            catch (Exception ex)
            {
                msgError = ErrorMsgs.Get("ERRO_BUSCAR_CLIENTE", ex.ToString(), cpfCliente);
            }

            // Retorna 404 caso não encontre o cliente ou haja algum erro.
            // Retorna 200 caso encontre o cliente
            var response = msgError == null
                ? Request.CreateResponse(HttpStatusCode.OK, savedCliente)
                : Request.CreateResponse(HttpStatusCode.NotFound, new HttpError(msgError));

            return(response);
        }
コード例 #4
0
        /// <summary>
        /// Realiza a exclusão do cliente
        /// </summary>
        /// <param name="cpfCliente">CPF do cliente</param>
        /// <returns>Retorna se houve erro durante a exclusão ou nulo caso não tenha havido problemas</returns>
        public string ExcluirCliente(string cpfCliente)
        {
            // Busca o cliente para ser excluído e retorna mensagem de erro, para retornar pela API, caso não tenha encontrado
            var savedCliente = ClienteRepository.BuscarPorCpf(cpfCliente);

            if (savedCliente == null)
            {
                return(ErrorMsgs.Get("CLIENTE_CPF_NAO_ECONTRADO", cpfCliente));
            }

            // Exclui o cliente encontrado anteriormente e retorna nulo como mensagem de erro
            ClienteRepository.Delete(savedCliente);
            return(null);
        }
コード例 #5
0
        /// <summary>
        /// Realizar cadastro do cliente
        /// </summary>
        /// <param name="cliente">Objeto contendo os dados do cliente a ser cadastrado</param>
        /// <returns>Retorna se houve erro em algum dos dados do cliente ou nulo caso não tenha erros</returns>
        public string CadastrarCliente(Cliente cliente)
        {
            // Valida os dados do cliente e retorna a mensagem de erro, caso exista, para apresentar via retorno da API
            var errorValidacaoDados = cliente.ValidarDados();

            if (errorValidacaoDados != null)
            {
                return(errorValidacaoDados);
            }

            // Verificar se CPF ou e-mail digitados já foram utilizados. Se sim, retorna a mensagem de erro para apresentar via retorno da API
            if (ClienteRepository.CpfJaCadastrado(cliente.Cpf) || ClienteRepository.EmailJaCadastrado(cliente.Email))
            {
                return(ErrorMsgs.Get("CLIENTE_CADASTRADO"));
            }

            // Cria o cliente e não retorna mensagem de erro
            ClienteRepository.Create(cliente);
            return(null);
        }
コード例 #6
0
        public HttpResponseMessage DeleteCliente(string cpfCliente)
        {
            string msgError = "";

            try
            {
                var clienteBusiness = new ClienteBusiness();
                msgError = clienteBusiness.ExcluirCliente(cpfCliente);

                // Caso não tenha retornado nenhuma mensagem de erro, retorna status code 200
                // Caso contrário, retorna 404 e a mensagem de erro
                return(msgError == null
                    ? Request.CreateResponse(HttpStatusCode.OK)
                    : Request.CreateResponse(HttpStatusCode.BadRequest, new HttpError(msgError)));
            }
            catch (Exception ex)
            {
                msgError = string.Format(ErrorMsgs.Get("ERRO_BUSCAR_CLIENTE", ex.ToString(), cpfCliente));
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new HttpError(msgError)));
            }
        }
コード例 #7
0
        public HttpResponseMessage PutCliente(string cpfCliente, Cliente cliente)
        {
            try
            {
                var clienteBusiness = new ClienteBusiness();
                var errorMsg        = clienteBusiness.AtualizarCliente(cliente);

                // Caso não tenha retornado nenhuma mensagem de erro, retorna status code 200 e os dados do cliente
                // Caso contrário, retorna 400 e a mensagem de erro
                return(errorMsg == null
                    ? Request.CreateResponse(HttpStatusCode.OK, cliente)
                    : Request.CreateResponse(HttpStatusCode.BadRequest, new HttpError(errorMsg)));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new HttpError(ErrorMsgs.Get("ERRO_ATUALIZACAO_CLIENTE", ex.ToString(), cliente.Cpf))));
            }
        }