Example #1
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
            {
                ExpenseTransaction transaction = new ExpenseTransaction
                {
                    Description = descriptionField.Text,
                    Amount      = conversion
                };

                await App.Database.SaveItemAsync(transaction);

                UserExpensesView.UserExpenses.Add(transaction);
            }

            await Navigation.PopAsync();
        }
Example #2
0
        //public List<ExpenseTransactionDTO> GetExpenseTransaction(DateTime reportDate, string mode)
        //{
        //    var lstExpenseTransaction = new List<ExpenseTransactionDTO>();
        //    using (var entities = new ManiMotorsEntities1())
        //    {
        //        if (mode == "DAILY")
        //        {
        //            var results = entities.GetDailyExpenseTransaction_SP(reportDate);
        //            foreach (var ent in results)
        //            {
        //                var expenseTransactionDTO = new ExpenseTransactionDTO();
        //                expenseTransactionDTO.ExpenseTransactionID = ent.ExpenseTransactionID;
        //                expenseTransactionDTO.ExpenseID = ent.ExpenseID ?? 0;
        //                expenseTransactionDTO.Comments = ent.Comments;
        //                expenseTransactionDTO.Amount = ent.Amount ?? 0;
        //                expenseTransactionDTO.ExpenseDescription = ent.Description;
        //                expenseTransactionDTO.CreatedDate = ent.CreatedDate ?? DateTime.Now;
        //                lstExpenseTransaction.Add(expenseTransactionDTO);
        //            }
        //        }
        //        else if (mode == "MONTHLY")
        //        {
        //            var results = entities.GetMonthlyExpenseTransaction_SP(reportDate);
        //            foreach (var ent in results)
        //            {
        //                var expenseTransactionDTO = new ExpenseTransactionDTO();
        //                expenseTransactionDTO.ExpenseTransactionID = ent.ExpenseTransactionID;
        //                expenseTransactionDTO.ExpenseID = ent.ExpenseID ?? 0;
        //                expenseTransactionDTO.Comments = ent.Comments;
        //                expenseTransactionDTO.Amount = ent.Amount ?? 0;
        //                expenseTransactionDTO.ExpenseDescription = ent.Description;
        //                expenseTransactionDTO.CreatedDate = ent.CreatedDate ?? DateTime.Now;
        //                lstExpenseTransaction.Add(expenseTransactionDTO);
        //            }

        //        }
        //        else if (mode == "YEARLY")
        //        {
        //            var results = entities.GetYearlyExpenseTransaction_SP(reportDate);
        //            foreach (var ent in results)
        //            {
        //                var expenseTransactionDTO = new ExpenseTransactionDTO();
        //                expenseTransactionDTO.ExpenseTransactionID = ent.ExpenseTransactionID;
        //                expenseTransactionDTO.ExpenseID = ent.ExpenseID ?? 0;
        //                expenseTransactionDTO.Comments = ent.Comments;
        //                expenseTransactionDTO.Amount = ent.Amount ?? 0;
        //                expenseTransactionDTO.ExpenseDescription = ent.Description;
        //                expenseTransactionDTO.CreatedDate = ent.CreatedDate ?? DateTime.Now;
        //                lstExpenseTransaction.Add(expenseTransactionDTO);
        //            }

        //        }
        //    }

        //    return lstExpenseTransaction;
        //}

        public bool AddExpenseTransaction(ExpenseTransactionDTO expenseTransactionDTO)
        {
            var flag = true;

            try
            {
                using (var entities = new ManiMotorsEntities1())
                {
                    var expenseTransaction = new ExpenseTransaction()
                    {
                        ExpenseID    = expenseTransactionDTO.ExpenseID,
                        Comments     = expenseTransactionDTO.Comments,
                        Amount       = expenseTransactionDTO.Amount,
                        DebitType    = expenseTransactionDTO.DebitType,
                        ExpenseDate  = expenseTransactionDTO.ExpenseDate,
                        CreatedDate  = expenseTransactionDTO.CreatedDate,
                        Createdby    = expenseTransactionDTO.CreatedBy,
                        Modifiedby   = expenseTransactionDTO.ModifiedBy,
                        ModifiedDate = expenseTransactionDTO.ModifiedDate,
                        Type         = expenseTransactionDTO.Type,
                    };
                    entities.ExpenseTransactions.Add(expenseTransaction);
                    entities.SaveChanges();
                    flag = true;
                }
            }
            catch (Exception ex)
            {
                flag = false;
                throw ex;
            }

            return(flag);
        }
        private void LoadTransactionItems(ExpenseTransaction transaction)
        {
            rdVoidTransaction.Checked = false;
            rdVoidItems.Checked       = false;

            try
            {
                var transactionItems = ServiceProvider.Instance().GetTransactionItemServices().GetTransactionItemsByExpenseTransaction(transaction.ExpenseTransactionId);

                if (transactionItems == null || !transactionItems.Any())
                {
                    ConfirmAlertBox1.ShowMessage("Transaction Items could not be retrieved.", ConfirmAlertBox.PopupMessageType.Error);
                    return;
                }

                var dSource = transactionItems.ElementAt(0).Key.ToList();

                lblTransactionTitle.Text         = transaction.ExpenseTitle;
                lblRequestedAmmount.InnerText    = "N" + NumberMap.GroupToDigits(transaction.TotalTransactionAmount.ToString(CultureInfo.InvariantCulture));
                lblApprovedTotalAmount.InnerText = "N" + NumberMap.GroupToDigits(transaction.TotalApprovedAmount.ToString(CultureInfo.InvariantCulture));
                dgExpenseItem.DataSource         = dSource;
                dgExpenseItem.DataBind();
                LoadTransactionsFooter();
                Session["_transaction"]      = transaction;
                Session["_transactionItems"] = dSource;
                dvTransactionItems.Visible   = true;
                dvUserEntries.Visible        = false;
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again soon or contact the Admin.", ConfirmAlertBox.PopupMessageType.Error);
            }
        }
