Esempio n. 1
0
        public void Create(BudgetAddViewModel model)
        {
            //var budget = new Budget() { Amount = model.Amount, YearMonth = model.Month };
            //this._budgetRepository.Save(budget);

            var budget = this._budgetRepository.Read(x => x.YearMonth == model.Month);

            if (budget == null)
            {
                this._budgetRepository.Save(new Budgets()
                {
                    Amount = model.Amount, YearMonth = model.Month
                });

                var handler = this.Created;
                handler?.Invoke(this, EventArgs.Empty);
            }
            else
            {
                budget.Amount = model.Amount;
                this._budgetRepository.Save(budget);

                var handler = this.Updated;
                handler?.Invoke(this, EventArgs.Empty);
            }
        }
Esempio n. 2
0
        public void CreateTest_when_exist_record_should_update_budget()
        {
            #region -- 加入exist record to db --
            this.InjectStubToBudgetService();
            var budgetFromDb = new Budgets()
            {
                Amount = 999, YearMonth = "2017-02"
            };

            this._budgetRepositoryStub.Read(Arg.Any <Func <Budgets, bool> >()).ReturnsForAnyArgs(budgetFromDb);

            #endregion

            #region -- 輸入資料 --

            var model = new BudgetAddViewModel {
                Amount = 2000, Month = "2017-02"
            };
            //確認event是否有被正確觸發
            var wasUpdated = false;
            this._budgetService.Updated += (sender, args) => { wasUpdated = true; };

            #endregion

            #region -- 執行建立動作 --

            this._budgetService.Create(model);

            #endregion

            this._budgetRepositoryStub.Received().Save(Arg.Is <Budgets>(x => x == budgetFromDb && x.Amount == 2000));
            Assert.IsTrue(wasUpdated);
        }
Esempio n. 3
0
        public void CreateTest_when_exist_record_should_update_budget()
        {
            InjectSutbToBudgetService();

            var budgetFromDb = new Budgets {
                Amount = 999, YearMonth = "2017-02"
            };

            budgetRepositoryStub.Read(Arg.Any <Func <Budgets, bool> >())
            .ReturnsForAnyArgs(budgetFromDb);

            var model = new BudgetAddViewModel {
                Amount = 2000, Month = "2017-02"
            };

            var wasCreate = false;

            budgetServices.Updated += (sender, args) => { wasCreate = true; };

            this.budgetServices.Create(model);

            budgetRepositoryStub.Received()
            .Save(Arg.Is <Budgets>(x => x == budgetFromDb && x.Amount == 2000));

            Assert.IsTrue(wasCreate);
        }
        public ActionResult Add(BudgetAddViewModel model)
        {
            this.budgetService.Created += (sender, e) => { ViewBag.Message = "added successfully"; };
            this.budgetService.Updated += (sender, e) => { ViewBag.Message = "updated successfully"; };

            this.budgetService.Create(model);
            return(View(model));
        }
Esempio n. 5
0
        public void Create(BudgetAddViewModel model)
        {
            var budget = new Budget()
            {
                Amount = model.Amount, YearMonth = model.Month
            };

            this._budgetRepository.Save(budget);
        }
Esempio n. 6
0
        /// <summary>
        /// Updates the budget.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <param name="budget">The budget.</param>
        private void UpdateBudget(BudgetAddViewModel model, Budgets budget)
        {
            budget.Amount = model.Amount;
            this._budgetRepository.Save(budget);

            var handler = this.Updated;

            handler?.Invoke(this, EventArgs.Empty);
        }
        public void AddTest_add_budget_successfully_should_invoke_budgetService_Create_one_time()
        {
            _budgetController = new BudgetController(budgetServiceStub);
            var model = new BudgetAddViewModel {
                Amount = 2000, Month = "2017-02"
            };
            var result = _budgetController.Add(model);

            budgetServiceStub.Received().Create(Arg.Is <BudgetAddViewModel>(x => x.Amount == 2000 && x.Month == "2017-02"));
        }
