public async Task <ActionResult> ImportEscolas([FromForm] IFormFile file) { await UnitOfWork.BeginTransactionAsync(); var result = await xlHelper.Import(file, async row => { var dto = new SaveEscolaDTO { Nome = xlHelper.GetTextCell(row, 1), RazaoSocial = xlHelper.GetTextCell(row, 2), Cnpj = xlHelper.GetTextCell(row, 3), Telefone = xlHelper.GetTextCell(row, 4), Email = xlHelper.GetTextCell(row, 5), Site = xlHelper.GetTextCell(row, 6) }; if (!TryValidateModel(dto, nameof(dto))) { await UnitOfWork.RollbackAsync(); throw new Exception($"Erro na importação, cheque os dados da linha {row}"); } await UnitOfWork.Escolas.CreateAsync(dto); }); if (result.Status.Equals(ResultStatus.Error)) { return(BadRequest(new { message = result.Message })); } await UnitOfWork.CommitAsync(); return(Ok(new { message = "Arquivo Importado com Sucesso" })); }
public void Should_Return_Error_On_Validation() { var validationModel = new SaveEscolaDTO(); var validationResult = new List <ValidationResult>(); var validationContext = new System.ComponentModel.DataAnnotations.ValidationContext(validationModel, null, null); Validator.TryValidateObject(validationModel, validationContext, validationResult, true); Assert.IsTrue(validationResult.Any(v => v.MemberNames.Contains("Email") && v.ErrorMessage.Contains("required"))); Assert.IsTrue(validationResult.Any(v => v.MemberNames.Contains("Nome") && v.ErrorMessage.Contains("required"))); }
public async Task <ActionResult <int> > Put(int id, [FromBody] SaveEscolaDTO dto) { if (!ModelState.IsValid) { return(BadRequest("Informações de atualização inválidas")); } try { await UnitOfWork.Escolas.UpdateAsync(id, dto); return(Ok(id)); } catch (Exception e) { Logger.LogError(e.Message, e, dto); return(BadRequest("Problema desconhecido encontrado na atualização")); } }
public async Task <ActionResult <int> > Post(SaveEscolaDTO dto) { if (!ModelState.IsValid) { return(BadRequest("Informações de inserção inválidas")); } try { var entity = await UnitOfWork.Escolas.CreateAsync(dto); return(Ok(entity.Id)); } catch (Exception e) { Logger.LogError(e.Message, e, dto); return(BadRequest("Problema desconhecido encontrado na inserção")); } }