Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
 public async Task SaveAsync(Trexo model)
 {
     await RepositoryWrapper.TrexoRepository.SaveAsync(model);
 }
Beispiel #4
0
 public void Save(Trexo model)
 {
     RepositoryWrapper.TrexoRepository.Save(model);
 }
Beispiel #5
0
 public async Task IncluirAsync(Trexo model)
 {
     await RepositoryWrapper.TrexoRepository.IncluirAsync(model);
 }
Beispiel #6
0
 public void Incluir(Trexo model)
 {
     RepositoryWrapper.TrexoRepository.Incluir(model);
 }
Beispiel #7
0
 public void Deletar(Trexo model)
 {
     model.IsDeleted = true;
     Atualizar(model);
 }
Beispiel #8
0
 public void Atualizar(Trexo model)
 {
     RepositoryWrapper.TrexoRepository.Atualizar(model);
 }