Beispiel #1
0
        private void SaveTransactions(IEnumerable <Transaction> dbTransactions, IEnumerable <TransactionModel> transactionModels)
        {
            var diff = transactionModels
                       .Where(x => !dbTransactions.Any(z => x.Id.Equals(z.Id)))
                       .Select(x => new Transaction
            {
                Id              = x.Id,
                AccountId       = x.AccountId,
                CategoryId      = x.CategoryId,
                Name            = x.Name,
                Price           = x.Price,
                Date            = x.Date,
                LastApiCall     = DateTime.Now,
                ChangeStamp     = DateTime.Now,
                NeedsUpdate     = false,
                TransactionType = x.TransactionType.Equals(TransactionTypeModel.Expense) ?
                                  TransactionType.Expense :
                                  TransactionType.Income
            })
                       .ToList();

            if (!diff.Any())
            {
                return;
            }

            foreach (var transaction in diff)
            {
                transactionRepository.Add(transaction);
            }
            transactionRepository.Commit();
        }
Beispiel #2
0
        public void EntrarNaEstacao(CartaoViagem cartaoViagem, DateTime data, Zona zona)
        {
            if (cartaoViagem.Tarifa.Zona == Zona.A && zona == Zona.B)
            {
                throw new Exception("zona_cartao_invalida");
            }
            else if (cartaoViagem.Status == StatusCartaoViagem.Consumido)
            {
                throw new Exception("cartao_invalido");
            }
            else
            {
                cartaoViagem.DataVigente = (cartaoViagem.Status == StatusCartaoViagem.Pendente) ? data : cartaoViagem.DataVigente;

                var viagem = new Viagem()
                {
                    DataEntrada = data, Zona = zona
                };
                _viagemRepository.Create(viagem);
                _viagemRepository.Commit();

                cartaoViagem.Viagens.Add(viagem);

                if (cartaoViagem.Status == StatusCartaoViagem.Pendente)
                {
                    var contaBancaria = _contaBancariaRepository.Read().Where(c => c.Proprietario == cartaoViagem.Proprietario).FirstOrDefault();
                    CobrarDaContaBancaria(contaBancaria, cartaoViagem.Tarifa.Valor);
                    cartaoViagem.Status = StatusCartaoViagem.Pago;
                }

                _cartaoViagemRepository.Update(cartaoViagem);
                _cartaoViagemRepository.Commit();
            }
        }
Beispiel #3
0
 private void RemoveTransaction(Transaction transaction)
 {
     Task.Run(() =>
     {
         transactionRepository.Remove(transaction);
         transactionRepository.Commit();
         accountsRepository.RemoveAll();
         repository.Commit();
     });
 }
Beispiel #4
0
        private void SaveCloudSyncSetting()
        {
            if (initializing)
            {
                return;
            }

            if (!offlineModeEnabled)
            {
                ClearLocalCache();
            }
            else
            {
                RunSincronization();
            }

            if (offlineModeSetting == null)
            {
                offlineModeSetting         = AppSettings.GetOfflineModeSetting();
                offlineModeSetting.Enabled = offlineModeEnabled;
                appSettingsRepository.Add(offlineModeSetting);
            }
            else
            {
                appSettingsRepository.Update(offlineModeSetting);
            }

            appSettingsRepository.Commit();
        }
Beispiel #5
0
        private void AdcionarProprietarioComUmCartaoTaxaUnicaZonaA(out CartaoViagem cartaoViagem, out ContaBancaria contaBancaria)
        {
            var proprietario = new Proprietario("Igor Silva");

            _proprietarioRepository.Create(proprietario);
            _proprietarioRepository.Commit();

            var tarifa = _tarifaRepository.Read().Where(t => t.Jornada == Jornada.Unica && t.Zona == Zona.A).First();

            cartaoViagem = new CartaoViagem(proprietario, tarifa);
            _cartaoViagemRepository.Create(cartaoViagem);
            _cartaoViagemRepository.Commit();

            contaBancaria = new ContaBancaria("111111111111111", proprietario);
            _contaBancariaRepository.Create(contaBancaria);
            _contaBancariaRepository.Commit();
        }
Beispiel #6
0
        private void ClearLocalCache(object obj = null)
        {
            Task.Run(() =>
            {
                HandleSafeExecution(() =>
                {
                    accountRepository.RemoveAll();
                    accountRepository.Commit();

                    transactionRepository.RemoveAll();
                    transactionRepository.Commit();

                    Preferences.Set("FullSync", true);
                });
            });
        }
Beispiel #7
0
 public void ExecuteTemplate(IEntity entity)
 {
     try
     {
         repository.OpenConnection();
         repository.BeginTransaction();
         ExecuteOperation(entity);
         repository.Commit();
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         repository.Rollback();
         throw;
     }
     finally
     {
         repository.CloseConnection();
     }
 }
Beispiel #8
0
        public HttpResponseMessage Post([FromBody] AnimalModel model)
        {
            _animalRepo  = new GenericRepository <AnimalModel>(new FarmDbContext());
            _medicalRepo = new GenericRepository <MedicalRecord>(new FarmDbContext());
            AnimalModel animalModel = new AnimalModel();

            if (model != null)
            {
                animalModel = model;

                foreach (var mrecord in model.MedicalRecords)
                {
                    animalModel.MedicalRecords.Add(mrecord);
                }
                _animalRepo.Add(animalModel);
                _animalRepo.Commit();

                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, model));
            }
        }
Beispiel #9
0
 private void CobrarDaContaBancaria(ContaBancaria contaBancaria, decimal valor)
 {
     contaBancaria.AtualizarSaldoDevedor(valor);
     _contaBancariaRepository.Update(contaBancaria);
     _contaBancariaRepository.Commit();
 }