public async Task <object> AdicionarLotes(object input) { var service = new EventoService(); var data = DateTime.Now; var arquivos = input.ToStringArray(); foreach (var caminhoArquivo in arquivos) { var arquivoEncriptado = File.ReadAllBytes(caminhoArquivo); var arquivosEncriptadosBytes = new List <byte[]>(); if (arquivoEncriptado.IsZipFile()) { arquivosEncriptadosBytes.AddRange(arquivoEncriptado.UnzipAll()); } else { arquivosEncriptadosBytes.Add(arquivoEncriptado); } foreach (var arquivoEncriptadoBytes in arquivosEncriptadosBytes) { if (!CryptographyHelper.IsHeaderValid(arquivoEncriptadoBytes, Resources.HeaderEFinanceira)) { throw new ArquivoInvalidoException(); } var arquivoDecriptado = CryptographyHelper.Decrypt(arquivoEncriptadoBytes, Resources.CryptoPrivateKey); var dadosArquivo = JsonConvert.DeserializeObject <ArquivoComunicacaoEFinanceiraDto>(arquivoDecriptado.GetString()); var empresa = new Empresa { Entidade = dadosArquivo.Entidade, CNPJ = dadosArquivo.EntidadeCnpj, Nome = dadosArquivo.EntidadeNome }; var lote = new EFinanceiraLote { DataAtualizacao = data, DataUpload = data, IdLote = dadosArquivo.LoteId, StatusEvento = (int)StatusEventoEnum.Novo, TipoEvento = dadosArquivo.TipoEventoId, XmlLote = dadosArquivo.LoteXmlBase64.FromBase64String() }; service.AdicionarLote(empresa, lote); } } return(new { }); }