Esempio n. 8
0
        public void CreateTest_should_invoke_repository_one_time()
        {
            this._budgetService = new BudgetService(_budgetRepositoryStub);
            var model = new BudgetAddViewModel {
                Amount = 2000, Month = "2017-02"
            };

            this._budgetService.Create(model);
            _budgetRepositoryStub.Received()
            .Save(Arg.Is <Budget>(x => x.Amount == 2000 && x.YearMonth == "2017-02"));
        }
Esempio n. 9
0
        /// <summary>
        /// Adds the budget.
        /// </summary>
        /// <param name="model">The model.</param>
        private void AddBudget(BudgetAddViewModel model)
        {
            this._budgetRepository.Save(new Budgets()
            {
                Amount = model.Amount, YearMonth = model.Month
            });

            var handler = this.Created;

            handler?.Invoke(this, EventArgs.Empty);
        }
Esempio n. 10
0
        public ActionResult Add(BudgetAddViewModel model)
        {
            // If...else 放到service中寫,並且由service引發事件
            // 而事件的委派內容由Controller決定
            // 如果把if...else寫在controller中,有20個地方要用到,每一次都要加if...else
            this.budgetService.Created += (sender, e) => { ViewBag.Message = "added successfully"; };
            this.budgetService.Updated += (sender, e) => { ViewBag.Message = "updated successfully"; };

            budgetService.Create(model);
            return(View(model));
        }
Esempio n. 11
0
 public void Create(BudgetAddViewModel model)
 {
     using (var dbcontext = new NorthwindEntities())
     {
         var budget = new Budget()
         {
             Amount = model.Amount, YearMonth = model.Month
         };
         dbcontext.Budgets.Add(budget);
         dbcontext.SaveChanges();
     }
 }
Esempio n. 12
0
        public async Task <IActionResult> Add([FromBody] BudgetAddViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // confirm user exists
            var user = await _userManager.GetUserAsync(HttpContext.User);

            if (user == null)
            {
                return(BadRequest(Errors.AddErrorToModelState(
                                      "add_budget_failure",
                                      "Unable to find a user for this budget",
                                      ModelState)));
            }

            // add
            var newBudget = new Budget
            {
                Name     = model.Name,
                IsActive = true,
                User     = user,
                UserId   = user.Id
            };

            _db.Budgets.Add(newBudget);
            await _db.SaveChangesAsync();

            // add first snapshot always 0 est and 0 act
            var newSnapshot = new Snapshot
            {
                Date             = model.StartDate,
                ActualBalance    = 0,
                EstimatedBalance = 0,
                Budget           = newBudget,
                BudgetId         = newBudget.Id
            };

            _db.Snapshots.Add(newSnapshot);
            await _db.SaveChangesAsync();

            // return both results
            var result = new
            {
                BudgetId   = newBudget.Id,
                SnapshotId = newSnapshot.Id
            };

            return(new OkObjectResult(result));
        }
Esempio n. 13
0
 public ActionResult Add(BudgetAddViewModel model)
 {
     using (var dbcontext = new NorthwindEntities())
     {
         var budget = new Budget {
             Amount = model.Amount, YearMonth = model.Month
         };
         dbcontext.Budgets.Add(budget);
         dbcontext.SaveChanges();
     }
     ViewBag.Message = "added successfully";
     return(View(model));
 }
Esempio n. 14
0
        public void CreateTest_should_invoke_repository_one_time()
        {
            // test event 的結果
            _budgetService = new BudgetService(_budgetRepositoryStub);
            var wasCreated = false;

            _budgetService.Created += (sender, e) => wasCreated = true;
            var model = new BudgetAddViewModel {
                Amount = 2000, Month = "2017-02"
            };

            _budgetService.Create(model);
            _budgetRepositoryStub.Received().Save(Arg.Is <Budget>(x => x.Amount == 2000 && x.YearMonth == "2017-02"));

            Assert.IsTrue(wasCreated);
        }