Example #4
0
 private ExpensesResponse MapExpense(ExpenseTransaction newExpense)
 {
     return(new ExpensesResponse
     {
         Expenses = new List <Responses.ExpenseDto>
         {
             ExpenseToDto(newExpense)
         }
     });
 }
Example #5
0
 public bool AddExpenseTransaction(ExpenseTransaction transaction)
 {
     try
     {
         return(GetAddExpenseStatus(new ExpensesTrackerDataAccess().AddExpenseTransaction(transaction)));
     }
     catch (Exception ex)
     {
     }
     return(false);
 }
Example #6
0
 public long AddExpenseTransaction(ExpenseTransaction expenseTransaction)
 {
     try
     {
         return(_expenseTransactionManager.AddExpenseTransaction(expenseTransaction));
     }
     catch (Exception ex)
     {
         ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
         return(0);
     }
 }
Example #7
0
 public bool UpdateVoidedTransactionItemsAndTransaction(ExpenseTransaction transaction, List <TransactionItem> voidedTransactionItemList)
 {
     try
     {
         return(_transactionItemManager.UpdateVoidedTransactionItemsAndTransaction(transaction, voidedTransactionItemList));
     }
     catch (Exception ex)
     {
         ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
         return(false);
     }
 }
Example #8
0
 public int AddTransactionItems(List <TransactionItem> transactionItems, ExpenseTransaction expenseTransaction)
 {
     try
     {
         return(_transactionItemManager.AddTransactionItems(transactionItems, expenseTransaction));
     }
     catch (Exception ex)
     {
         ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
         return(0);
     }
 }
Example #9
0
 public bool ModifyPendingTransactionAndItem(ExpenseTransaction transaction, int transactionItemId)
 {
     try
     {
         return(_transactionItemManager.ModifyPendingTransactionAndItem(transaction, transactionItemId));
     }
     catch (Exception ex)
     {
         ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
         return(false);
     }
 }
Example #10
0
 public bool UpdatePendingTransactionAndItem(ExpenseTransaction transaction, TransactionItem updatedTransactionItem)
 {
     try
     {
         return(_transactionItemManager.UpdatePendingTransactionAndItem(transaction, updatedTransactionItem));
     }
     catch (Exception ex)
     {
         ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
         return(false);
     }
 }
Example #11
0
 public bool UpdateExpenseTransaction(ExpenseTransaction expenseTransaction)
 {
     try
     {
         return(_expenseTransactionManager.UpdateExpenseTransaction(expenseTransaction));
     }
     catch (Exception ex)
     {
         ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
         return(false);
     }
 }
