public async Task Given_income_When_add_it_Then_it_is_accepted()
        {
            var target      = TestClientFactory.BuildClient(out var settings);
            var transaction = new IncomeTransaction
            {
                Description = "Test income transaction from Buxfer",
                Amount      = 1.0m,
                AccountId   = settings.AccountId,
                Date        = DateTime.Now
            };

            transaction.TagNames.Add(BuxferClientAutoTestsTag);


            var createdTransaction = await target.AddTransaction(transaction);

            createdTransaction.ShouldBeLike(transaction);
            createdTransaction.Amount.Should().Be(transaction.Amount);
            createdTransaction.AccountId.Should().Be(transaction.AccountId);

            var loadedTransaction =
                await Load <IncomeTransaction>(target, createdTransaction.Id, transaction.TagNames.First());

            loadedTransaction.ShouldBeLike(transaction);
        }
Exemple #2
0
        private async void OnAddTransactionClick(object sender, EventArgs e)
        {
            float.TryParse(amountField.Text, out float conversion);

            if (TransactionToEdit != null)
            {
                TransactionToEdit.Description = descriptionField.Text;
                TransactionToEdit.Amount      = conversion;
                await App.Database.SaveItemAsync(TransactionToEdit);
            }
            else
            {
                IncomeTransaction transaction = new IncomeTransaction
                {
                    Description = descriptionField.Text,
                    Amount      = conversion
                };

                await App.Database.SaveItemAsync(transaction);

                UserIncomeView.UserIncome.Add(transaction);
            }

            await Navigation.PopAsync();
        }
Exemple #3
0
        /// <summary>
        /// Заполняет модель даными из моделей слоя DAL
        /// </summary>
        /// <param name="transaction">Транзакция с доходами</param>
        /// <param name="dalRecord">Запись из базы о транзакции</param>
        /// <returns></returns>
        public static IncomeTransaction FillFromDalEntities(this IncomeTransaction transaction, SnapshotRecord dalRecord)
        {
            transaction.ContractorName      = dalRecord.ContractorName;
            transaction.CreditAccountNumber = dalRecord.CreditAccountNumber;
            transaction.Date = dalRecord.TransactionDate;
            transaction.DebitAccountNumber = dalRecord.DebitAccountNumber;
            transaction.Puprose            = dalRecord.PaymentPurpose;
            transaction.Sum = dalRecord.IncomeSum;

            switch (dalRecord.TransactionType)
            {
            case 0:
                transaction.Type = IncomeTypes.Salary;
                break;

            case 1:
                transaction.Type = IncomeTypes.Pension;
                break;

            case 2:
                transaction.Type = IncomeTypes.Service;
                break;
            }

            return(transaction);
        }
Exemple #4
0
 public IncomeModelV2(IncomeTransaction transaction)
     : base(transaction)
 {
     DebitAccount  = transaction.DebitAccountNumber;
     CreditAccount = transaction.CreditAccountNumber;
     ContractorInn = transaction.ContractorInn;
     Purpose       = transaction.Puprose;
 }
Exemple #5
0
 public void AddIncomeTransaction(IncomeTransaction transaction)
 {
     if (transaction == null)
     {
         throw new ArgumentNullException(nameof(transaction));
     }
     transaction.Id = Guid.NewGuid();
     _context.IncomeTransactions.Add(transaction);
 }
Exemple #6
0
        public AddUserIncomePage(IncomeTransaction item)
        {
            InitializeComponent();

            Title = "Edit User Income";
            AddTransactionButton.Text = "Edit User Income";

            TransactionToEdit = item;

            descriptionField.Text = TransactionToEdit.Description;
            amountField.Text      = TransactionToEdit.Amount.ToString();
        }
        public void AddIncome(PaymentForm formData)
        {
            var incomeData = new IncomeTransaction
            {
                Id                = Guid.NewGuid(),
                Frequency         = formData.Frequency,
                Investor          = LoginService.Investor,
                TransactionAmount = formData.Amount,
                TransactionType   = TransactionType.Income
            };

            DbContext.Add <IncomeTransaction>(incomeData);
            DbContext.SaveChanges();
        }
Exemple #8
0
        public IncomeModel(IncomeTransaction transaction)
        {
            Date           = transaction.Date;
            Sum            = transaction.Sum;
            ContractorName = transaction.ContractorName;
            switch (transaction.Type)
            {
            case IncomeTypes.Salary:
                IncomeType = "salary";
                break;

            case IncomeTypes.Pension:
                IncomeType = "pension";
                break;

            case IncomeTypes.Service:
                IncomeType = "service";
                break;
            }
        }