Esempio n. 15
0
        public void CreateTest_should_invoke_repository_one_time()
        {
            InjectSutbToBudgetService();

            var model = new BudgetAddViewModel
            {
                Amount = 2000,
                Month  = "2017-02"
            };

            var wasCreate = false;

            budgetServices.Created += (sender, args) => { wasCreate = true; };
            budgetServices.Create(model);

            budgetRepositoryStub.Received().Save(Arg.Is <Budgets>(a => a.Amount == 2000 && a.YearMonth == "2017-02"));
            Assert.IsTrue(wasCreate);
        }
Esempio n. 16
0
        public void CreateTest_should_invoke_repository_one_time()
        {
            this._budgetService = new BudgetService(_budgetRepositoryStub);

            var model = new BudgetAddViewModel {
                Amount = 2000, Month = "2017-02"
            };

            var wasCreate = false;

            this._budgetService.Created += (sender, args) => { wasCreate = true; };
            this._budgetService.Create(model);

            _budgetRepositoryStub.Received()
            .Save(Arg.Is <Budgets>(x => x.Amount == 2000 && x.YearMonth == "2017-02"));

            Assert.IsTrue(wasCreate);
        }
Esempio n. 17
0
        public void CreateTest_when_exist_record_should_update_budget()
        {
            this._budgetService = new BudgetService(_budgetRepositoryStub);
            var budgetFromDb = new Budget {
                Amount = 999, YearMonth = "2017-02"
            };

            _budgetRepositoryStub.Read(Arg.Any <Func <Budget, bool> >()).ReturnsForAnyArgs(budgetFromDb);
            var model = new BudgetAddViewModel {
                Amount = 2000, Month = "2017-02"
            };
            var wasUpdated = false;

            this._budgetService.Updated += (sender, args) => wasUpdated = true;
            this._budgetService.Create(model);
            _budgetRepositoryStub.Received().Save(Arg.Is <Budget>(x => x == budgetFromDb && x.Amount == 2000));
            Assert.IsTrue(wasUpdated);
        }
Esempio n. 18
0
        public void CreateTest_when_exist_record_should_update_budget()
        {
            this._service = new BudgetService(_budgetRepository);

            var budgetFromDb = new Budgets {
                Amount = 999, YearMonth = "2017-02"
            };

            _budgetRepository.Read(Arg.Any <Func <Budgets, bool> >())
            .ReturnsForAnyArgs(budgetFromDb);

            var model = new BudgetAddViewModel {
                Amount = 2000, Month = "2017-02"
            };

            //act
            this._service.Create(model);

            //assert
            _budgetRepository.Received()
            .Save(Arg.Is <Budgets>(x => x == budgetFromDb && x.Amount == 2000));
        }
Esempio n. 19
0
        /// <summary>
        /// Creates the specified model.
        /// </summary>
        /// <param name="model">The model.</param>
        public void Create(BudgetAddViewModel model)
        {
            #region -- V1 存入DB --

            //var budget = new Budgets() { Amount = model.Amount, YearMonth = model.Month };
            //this._budgetRepository.Save(budget);

            #endregion


            var budget = this._budgetRepository.Read(x => x.YearMonth == model.Month);
            ////資料不存在
            if (budget == null)
            {
                this.AddBudget(model);
            }
            ////資料已經存在
            else
            {
                this.UpdateBudget(model, budget);
            }
        }
Esempio n. 20
0
 public ActionResult Add(BudgetAddViewModel model)
 {
     this.budgetServiceStub.Create(model);
     ViewBag.Message = "added successfully";
     return(View(model));
 }
Esempio n. 21
0
 public ActionResult Add(BudgetAddViewModel model)
 {
     ViewBag.Message = "added successfully";
     return(View(model));
 }