Example #12
0
        public AddUserExpensePage(ExpenseTransaction item)
        {
            InitializeComponent();

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

            TransactionToEdit = item;

            descriptionField.Text = TransactionToEdit.Description;
            amountField.Text      = TransactionToEdit.Amount.ToString();
        }
Example #13
0
 private static Responses.ExpenseDto ExpenseToDto(ExpenseTransaction newExpense)
 {
     return(new Responses.ExpenseDto
     {
         ExpenseId = newExpense.UId.ToString(),
         CategoryId = newExpense.BudgetCategoryId.ToString(),
         Description = newExpense.Description,
         ExpendedValue = newExpense.Value,
         TransactionDate = newExpense.TransactionDate,
         BudgetId = newExpense.BudgetCategory?.BudgetId.ToString(),
         UserId = newExpense.BudgetCategory?.UserBudget?.UserId,
     });
 }
Example #14
0
        internal static ExpenseTransaction CreateNewExpense(BudgetDetail budgetCategory, string description, decimal expendedValue, DateTime transactionDate)
        {
            var newExpense = new ExpenseTransaction
            {
                BudgetCategoryId = budgetCategory.UId,
                BudgetCategory   = budgetCategory,
                Description      = description,
                Value            = expendedValue,
                TransactionDate  = transactionDate,
            };

            budgetCategory.AddExpense(newExpense);
            return(newExpense);
        }
        public void AddExpense(PaymentForm formData)
        {
            var expenseData = new ExpenseTransaction
            {
                Id                = Guid.NewGuid(),
                Frequency         = formData.Frequency,
                Investor          = LoginService.Investor,
                TransactionAmount = formData.Amount,
                TransactionType   = TransactionType.Expense
            };

            DbContext.Add <ExpenseTransaction>(expenseData);
            DbContext.SaveChanges();
        }
Example #16
0
        public void Should_handle_empty_value_for_money()
        {
            // act
            var transaction = ExpenseTransaction.Parse(Bank.Hsbc, new [] {
                "26 Mar 2018",
                "xxx",
                "PIZZA EXPRESS LONDON  3223",
                "3.88",
                " "
            });

            // assert
            Assert.Equal(3.88m, transaction.PaidOut);
            Assert.Equal(0, transaction.PaidIn);
        }
Example #17
0
        public void Should_handle_empty_value_for_paidout()
        {
            // act
            var transaction = ExpenseTransaction.Parse(Bank.Hsbc, new []
            {
                "29 Mar 2018",
                "xxx",
                "ARROWS GROUP PROFE ARROWS GROUP PROFE ",
                " ",
                "11400.00"
            });

            // assert
            Assert.Equal(0m, transaction.PaidOut);
            Assert.Equal(11400.00m, transaction.PaidIn);
        }
        public DataTable AddExpenseTransaction(ExpenseTransaction transaction)
        {
            List <SqlParameter> parameters = new List <SqlParameter>();

            parameters.Add(new SqlParameter()
            {
                DbType = DbType.Date, ParameterName = "transactionDate", Value = transaction.Date
            });
            parameters.Add(new SqlParameter()
            {
                DbType = DbType.Int32, ParameterName = "groupId", Value = transaction.GroupId
            });
            parameters.Add(new SqlParameter()
            {
                DbType = DbType.Int32, ParameterName = "subgroupid", Value = transaction.SubGroupId
            });
            parameters.Add(new SqlParameter()
            {
                DbType = DbType.String, ParameterName = "item", Value = transaction.Item
            });
            parameters.Add(new SqlParameter()
            {
                DbType = DbType.Decimal, ParameterName = "amount", Value = transaction.Amount
            });
            parameters.Add(new SqlParameter()
            {
                DbType = DbType.Int32, ParameterName = "accountid", Value = transaction.AccountId
            });
            parameters.Add(new SqlParameter()
            {
                DbType = DbType.String, ParameterName = "transactedBy", Value = transaction.TransactedBy
            });
            parameters.Add(new SqlParameter()
            {
                DbType = DbType.String, ParameterName = "store", Value = transaction.Store
            });

            DataSet ds = SQLHelper.ExecuteProcedure("HomeTransactions", "AddHomeTransactions", CommandType.StoredProcedure, parameters);

            if (ds != null)
            {
                return(ds.Tables[0]);
            }
            return(null);
        }
