コード例 #1
0
        // GET api/product
        public ProductListViewModel Get()
        {
            DataManager.RefreshSession();
            ProductListViewModel result = null;
            var products = _ProductService.SearchProducts(0, 15);

            result = ProductListViewModel.GetModel(products);
            return(result);
        }
コード例 #2
0
        public ViewResult Index(ProductListModel model)
        {
            ProductListViewModel viewModel;

            using (ProductListContext productsContext = new ProductListContext())
            {
                viewModel = ProductListViewModel.GetModel(productsContext, model.AddedOrUpdatedProduct);
            }

            return(View(viewModel));
        }
コード例 #3
0
        public ViewResult AddUpdateSupplier(AddUpdateSupplierModel model)
        {
            string   errorMessage;
            Supplier supplierToUpdate = null;

            try
            {
                if (model.IsValid(out errorMessage))
                {
                    // If we're updating a supplier
                    if (model.SupplierID.HasValue)
                    {
                        using (ProductListContext productContext = new ProductListContext())
                        {
                            supplierToUpdate = productContext.Suppliers.FirstOrDefault(s => s.SupplierID == model.SupplierID);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                errorMessage = Errors.GenericMVCInternalError;
                ErrorLog.LogError(e);
            }

            ViewResult viewResult;

            if (errorMessage != null)
            {
                // Error, show the message
                ProductListViewModel viewModel;
                using (ProductListContext productContext = new ProductListContext())
                {
                    viewModel = ProductListViewModel.GetModel(productContext, errorMessage: errorMessage);
                }

                viewResult = View("Index", viewModel);
            }
            else
            {
                // Load the Add/Update view
                AddUpdateSupplierViewModel viewModel = null;

                viewModel  = AddUpdateSupplierViewModel.GetModel(supplierToUpdate);
                viewResult = View(viewModel);
            }

            return(viewResult);
        }
コード例 #4
0
        public JsonResult RemoveSupplier(RemoveSupplierModel model)
        {
            RemoveSupplierJsonModel responseModel = new RemoveSupplierJsonModel();

            try
            {
                ProductListViewModel partialViewModel;
                using (ProductListContext productContext = new ProductListContext())
                {
                    Supplier supplierToRemove = productContext.Suppliers.FirstOrDefault(s => s.SupplierID == model.SupplierID);

                    if (supplierToRemove != null)
                    {
                        // Remove any products associated with the supplier
                        foreach (ProductBase product in productContext.AllProducts.Where(p => p.SupplierID == supplierToRemove.SupplierID))
                        {
                            product.Removed = true;
                        }

                        // Remove the supplier
                        supplierToRemove.Removed = true;

                        productContext.SaveChanges();
                    }

                    responseModel.SuppliersRemain = productContext.Suppliers.Count(s => !s.Removed) > 0;
                    responseModel.ProductsRemain  = productContext.AllProducts.Count(p => !p.Removed) > 0;

                    // create the model so we can render the new version of the table
                    partialViewModel = ProductListViewModel.GetModel(productContext);
                }

                responseModel.Success = true;
                // render the table
                responseModel.Content = MvcHelper.RenderControllerPartialViewToString(this, "_SupplierListTable", partialViewModel);
                responseModel.AdditionalDataTables = MvcHelper.RenderControllerPartialViewToString(this, "_AdditionalDataTables", partialViewModel);
            }
            catch (Exception e)
            {
                responseModel.Success = false;
                responseModel.Content = Errors.GenericMVCInternalError;
                ErrorLog.LogError(e);
            }

            return(Json(responseModel));
        }
コード例 #5
0
        public JsonResult RemoveProduct(RemoveProductModel model)
        {
            RemoveProductResponseModel responseModel = new RemoveProductResponseModel();

            try
            {
                ProductListViewModel partialViewModel;
                using (ProductListContext productContext = new ProductListContext())
                {
                    ProductBase productToRemove = productContext.AllProducts.FirstOrDefault(p => p.ProductID == model.ProductID);

                    if (productToRemove != null)
                    {
                        productToRemove.Removed = true;
                    }

                    productContext.SaveChanges();

                    // create the model so we can render the new version of the table
                    partialViewModel = ProductListViewModel.GetModel(productContext);

                    responseModel.Success        = true;
                    responseModel.ProductsRemain = productContext.AllProducts.Count(p => !p.Removed) > 0;

                    // render the table
                    responseModel.Content = MvcHelper.RenderControllerPartialViewToString(this, "_ProductListTable", partialViewModel);
                    responseModel.AdditionalDataTables = MvcHelper.RenderControllerPartialViewToString(this, "_AdditionalDataTables", partialViewModel);
                }
            }
            catch (Exception e)
            {
                responseModel.Success = false;
                responseModel.Content = Errors.GenericMVCInternalError;
                ErrorLog.LogError(e);
            }

            return(Json(responseModel));
        }
コード例 #6
0
        public ViewResult AddUpdateProduct(AddUpdateProductModel model)
        {
            string      errorMessage;
            ProductBase productToUpdate = null;

            try
            {
                if (model.IsValid(out errorMessage))
                {
                    // If we're updating a product
                    if (model.ProductID.HasValue)
                    {
                        using (ProductListContext productContext = new ProductListContext())
                        {
                            // find the product to update
                            switch (model.ProductType)
                            {
                            case ProductType.Game:
                                productToUpdate = productContext.GameProducts.FirstOrDefault(p => p.ProductID == model.ProductID);
                                break;

                            case ProductType.Car:
                                productToUpdate = productContext.CarProducts.FirstOrDefault(p => p.ProductID == model.ProductID);
                                break;
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                errorMessage = Errors.GenericMVCInternalError;
                ErrorLog.LogError(e);
            }

            ViewResult viewResult;

            if (errorMessage != null)
            {
                // Error, show the message
                ProductListViewModel viewModel;
                using (ProductListContext productContext = new ProductListContext())
                {
                    viewModel = ProductListViewModel.GetModel(productContext, errorMessage: errorMessage);
                }

                viewResult = View("Index", viewModel);
            }
            else
            {
                // Load the Add/Update view
                AddUpdateProductViewModel viewModel = null;

                using (ProductListContext productContext = new ProductListContext())
                {
                    viewModel = AddUpdateProductViewModel.GetModel(productContext, productToUpdate, model.ProductType);
                }

                viewResult = View(viewModel);
            }

            return(viewResult);
        }