/// <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); }
/// <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); }
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); }
/// <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); }
/// <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); }
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))); } }
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)))); } }