Exemple #9
0
        public static IncomeTransaction ConvertToYearlyStandard(this IncomeTransaction transaction)
        {
            switch (transaction.Frequency)
            {
            case TransactionFrequency.Weekly:
                return(new IncomeTransaction
                {
                    Id = transaction.Id,
                    Investor = transaction.Investor,
                    Frequency = TransactionFrequency.Yearly,
                    TransactionAmount = transaction.TransactionAmount * 52
                });

            case TransactionFrequency.Fortnightly:
                return(new IncomeTransaction
                {
                    Id = transaction.Id,
                    Investor = transaction.Investor,
                    Frequency = TransactionFrequency.Yearly,
                    TransactionAmount = transaction.TransactionAmount * 26
                });

            case TransactionFrequency.Monthly:
                return(new IncomeTransaction
                {
                    Id = transaction.Id,
                    Investor = transaction.Investor,
                    Frequency = TransactionFrequency.Yearly,
                    TransactionAmount = transaction.TransactionAmount * 12
                });

            case TransactionFrequency.Yearly:
                return(transaction);

            default:
                throw new NotImplementedException();
            }
        }
        public static void Init(FinanceDbContext db)
        {
            if (HasRun)
            {
                return;
            }

            var trans1 = new IncomeTransaction
            {
                Id = Guid.NewGuid(),
                TransactionAmount = 50000M,
                Frequency         = TransactionFrequency.Yearly
            };
            var trans2 = new ExpenseTransaction
            {
                Id = Guid.NewGuid(),
                TransactionAmount = 100M,
                Frequency         = TransactionFrequency.Weekly
            };
            var trans3 = new IncomeTransaction
            {
                Id = Guid.NewGuid(),
                TransactionAmount = 80000M,
                Frequency         = TransactionFrequency.Yearly
            };
            var trans4 = new ExpenseTransaction
            {
                Id = Guid.NewGuid(),
                TransactionAmount = 300M,
                Frequency         = TransactionFrequency.Weekly
            };
            var trans5 = new IncomeTransaction
            {
                Id = Guid.NewGuid(),
                TransactionAmount = 250000M,
                Frequency         = TransactionFrequency.Yearly
            };
            var trans6 = new ExpenseTransaction
            {
                Id = Guid.NewGuid(),
                TransactionAmount = 200M,
                Frequency         = TransactionFrequency.Weekly
            };
            var trans7 = new IncomeTransaction
            {
                Id = Guid.NewGuid(),
                TransactionAmount = 201M,
                Frequency         = TransactionFrequency.Weekly
            };
            var trans8 = new IncomeTransaction
            {
                Id = Guid.NewGuid(),
                TransactionAmount = 210M,
                Frequency         = TransactionFrequency.Weekly
            };

            var investor1 = new Investor
            {
                Id    = Guid.NewGuid(),
                Email = "*****@*****.**"
                ,
                Income = new List <IncomeTransaction>()
                {
                    trans1,
                    trans7
                }
                , Expenses = new List <ExpenseTransaction>()
                {
                    trans2
                }
                , Name     = "David Stokes"
                , Password = "******"
            };

            var investor2 = new Investor
            {
                Id    = Guid.NewGuid(),
                Email = "*****@*****.**"
                ,
                Income = new List <IncomeTransaction>()
                {
                    trans3
                }
                ,
                Expenses = new List <ExpenseTransaction>()
                {
                    trans4
                }
                ,
                Name = "Fiona Slight"
                ,
                Password = "******"
            };

            var investor3 = new Investor
            {
                Id    = Guid.NewGuid(),
                Email = "*****@*****.**"
                ,
                Income = new List <IncomeTransaction>()
                {
                    trans5
                }
                ,
                Expenses = new List <ExpenseTransaction>()
                {
                    trans6
                }
                ,
                Name = "Ashley Lane"
                ,
                Password = "******"
            };

            //db.Incomes.Add(trans1);
            //db.Expenses.Add(trans2);
            //db.Incomes.Add(trans3);
            //db.Expenses.Add(trans4);
            //db.Incomes.Add(trans5);
            //db.Expenses.Add(trans6);
            //db.Incomes.Add(trans7);
            //db.Incomes.Add(trans8);

            db.Investors.Add(investor1);
            db.Investors.Add(investor2);
            db.Investors.Add(investor3);

            db.SaveChangesAsync();

            DataGenerator.HasRun = true;
        }
Exemple #11
0
 /// <summary>
 ///     Adds income transaction
 /// </summary>
 /// <param name="transaction">The transaction.</param>
 /// <returns>Transaction creation status</returns>
 public async Task <IncomeTransaction> AddTransaction(IncomeTransaction transaction)
 {
     return(await AddTransaction <IncomeTransaction>(transaction));
 }
Exemple #12
0
 public void DeleteIncomeTransaction(IncomeTransaction transaction)
 {
     _context.IncomeTransactions.Remove(transaction);
 }