コード例 #1
0
        // GET: Schedule/Edit/5
        public ActionResult Edit(int id)
        {
            var data = db.Get(id);

            if (new SqlDataServices <Category>().Get(data.CategoryID).Type == Data.Enums.CategoryType.Expense)
            {
                data.Amount *= -1;
            }
            var model = new Schedule(data);

            var accounts = new SqlDataServices <Data.Models.Accounts>().GetAll().Where(e => e.Active).OrderBy(e => e.Name).ToList();
            var category = new SqlDataServices <Data.Models.Category>().GetAll().OrderBy(e => e.Type).ThenBy(e => e.Name);
            var payee    = new SqlDataServices <Data.Models.Payee>().GetAll().OrderBy(e => e.Name);

            ViewBag.AccountsSelected = accounts.FirstOrDefault(e => e.ID == model.AccountsID);
            if (ViewBag.AccountsSelected == null)
            {
                ViewBag.AccountsSelected = new SqlDataServices <Data.Models.Accounts>().Get(model.AccountsID);
                accounts.Add(ViewBag.AccountsSelected);
            }
            ViewBag.CategorySelected = category.First(e => e.ID == model.CategoryID);
            ViewBag.PayeeSelected    = payee.First(e => e.ID == model.PayeeID);
            ViewBag.Accounts         = accounts;
            ViewBag.Category         = category;
            ViewBag.Payee            = payee;
            return(View(model));
        }
コード例 #2
0
 public ActionResult Delete(int id, string confirmation = "")
 {
     try
     {
         // TODO: Add delete logic here
         if (confirmation == "false")
         {
             var transactionDb = new SqlDataServices <Data.Models.Transactions>();
             transactionDb.Delete(id, typeof(Category));
             var scheduleDb = new SqlDataServices <Data.Models.Schedule>();
             scheduleDb.Delete(id, typeof(Category));
         }
         db.Delete(id);
         return(RedirectToAction("Index"));
     }
     catch (SqlException e)
     {
         if (e.Number == 547)
         {
             TempData["errorMessage"] = "If you Delete this entry you will delete all associated Transactions Do you want to procced?";
             TempData["deleteError"]  = true;
             return(RedirectToAction("Delete", id));
         }
         TempData["errorMessage"] = "Sorry the requested command couldn't be performed please try again later ";
         return(RedirectToAction("Delete", id));
     }
     catch
     {
         TempData["errorMessage"] = "Sorry, we couldn't delete your entry";
         return(RedirectToAction("Delete", id));
     }
 }
コード例 #3
0
        public ActionResult Create(Payee data)
        {
            if (db.GetAll().Select(e => e.Name).Contains(data.Name))
            {
                ModelState.AddModelError(nameof(data.Name), $"An entry with the Name {data.Name} exists already. Please use a diffrent Name");
            }

            if (!ModelState.IsValid)
            {
                var categorylist = new SqlDataServices <Data.Models.Category>().GetAll().OrderBy(e => e.Type).ThenBy(e => e.Name);
                ViewBag.Category = categorylist;
                return(View());
            }

            try
            {
                // TODO: Add insert logic here
                db.Add(data.ReverseMapper());

                return(RedirectToAction("Index"));
            }
            catch
            {
                ViewBag.Message = "An Error occured your entry hasn't been saved";
                return(RedirectToAction("Index"));
            }
        }
コード例 #4
0
        public ActionResult Edit(int id, Schedule data)
        {
            if (data.Amount == 0)
            {
                ModelState.AddModelError(nameof(data.Amount), $"Amount can't be zero");
            }
            if (!ModelState.IsValid)
            {
                var accounts = new SqlDataServices <Data.Models.Accounts>().GetAll().Where(e => e.Active).OrderBy(e => e.Name).ToList();
                if (!accounts.Exists(e => e.ID == data.AccountsID))
                {
                    accounts.Add(new SqlDataServices <Data.Models.Accounts>().Get(data.AccountsID));
                }
                ViewBag.Accounts = accounts;
                ViewBag.Category = new SqlDataServices <Data.Models.Category>().GetAll().OrderBy(e => e.Type).ThenBy(e => e.Name);
                ViewBag.Payee    = new SqlDataServices <Data.Models.Payee>().GetAll().OrderBy(e => e.Name);
                return(View(data));
            }
            try
            {
                // TODO: Add update logic here
                if (new SqlDataServices <Category>().Get(data.CategoryID).Type == Data.Enums.CategoryType.Expense)
                {
                    data.Amount *= -1;
                }

                db.Edit(id, data.ReverseMapper());
                return(RedirectToAction("Index"));
            }
            catch
            {
                ViewBag.Message = "An Error occoured yor entry coudn't be updated";
                return(View());
            }
        }
コード例 #5
0
        // GET: Payee/Create
        public ActionResult Create()
        {
            var categorylist = new SqlDataServices <Data.Models.Category>().GetAll().OrderBy(e => e.Type).ThenBy(e => e.Name);

            ViewBag.Category = categorylist;
            return(View());
        }
コード例 #6
0
        public IncomeExpenseCategory(Data.Models.Category data, DateTime startDate, DateTime endDate, int averageDividend)
        {
            var transactions = new SqlDataServices <Data.Models.Transactions>().GetAll(data.ID, typeof(Data.Models.Category)).Where(e => e.Date >= startDate && e.Date <= endDate);

            this.Name            = data.Name;
            this.Total           = transactions.Select(e => e.Amount).Sum();
            this.Average         = this.Total / averageDividend;
            this.IncomeOrExpense = data.Type;
        }