Example #19
0
        public void Should_handle_csv_for_barclaycard()
        {
            // act
            var transaction = ExpenseTransaction.Parse(Bank.Barclaycard, new []
            {
                "21 Apr 18",
                " Waitrose 834, Clifton8.10 POUND STERLING GREAT BRITAIN ",
                "Visa",
                "MS H LEE",
                "Groceries",
                "",
                "8.10"
            });

            // assert
            Assert.Equal(new DateTime(2018, 4, 21), transaction.Date);
            Assert.Equal("Waitrose 834, Clifton8.10 POUND STERLING GREAT BRITAIN", transaction.Description);
            Assert.Equal(8.10m, transaction.PaidOut);
        }
        private void LoadTransactionItems(ExpenseTransaction transaction)
        {
            try
            {
                ClearItemsControls();

                var transactionItems = ServiceProvider.Instance().GetTransactionItemServices().GetTransactionItemsByExpenseTransaction(transaction.ExpenseTransactionId);

                if (transactionItems == null || !transactionItems.Any())
                {
                    ConfirmAlertBox1.ShowMessage("Transaction Items could not be retrieved.", ConfirmAlertBox.PopupMessageType.Error);
                    return;
                }

                if (string.IsNullOrEmpty(lblRequestedAmmount.InnerText))
                {
                    lblRequestedAmmount.InnerText = "N" + NumberMap.GroupToDigits(transaction.TotalTransactionAmount.ToString(CultureInfo.InvariantCulture));
                }

                if (transaction.TotalApprovedAmount > 0)
                {
                    lblApprovedTotalAmount.InnerText = "N" + NumberMap.GroupToDigits(transaction.TotalApprovedAmount.ToString(CultureInfo.InvariantCulture));
                }
                else
                {
                    lblApprovedTotalAmount.InnerText = NumberMap.GroupToDigits(0.ToString(CultureInfo.InvariantCulture));
                }

                lblTransactionTitle.Text = transaction.ExpenseTitle;
                dgExpenseItem.DataSource = transactionItems.ElementAtOrDefault(0).Key.ToList();
                dgExpenseItem.DataBind();
                SetTransactionsStyle();
                LoadTransactionsFooter();
                hTitle.InnerText           = "Requested Transaction Items";
                dvTransactionItems.Visible = true;
                dvUserEntries.Visible      = false;
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again soon or contact the Admin.", ConfirmAlertBox.PopupMessageType.Error);
            }
        }
Example #21
0
        private async void UpdatePaidAmount(object sender, EventArgs e)
        {
            var expenseTransaction = new ExpenseTransaction
            {
                Date       = PaidDate.Date,
                Name       = Name.Text,
                Type       = Convert.ToString(type.SelectedItem),
                PaidAmount = Convert.ToInt32(PaidAmount.Text)
            };

            await connection.InsertAsync(expenseTransaction);

            expenseTransactionList.Insert(0, expenseTransaction);

            totalExpense += Convert.ToInt32(PaidAmount.Text);
            UpdateTotalExpanseLabel();

            Name.Text       = "";
            PaidAmount.Text = "";
        }
Example #22
0
        public static ExpenseTransaction ConvertToYearlyStandard(this ExpenseTransaction transaction)
        {
            switch (transaction.Frequency)
            {
            case TransactionFrequency.Weekly:
                return(new ExpenseTransaction
                {
                    Id = transaction.Id,
                    Investor = transaction.Investor,
                    Frequency = TransactionFrequency.Yearly,
                    TransactionAmount = transaction.TransactionAmount * 52
                });

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

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

            case TransactionFrequency.Yearly:
                return(transaction);

            default:
                throw new NotImplementedException();
            }
        }
