public ValidadorValor VerificaValor(object _info, int linha) { ValidadorValor validador = new ValidadorValor(); string _data; try { _data = Convert.ToString(_info); if (String.IsNullOrEmpty(_data)) { validador.Status = "O Campo de Valor Unitario esta nulo. Linha do Erro: " + linha.ToString(); return(validador); } else { double data; try { data = Convert.ToDouble(_data); } catch (Exception e) { validador.Status = "O Campo de Valor Unitario está no formato errado para conversão. Linha do Erro: " + linha.ToString() + " Erro: " + e; return(validador); } if (data == null) { validador.Status = "O Campo de Valor Unitario esta nulo. Linha do Erro: " + linha.ToString(); return(validador); } else if (data <= 0) { validador.Status = "O Campo de Valor Unitario tem valor negativo. Linha do Erro: " + linha.ToString(); return(validador); } else if (data == 0) { validador.Status = "O Campo de Valor Unitario tem valor igual a 0. Linha do Erro: " + linha.ToString(); return(validador); } validador.Status = "Ok"; validador.ValorUnit = Math.Round(data, 2); return(validador); } } catch (Exception e) { validador.Status = "O Campo de Valor esta vazio. Linha do Erro: " + linha.ToString() + " Erro: " + e; return(validador); } }
public async Task <ExcelModel> Leitor(IFormFile file, TabelaDao _context) { List <Tabela> dados = new List <Tabela>(); List <ValidadorModel> validadorModel = new List <ValidadorModel>(); using (var memoryStream = new MemoryStream()) { await file.CopyToAsync(memoryStream).ConfigureAwait(false); using (var package = new ExcelPackage(memoryStream)) { for (int i = 1; i <= package.Workbook.Worksheets.Count; i++) { var totalRows = package.Workbook.Worksheets[i].Dimension?.Rows; var totalCollumns = package.Workbook.Worksheets[i].Dimension?.Columns; for (int j = 2; j <= totalRows.Value; j++) { Tabela infos = new Tabela(); Validador validador = new Validador(); ValidadorModel erros = new ValidadorModel(); ValidadorDataEntrega validadorDataEntrega = validador.VerificaData(package.Workbook.Worksheets[i].Cells[j, 1].Value, j); if (validadorDataEntrega.Status.Contains("Ok")) { infos.DataEntrega = validadorDataEntrega.DataEntrega; } else { erros.IdLinhaExcel = j; erros.TamanhoData = validadorDataEntrega.Status; } ValidadorNomeProduto validadorNomeProduto = validador.VerificaDescricao(package.Workbook.Worksheets[i].Cells[j, 2].Value, j);; if (validadorNomeProduto.Status.Contains("Ok")) { infos.NomeDoProduto = validadorNomeProduto.NomeProduto; } else { erros.IdLinhaExcel = j; erros.TamanhoDescricao = validadorNomeProduto.Status; } ValidadorQuantidade validadorQuantidade = validador.VerificaQtd(package.Workbook.Worksheets[i].Cells[j, 3].Value, j);; if (validadorQuantidade.Status.Contains("Ok")) { infos.Quantidade = validadorQuantidade.Quantidade; } else { erros.IdLinhaExcel = j; erros.TamanhoQtd = validadorQuantidade.Status; } ValidadorValor validadorValor = validador.VerificaValor(package.Workbook.Worksheets[i].Cells[j, 4].Value, j);; if (validadorValor.Status.Contains("Ok")) { infos.ValorUnit = validadorValor.ValorUnit; } else { erros.IdLinhaExcel = j; erros.TamanhoValor = validadorValor.Status; } dados.Add(infos); if (erros.IdLinhaExcel != 0) { validadorModel.Add(erros); } } } } } ExcelModel retorno = new ExcelModel(); retorno.DadosTabela = dados; if (validadorModel.Capacity == 0) { _context.SetDados(dados); } else { retorno.ValidadorModel = validadorModel; } return(retorno); }