//JsonResult -> Receber chamadas Ajax (JavaScript) public JsonResult CadastrarMotorista(MotoristaCadastroViewModel model) { // verificar se os dados model passaram nas validacoes.. if (ModelState.IsValid) { try { // entidade.. Motorista m = new Motorista(); m.Nome = model.Nome; m.Cpf = model.Cpf; m.Telefone = model.Telefone; //gravar no banco.. MotoristaRepository rep = new MotoristaRepository(); rep.Insert(m); return(Json($"Motorista {m.Nome}, cadastrado com sucesso.")); } catch (Exception e) { //retornar mensagem de erro.. return(Json(e.Message)); } } else { //criar uma rotina para retornar as mensagens de erro de //validacao para cada campo da classe viewmodel.. Hashtable erros = new Hashtable(); //varrer o objeto ModelState.. foreach (var state in ModelState) { //verificar se o elemento contem erro.. if (state.Value.Errors.Count > 0) { //adicionar o erro dentro do Hashtable.. erros[state.Key] = state.Value.Errors.Select(e => e.ErrorMessage).First(); } } // retornar erros de Validação.. Status 400 Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(erros)); } }
public void Importar(string path) { try { string cabecalho = "Nome,Telefones,E-mail,cpf-cpnf,cep"; StreamReader reader = new StreamReader(File.OpenRead(path)); ConcurrentBag <Motorista> motoristas = new ConcurrentBag <Motorista>(); Stopwatch timerParallelForeach = new Stopwatch(); timerParallelForeach.Start(); Parallel.ForEach(LerLinha(reader), linhaAtual => { var valores = linhaAtual.Split(','); if (linhaAtual != cabecalho) { motoristas.Add(new Motorista { Nome = valores[0], Telefone = valores[1], Email = valores[2], CPFCNPJ = valores[3], CEP = valores[4] }); } }); MotoristaRepository motoristaRepository = new MotoristaRepository(); motoristaRepository.Insert(motoristas.ToList()); timerParallelForeach.Stop(); MessageBox.Show(string.Concat("Importado ", motoristas.Count(), " em: ", timerParallelForeach.Elapsed), "Importação realizada com sucesso"); } catch (Exception ex) { MessageBox.Show("Ocorreu um erro ao realizar a importação dos registros: " + ex.ToString()); return; } }