/// <summary> /// Lê o arquivo excel informado e grava no banco de dados os dados desse arquivo /// </summary> /// <param name="arquivo">Informações do arquivo excel</param> /// <returns></returns> private async Task Cadastrar(ArquivoDto arquivo) { using (var pck = new ExcelPackage(arquivo.StreamArquivo)) { var ws = pck.Workbook.Worksheets[0]; var totalColunas = ws.ObterDimensoes().End.Column; var totalLinhas = ws.ObterDimensoes().End.Row; for (var row = 2; row <= totalLinhas; row++) { var cadastrar = true; var linha = new LinhaArquivoDto(Guid.NewGuid(), arquivo.Id); for (var col = 1; col <= totalColunas; col++) { switch (totalColunas) { case 3: linha.Linha = row - 1; switch (col) { case 1: linha.Offset = ws.Cells[row, col].Value.ToString(); break; case 2: linha.Original = ws.Cells[row, col].Value.ConvertStringToUtf8(); break; case 3: linha.Traducao = ws.Cells[row, col].Value.ConvertStringToUtf8(); break; } break; case 4: if (Enum.TryParse(ws.Cells[row, 1].Value.ToString(), true, out YakuzaKiwamiColunasPermitidas _)) { switch (col) { case 1: linha.Coluna = ws.Cells[row, col].Value.ToString(); break; case 2: linha.Linha = int.Parse(ws.Cells[row, col].Value.ToString() !) + 1; break; case 3: linha.Original = ws.Cells[row, col].Value.ConvertStringToUtf8(); break; case 4: linha.Traducao = ws.Cells[row, col].Value.ConvertStringToUtf8(); break; } } else { cadastrar = false; } break; } } if (cadastrar) { arquivo.Linhas.Add(linha); } } } await _arquivosRepositorio.CadastrarEditar(arquivo); }
public static LinhaArquivo ConverterParaModel(this LinhaArquivoDto dto) { return(ConverterPara(dto, new LinhaArquivo())); }