public ActionResult AddStock(AddStockViewModel model) { if (ModelState.IsValid) { try { // check stock name existed var temp = db.Stocks.Where(r => string.Compare(r.StockName, model.StockName, true) == 0).FirstOrDefault(); if (temp != null) { ModelState.AddModelError("", "Tên kho đã tồn tại trong hệ thống! Vui lòng chọn "); return(View(model)); } // add new stock var stock = new Stock(); stock.StockName = model.StockName; stock.StockAddress = model.StockAddress; stock.Phone = model.Phone; stock.Description = model.Description; stock.CreationDate = DateTime.Now; db.Stocks.Add(stock); db.SaveChanges(); return(RedirectToAction("Index")); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } } return(View(model)); }
public void AddCommandResetProperties() { var sut = new AddStockViewModel(_addStockHelperMock.Object); sut.Price = "123"; sut.AddCommand.Execute(null); Assert.IsTrue(String.IsNullOrEmpty(sut.Price)); }
public void AddCommandCannotExecuteIfPriceIsNotDecimal() { var sut = new AddStockViewModel(_addStockHelperMock.Object); sut.Price = "price"; sut.Quantity = "10"; Assert.IsFalse(sut.AddCommand.CanExecute(null)); }
public void AddCommandCanExecuteIfPriceIsDecimalAndQuantityIsDecimal() { var sut = new AddStockViewModel(_addStockHelperMock.Object); sut.Price = "10,0"; sut.Quantity = "10"; Assert.IsTrue(sut.AddCommand.CanExecute(null)); }
public AddStockView(StockModel model, HomeViewModel home_view_model) { InitializeComponent(); this.AddStockViewModel = new AddStockViewModel(model, this, home_view_model); this.DataContext = AddStockViewModel; this.Owner = Application.Current.MainWindow; CoreApp.logger.log("AddStockView successfully initialized!"); }
public void AddCommandCallsAddStockHelper() { _addStockHelperMock.Setup(x => x.AddStock(It.IsAny <StockInputModel>())); var sut = new AddStockViewModel(_addStockHelperMock.Object); sut.Price = "10"; sut.Quantity = "10"; sut.AddCommand.Execute(null); _addStockHelperMock.Verify(x => x.AddStock(It.IsAny <StockInputModel>())); }
public void ShouldNotDoAnythingOnAddCommandIfStockHasErrors() { var managerMock = new Mock <IFundManager <StockModel, StockSummaryItemModel> >(); var stockRepoMock = new Mock <IRepository <StockModel> >(); var summaryRepoMock = new Mock <IRepository <StockSummaryItemModel> >(); var addStockViewModel = new AddStockViewModel(managerMock.Object, stockRepoMock.Object, summaryRepoMock.Object); addStockViewModel.AddStockCommand.Execute(new object()); stockRepoMock.Verify(m => m.AddItem(It.IsAny <StockModel>()), Times.Never); managerMock.Verify(m => m.DefaultNewEntry(It.IsAny <StockModel>(), It.IsAny <IRepository <StockModel> >()), Times.Never); managerMock.Verify(m => m.RecalculateCollection(It.IsAny <IRepository <StockModel> >()), Times.Never); managerMock.Verify(m => m.RecalculateSummary(It.IsAny <IRepository <StockModel> >(), It.IsAny <IRepository <StockSummaryItemModel> >()), Times.Never); }
public void ShouldAddNewStockToRepositoryOnAddCommand() { var managerMock = new Mock <IFundManager <StockModel, StockSummaryItemModel> >(); var stockRepoMock = new Mock <IRepository <StockModel> >(); var summaryRepoMock = new Mock <IRepository <StockSummaryItemModel> >(); var addStockViewModel = new AddStockViewModel(managerMock.Object, stockRepoMock.Object, summaryRepoMock.Object); addStockViewModel.StockModel = new StockModel() { Price = (decimal)1.22, Quantity = 1 }; addStockViewModel.AddStockCommand.Execute(new object()); stockRepoMock.Verify(m => m.AddItem(It.IsAny <StockModel>()), Times.Once); }
public MainWindow() { InitializeComponent(); // Poor man's DI here - I'm heistant to add a proper IoC container to this already somewhat bloated solution. // Given how our dependency tree is shallow enough, this will do. // Having the composition root in a Window class is somewhat cringe-inducing, but in the end, I don't think it matters all that much. var fundViewModel = new FundViewModel(TestDataProvider.CreateTestFund()); var summaryViewModel = new SummaryViewModel(new SummaryBuilderFactory(fundViewModel.GetStocksFunc)); var addStockHelper = new AddStockHelper( fundViewModel, summaryViewModel ); var addStockViewModel = new AddStockViewModel(addStockHelper); var coreViewModel = new MainWindowViewModel( fundViewModel, summaryViewModel, addStockViewModel ); DataContext = coreViewModel; }
public AddStockView(AddStockViewModel viewmodel) { DataContext = viewmodel; InitializeComponent(); }