public object Post([FromBody] Dictionary <string, string> dados) { var validator = new PessoaValidator(); var pessoa = new Pessoa() { nome = dados.ContainsKey("nome") ? dados["nome"] : null, sexo = dados.ContainsKey("sexo") ? dados["sexo"] : null, endereco = dados.ContainsKey("endereco") ? dados["endereco"] : null, documento = dados.ContainsKey("documento") ? dados["documento"] : null }; try { DateTime date; if (DateTime.TryParse(dados["dataNascimento"], out date)) { pessoa.dataNascimento = date; } var result = validator.Validate(pessoa); if (!result.IsValid) { return(StatusCode(422, result.Errors.Select(r => r.ErrorMessage))); } _repositorio.Add(pessoa); } catch (Exception e) { Console.WriteLine("Erro em ApiController::107-126: " + e.Message); return(StatusCode(500, "Falha no processamento da informação")); } return(pessoa); }
public ManterPessoasServices( IContratoGlobalRepository repository, IPessoasRepository pessoaRepository, PessoaValidator pessoaValidator) : base(repository) { this.pessoaRepository = pessoaRepository; this.pessoaValidator = pessoaValidator; }
private static void Validar(Pessoa pessoa) { var validator = new PessoaValidator(); validator.ValidateAndThrow(pessoa); }
public object Put(int id, [FromBody] Dictionary <string, string> dados) { if (!dados.ContainsKey("id")) { dados.Add("id", id.ToString()); } else { dados["id"] = id.ToString(); } var pessoa = _repositorio.Get(id); if (!(pessoa is Pessoa)) { return(StatusCode(500, "Nenhum registro encontrado com o código informado.")); } foreach (var chave in dados.Keys) { if (chave == "id") { continue; } if (chave == "dataNascimento") { pessoa.dataNascimento = null; DateTime date; if (DateTime.TryParse(dados["dataNascimento"], out date)) { pessoa.dataNascimento = date; } } else { var propertyInfo = pessoa.GetType().GetProperty(chave); propertyInfo.SetValue(pessoa, Convert.ChangeType(dados[chave], propertyInfo.PropertyType), null); } } var validator = new PessoaValidator(); var result = validator.Validate(pessoa); if (!result.IsValid) { return(StatusCode(422, result.Errors.Select(r => r.ErrorMessage))); } try { _repositorio.Update(pessoa); Dictionary <string, string> retorno = new Dictionary <string, string>() { { "success", "true" } }; return(Json(retorno)); } catch (Exception e) { Console.WriteLine("Erro na atualização de pessoa: " + e.Message); return(StatusCode(500, "Falha no processamento da informação")); } }
public MainViewModel() { Pessoa = new Pessoa(); _validator = new PessoaValidator(); ValidarCommand = new Command(ValidarCommandExecute); }