private ActionResult Details(RouteEntity entity, string category, string slug) { if (entity is Photoshop) { var data = new ProductViewData { Menu = ObjectExtension.As <IList <MenuItemViewModel> >(_context.AbstractMenuItem.Where(x => x.RouteID == entity.ID)) }; this.SetTheme(entity); var link = entity as Photoshop; data.Route = ObjectExtension.As <PhotoshopViewModel.Summary>(entity); data.PhototechnicsViewModel = ObjectExtension.As <PhototechnicsViewModel.Details>(_context.PricePositions.Where(x => x.PhotoshopID == entity.ID && x.Phototechnics.Shortcut == slug) .Include(x => x.Phototechnics.ParameterValues).Include(x => x.Phototechnics.ParameterValues.Select(y => y.Parameter)).FirstOrDefault()); return(View("Details", data)); } if (entity is Photorent) { var data = new ProductViewData { Menu = ObjectExtension.As <IList <MenuItemViewModel> >(_context.AbstractMenuItem.Where(x => x.RouteID == entity.ID)) }; this.SetTheme(entity); var link = entity as Photorent; data.Route = ObjectExtension.As <PhotorentViewModel.Details>(entity); data.Categorieses = ObjectExtension.As <IList <CategoryViewModel> >(_context.Categories.ToList()); data.PhototechnicsViewModel = ObjectExtension.As <PhototechnicsViewModel.Details>(link.RentCalendars.SingleOrDefault(x => x.Phototechnics.Shortcut == slug)); return(View("Details", data)); } return(View("Details")); }
public Product ProductFromProductViewData( ProductViewData productViewData, ModelStateDictionary modelStateDictionary, HttpRequestBase httpRequestBase) { if (productViewData == null) { throw new ArgumentNullException("productViewData"); } if (modelStateDictionary == null) { throw new ArgumentNullException("modelStateDictionary"); } var context = new ProductBuildingContext(productViewData, modelStateDictionary, httpRequestBase); foreach (var contributor in contributors.OrderBy(x => x.Order)) { if (!context.ModelStateDictionary.IsValid) { continue; } contributor.ContributeTo(context); } return(context.Product); }
public ActionResult Edit(ProductViewData productViewData) { var product = productBuilder.ProductFromProductViewData(productViewData, ModelState, Request); if (ModelState.IsValid) { return(this.RedirectToAction(x => x.Edit(product.Id))); } return(View("Edit", productViewData.WithErrorMessage("There were errors, please correct them and resubmit."))); }
public ActionResult New(ProductViewData productViewData) { var product = productBuilder.ProductFromProductViewData(productViewData, ModelState, Request); if (ModelState.IsValid) { productRepository.SaveOrUpdate(product); uow.Commit(); //Need explicit commit in order to get the product id. return(this.RedirectToAction(x => x.Edit(product.Id))); } return(View("Edit", productViewData.WithErrorMessage("There were errors, please correct them and resubmit."))); }
public void EditWithPost_ShouldRedirectOnSucessfulBinding() { var product = new Product { Id = 5}; var productViewData = new ProductViewData(); productBuilder.Stub( x => x.ProductFromProductViewData(productViewData, productController.ModelState, productController.Request)) .Return(product); productController.Edit(productViewData) .ReturnsRedirectToRouteResult() .ToAction("Edit") .WithRouteValue("id", "5"); }
public void NewWithPost_ShouldRenderViewWhenThereAreBindingErrors() { productController.ModelState.AddModelError("foo", "bar"); var product = new Product(); var productViewData = new ProductViewData(); productBuilder.Stub( x => x.ProductFromProductViewData(productViewData, productController.ModelState, productController.Request)) .Return(product); productController.New(productViewData) .ReturnsViewResult() .ForView("Edit") .WithModel<ProductViewData>(); }
public void EditWithPost_ShouldRenderViewWhenBindingFails() { productController.ModelState.AddModelError("foo", "bar"); var product = new Product(); var productViewData = new ProductViewData(); productBuilder.Stub( x => x.ProductFromProductViewData(productViewData, productController.ModelState, productController.Request)) .Return(product); productController.Edit(productViewData) .ReturnsViewResult() .ForView("Edit") .WithModel<ProductViewData>() .AssertAreSame(productViewData, x => x); }
public void NewWithPost_ShouldInsertNewProduct() { var product = new Product { Id = 5}; var productViewData = new ProductViewData(); productBuilder.Stub( x => x.ProductFromProductViewData(productViewData, productController.ModelState, productController.Request)) .Return(product); productController.New(productViewData) .ReturnsRedirectToRouteResult() .ToAction("Edit") .WithRouteValue("id", "5"); productRepository.AssertWasCalled(x => x.SaveOrUpdate(product)); }
public ProductBuildingContext( ProductViewData productViewData, ModelStateDictionary modelStateDictionary, HttpRequestBase httpRequestBase) { if (productViewData == null) { throw new ArgumentNullException("productViewData"); } if (modelStateDictionary == null) { throw new ArgumentNullException("modelStateDictionary"); } if (httpRequestBase == null) { throw new ArgumentNullException("httpRequestBase"); } ProductViewData = productViewData; ModelStateDictionary = modelStateDictionary; HttpRequestBase = httpRequestBase; }
public void SetUp() { productViewData = new ProductViewData(); modelStateDictionary = new ModelStateDictionary(); }