コード例 #7
0
        // GET: Payee/Edit/5
        public ActionResult Edit(int id)
        {
            var data         = db.Get(id);
            var model        = new Payee(data);
            var categorylist = new SqlDataServices <Data.Models.Category>().GetAll().OrderBy(e => e.Type).ThenBy(e => e.Name);

            ViewBag.Category     = categorylist;
            ViewBag.Selected     = categorylist.FirstOrDefault(e => e.ID == model.CategoryID);
            ViewBag.SelectedList = new SelectList(ViewBag.Category, "ID", "Name", ViewBag.Selected);
            return(View(model));
        }
コード例 #8
0
        // GET: Payee/Details/5
        public ActionResult Details(int id)
        {
            var data             = db.Get(id);
            var model            = new Payee(data);
            var transactionsData = new SqlDataServices <Data.Models.Transactions>().GetAll(id, typeof(Data.Models.Payee)).OrderBy(e => e.Date);

            foreach (var item in transactionsData)
            {
                model.Transactions.Add(new Transactions(item));
            }
            return(View(model));
        }
コード例 #9
0
        public ActionResult Details(int id, TimeSelector timeSelector)
        {
            var      data  = db.Get(id);
            var      model = new Payee(data);
            DateTime startDate;
            DateTime endDate;

            HelperLibary.EvaluateTimeSelector.Evaluate(timeSelector, out startDate, out endDate);
            var transactionsData = new SqlDataServices <Data.Models.Transactions>().GetAll(id, typeof(Data.Models.Category)).Where(e => e.Date > startDate && e.Date < endDate).OrderBy(e => e.Date);

            foreach (var item in transactionsData)
            {
                model.Transactions.Add(new Transactions(item));
            }
            return(View(model));
        }
コード例 #10
0
        public IncomeExpensePayee(Data.Models.Payee data, DateTime startDate, DateTime endDate, int averageDividend, bool positive = true)
        {
            IEnumerable <Data.Models.Transactions> transactions;

            if (positive)
            {
                transactions         = new SqlDataServices <Data.Models.Transactions>().GetAll(data.ID, typeof(Data.Models.Category)).Where(e => e.Date >= startDate && e.Date <= endDate && e.Amount > 0);
                this.IncomeOrExpense = CategoryType.Income;
            }
            else
            {
                transactions         = new SqlDataServices <Data.Models.Transactions>().GetAll(data.ID, typeof(Data.Models.Category)).Where(e => e.Date >= startDate && e.Date <= endDate && e.Amount < 0);
                this.IncomeOrExpense = CategoryType.Expense;
            }

            this.Name    = data.Name;
            this.Total   = transactions.Select(e => e.Amount).Sum();
            this.Average = this.Total / averageDividend;
        }
コード例 #11
0
        public IncomeExpenseModel(TimeSelector leftHandTimeSelector, TimeSelector rightHandTimeSelector)
        {
            this.LeftHandTimeSelector  = leftHandTimeSelector;
            this.RightHandTimeSelector = rightHandTimeSelector;

            DateTime leftHandStartDate;
            DateTime leftHandEndDate;
            DateTime rightHandStartDate;
            DateTime rightHandEndDate;
            int      leftHandAverageDividend;
            int      rightHandAverageDividend;
            var      now = DateTime.Today;

            EvaluateTimeSelector.Evaluate(this.LeftHandTimeSelector, out leftHandStartDate, out leftHandEndDate, out leftHandAverageDividend);
            EvaluateTimeSelector.Evaluate(this.RightHandTimeSelector, out rightHandStartDate, out rightHandEndDate, out rightHandAverageDividend);

            if (this.Selection == IncomeExpenseSelection.Category)
            {
                var data = new SqlDataServices <Data.Models.Category>().GetAll();
                this.LeftHandIncome   = IncomeExpenseCategory.GetModel(data, leftHandStartDate, leftHandEndDate, leftHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Income).ToList();
                this.LeftHandExpense  = IncomeExpenseCategory.GetModel(data, leftHandStartDate, leftHandEndDate, leftHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Expense).ToList();
                this.RightHandIncome  = IncomeExpenseCategory.GetModel(data, rightHandStartDate, rightHandEndDate, rightHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Income).ToList();
                this.RightHandExpense = IncomeExpenseCategory.GetModel(data, rightHandStartDate, rightHandEndDate, rightHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Expense).ToList();

                this.Income  = IncomeExpenseTable.GetModel(this.LeftHandIncome, this.RightHandIncome).ToList();
                this.Expense = IncomeExpenseTable.GetModel(this.LeftHandExpense, this.RightHandExpense).ToList();
            }

            if (this.Selection == IncomeExpenseSelection.Payee)
            {
                var data = new SqlDataServices <Data.Models.Payee>().GetAll();
                this.LeftHandIncome   = IncomeExpensePayee.GetModel(data, leftHandStartDate, leftHandEndDate, leftHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Income).ToList();
                this.LeftHandExpense  = IncomeExpensePayee.GetModel(data, leftHandStartDate, leftHandEndDate, leftHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Expense).ToList();
                this.RightHandIncome  = IncomeExpensePayee.GetModel(data, rightHandStartDate, rightHandEndDate, rightHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Income).ToList();
                this.RightHandExpense = IncomeExpensePayee.GetModel(data, rightHandStartDate, rightHandEndDate, rightHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Expense).ToList();

                this.Income  = IncomeExpenseTable.GetModel(this.LeftHandIncome, this.RightHandIncome).ToList();
                this.Expense = IncomeExpenseTable.GetModel(this.LeftHandExpense, this.RightHandExpense).ToList();
            }
        }