Example #23
0
        public async Task Given_expense_When_add_it_Then_it_is_recorded()
        {
            var target      = TestClientFactory.BuildClient(out var settings);
            var transaction = new ExpenseTransaction
            {
                Description = "Test expense 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.AccountId.Should().Be(transaction.AccountId);

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

            loadedTransaction.ShouldBeLike(transaction);
        }
Example #24
0
 /// <summary>
 ///     Adds expense transaction
 /// </summary>
 /// <param name="transaction">The transaction.</param>
 /// <returns>Transaction creation status</returns>
 public async Task <ExpenseTransaction> AddTransaction(ExpenseTransaction transaction)
 {
     return(await AddTransaction <ExpenseTransaction>(transaction));
 }
Example #25
0
        private void LoadTransactionItems(ExpenseTransaction transaction)
        {
            try
            {
                radApprove.Checked      = false;
                radReject.Checked       = false;
                radVoid.Checked         = false;
                txtApproverComment.Text = string.Empty;
                var dictCollection = ServiceProvider.Instance().GetTransactionItemServices().GetTransactionItemsByExpenseTransaction(transaction.ExpenseTransactionId);

                if (dictCollection == null || !dictCollection.Any())
                {
                    ConfirmAlertBox1.ShowMessage("Transaction Items could not be retrieved.", ConfirmAlertBox.PopupMessageType.Error);
                    return;
                }

                var transactionItems = dictCollection.ElementAtOrDefault(0).Key.ToList();
                if (!transactionItems.Any())
                {
                    dgExpenseItem.DataSource = new List <TransactionItem>();
                    ddlExpenseItem.DataBind();
                    ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again or contact the Administrator.", ConfirmAlertBox.PopupMessageType.Error);
                    return;
                }

                var expenseItems = dictCollection.ElementAtOrDefault(0).Value.ToList();

                if (!expenseItems.Any())
                {
                    ddlExpenseItem.DataSource = new List <ExpenseItem>();
                    ddlExpenseItem.DataBind();
                    ddlExpenseItem.Items.Insert(0, new ListItem("--List is empty--", "0"));
                    ddlExpenseItem.SelectedIndex = 0;
                    ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again or contact the Administrator.", ConfirmAlertBox.PopupMessageType.Error);
                    return;
                }

                ddlExpenseItem.DataSource     = expenseItems;
                ddlExpenseItem.DataTextField  = "Title";
                ddlExpenseItem.DataValueField = "ExpenseItemId";
                ddlExpenseItem.DataBind();
                ddlExpenseItem.Items.Insert(0, new ListItem("--Select Expense Item--", "0"));
                ddlExpenseItem.SelectedIndex = 0;

                if (ddlExpenseType.Items.Count == 1 || ddlExpenseType.Items.Count == 0)
                {
                    LoadTransactionTypes();
                }

                lblTransactionTitle.Text           = transaction.ExpenseTitle;
                lblRequestedAmmount.InnerText      = "N" + NumberMap.GroupToDigits(transaction.TotalTransactionAmount.ToString(CultureInfo.InvariantCulture));
                lblTransactionRquestDate.InnerText = transaction.TransactionDate;
                dgExpenseItem.DataSource           = transactionItems;
                dgExpenseItem.DataBind();
                //SetTransactionsStyle();
                LoadTransactionsFooter();
                Session["_transactionItems"] = transactionItems;
                Session["_transaction"]      = transaction;
                dvTransactionItems.Visible   = true;
                dvUserEntries.Visible        = false;
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again soon or contact the Admin.", ConfirmAlertBox.PopupMessageType.Error);
            }
        }
 public void addExpenseVoucher(ExpenseTransaction tr)
 {
     db.ExpenseTransactions.Add(tr);
 }
Example #27
0
        public HttpResponseMessage AddTransaction(ExpenseTransaction transaction)
        {
            Boolean result = new ExpensesTrackerRepository().AddExpenseTransaction(transaction);

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
        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;
        }
        public static TR Map <T, TR>(T sourceObject) where T : class where TR : class
        {
            if (sourceObject == null)
            {
                return(null);
            }
            Type myType = typeof(T);

            if (myType == typeof(ExpenseTransaction))
            {
                var objItem = new ExpenseManager.EF.ExpenseTransaction();
                var myItem  = sourceObject as ExpenseTransaction;
                if (myItem == null)
                {
                    return(null);
                }
                ;
                try
                {
                    objItem.ExpenseTransactionId = myItem.ExpenseTransactionId;

                    objItem.ExpenseTitle = myItem.ExpenseTitle;

                    objItem.Description = myItem.Description;

                    objItem.BeneficiaryId = myItem.BeneficiaryId;

                    objItem.BeneficiaryTypeId = myItem.BeneficiaryTypeId;

                    objItem.RegisteredById = myItem.RegisteredById;

                    objItem.TransactionDate = myItem.TransactionDate;

                    objItem.TransactionTime = myItem.TransactionTime;

                    objItem.Status = myItem.Status;

                    objItem.TotalTransactionAmount = myItem.TotalTransactionAmount;

                    objItem.ApproverId = myItem.ApproverId;

                    objItem.DateApproved = myItem.DateApproved;

                    objItem.TimeApproved = myItem.TimeApproved;

                    objItem.TotalApprovedAmount = myItem.TotalApprovedAmount;

                    objItem.ApproverComment = myItem.ApproverComment;
                }
                catch (Exception ex)
                {
                    return(new ExpenseTransaction() as TR);
                }
                return(objItem as TR);
            }
            if (myType == typeof(ExpenseManager.EF.ExpenseTransaction))
            {
                var objItem = new ExpenseTransaction();
                var myItem  = sourceObject as ExpenseManager.EF.ExpenseTransaction;
                if (myItem == null)
                {
                    return(null);
                }
                ;
                try
                {
                    objItem.ExpenseTransactionId = myItem.ExpenseTransactionId;

                    objItem.ExpenseTitle = myItem.ExpenseTitle;

                    objItem.Description = myItem.Description;

                    objItem.BeneficiaryId = myItem.BeneficiaryId;

                    objItem.BeneficiaryTypeId = myItem.BeneficiaryTypeId;

                    objItem.RegisteredById = myItem.RegisteredById;

                    objItem.TransactionDate = myItem.TransactionDate;

                    objItem.TransactionTime = myItem.TransactionTime;

                    objItem.Status = myItem.Status;

                    objItem.TotalTransactionAmount = myItem.TotalTransactionAmount;

                    objItem.ApproverId = myItem.ApproverId;

                    objItem.DateApproved = myItem.DateApproved;

                    objItem.TimeApproved = myItem.TimeApproved;

                    objItem.TotalApprovedAmount = myItem.TotalApprovedAmount;

                    objItem.ApproverComment = myItem.ApproverComment;

                    #region Included Tables
                    try
                    {
                        objItem.Beneficiary = new Beneficiary();
                        objItem.Beneficiary.BeneficiaryId = myItem.Beneficiary.BeneficiaryId;

                        objItem.Beneficiary.FullName = myItem.Beneficiary.FullName;

                        objItem.Beneficiary.GSMNO2 = myItem.Beneficiary.GSMNO2;

                        objItem.Beneficiary.GSMNO1 = myItem.Beneficiary.GSMNO1;

                        objItem.Beneficiary.DateRegistered = myItem.Beneficiary.DateRegistered;

                        objItem.Beneficiary.TimeRegistered = myItem.Beneficiary.TimeRegistered;

                        objItem.Beneficiary.Sex = myItem.Beneficiary.Sex;

                        objItem.Beneficiary.Email = myItem.Beneficiary.Email;

                        objItem.Beneficiary.Status = myItem.Beneficiary.Status;

                        objItem.Beneficiary.CompanyName = myItem.Beneficiary.CompanyName;

                        objItem.Beneficiary.DepartmentId = myItem.Beneficiary.DepartmentId;

                        objItem.Beneficiary.UnitId = myItem.Beneficiary.UnitId;

                        objItem.Beneficiary.BeneficiaryTypeId = myItem.Beneficiary.BeneficiaryTypeId;
                    }
                    catch {}
                    try
                    {
                        objItem.BeneficiaryType = new BeneficiaryType();
                        objItem.BeneficiaryType.BeneficiaryTypeId = myItem.BeneficiaryType.BeneficiaryTypeId;

                        objItem.BeneficiaryType.Name = myItem.BeneficiaryType.Name;

                        objItem.BeneficiaryType.Status = myItem.BeneficiaryType.Status;
                    }
                    catch {}
                    #endregion
                }
                catch (Exception ex)
                {
                    return(new ExpenseTransaction() as TR);
                }
                return(objItem as TR);
            }
            return(null);
        }