public async Task <IEnumerable <Trexo> > UploadAsync(string siglaEstado, IFormFile file) { IEnumerable <Trexo> trexosIncluidos = new List <Trexo>(); try { if (!file.FileName.Contains(".txt")) { throw new Exception("Formato de arquivo inválido. Favor enviar um arquivo txt"); } using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { await DesativarTrexosAtuaisAsync(); Trexo trexo = null; foreach (string linha in await file.ToListAsync()) { trexo = await LerLinhaDeTrexoAtiva(siglaEstado, linha); await IncluirAsync(trexo); trexosIncluidos.Append(trexo); } scope.Complete(); } return(trexosIncluidos); } catch (Exception e) { Debug.WriteLine(e.Message); throw; } }
/// <summary> /// Faz a leitura da linha e trasforma em trexos /// </summary> /// <param name="siglaEstado"></param> /// <param name="linha"></param> /// <returns></returns> private async Task <Trexo> LerLinhaDeTrexoAtiva(string siglaEstado, string linha) { var splitLinha = linha.Split(" "); Cidade cidadePartida = await RepositoryWrapper.CidadeRepository.ObterPorSiglaAsync(siglaEstado, splitLinha[0]); Cidade cidadeDestino = await RepositoryWrapper.CidadeRepository.ObterPorSiglaAsync(siglaEstado, splitLinha[1]); int dias = int.Parse(splitLinha[2]); Trexo trexo = new Trexo(cidadePartida.Id, cidadeDestino.Id, dias); return(trexo); }
public async Task SaveAsync(Trexo model) { await RepositoryWrapper.TrexoRepository.SaveAsync(model); }
public void Save(Trexo model) { RepositoryWrapper.TrexoRepository.Save(model); }
public async Task IncluirAsync(Trexo model) { await RepositoryWrapper.TrexoRepository.IncluirAsync(model); }
public void Incluir(Trexo model) { RepositoryWrapper.TrexoRepository.Incluir(model); }
public void Deletar(Trexo model) { model.IsDeleted = true; Atualizar(model); }
public void Atualizar(Trexo model) { RepositoryWrapper.TrexoRepository.Atualizar(model); }