Exemplo n.º 1
0
        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" }));
        }
Exemplo n.º 2
0
        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")));
        }
Exemplo n.º 3
0
        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"));
            }
        }
Exemplo n.º 4
0
        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"));
            }
        }