예제 #1
0
        public ActionResult Delete(int id, Enums.ManageType manageType)
        {
            using (var entities = new EntityModel.DatabaseContext())
            {
                switch (manageType)
                {
                case Enums.ManageType.Product:
                    entities.Products.SingleOrDefault(x => x.IsValid && x.Id == id).IsValid = false;
                    // Changelog
                    break;

                case Enums.ManageType.Category:
                    foreach (var product in entities.Products)
                    {
                        if (product.ProductCategoryId == id)
                        {
                            product.IsValid = false;
                        }
                    }
                    entities.ProductCategorys.SingleOrDefault(x => x.IsValid && x.Id == id).IsValid = false;
                    break;

                default:
                    break;
                }
                entities.SaveChanges();
                return(RedirectToAction("Index", new { HasBeenDeleted = true, ManageType = manageType }));
            }
        }
        public ActionResult Create()
        {
            var viewmodel = new ViewModels.ProductViewModels.CreateProductViewModel();

            using (var entities = new EntityModel.DatabaseContext())
            {
                viewmodel.AvaiableProductCategories = Management.ActionHandler.SetupAvaiableCategoryTypes(entities.ProductCategorys.ToList());
            }
            return(View(viewmodel));
        }
        public ActionResult ShowProductsInCategory(int categoryId)
        {
            var viewmodel = Management.ActionHandler.PopulateProductListViewModel();

            viewmodel.Products   = viewmodel.Products.Where(x => x.ProductCategoryId == categoryId).ToList();
            viewmodel.CategoryId = categoryId;
            using (var entities = new EntityModel.DatabaseContext()) // finns bättre lösning för att slippa dubbel sql sträng?
            {
                viewmodel.CategoryName = entities.ProductCategorys.SingleOrDefault(x => x.Id == categoryId).Name;
            }
            return(View(viewmodel));
        }
예제 #4
0
 public ActionResult Edit(ViewModels.CategoryViewModels.EditCategoryViewModel viewmodel)
 {
     if (!ModelState.IsValid)
     {
         return(View(viewmodel));
     }
     using (var entities = new EntityModel.DatabaseContext())
     {
         var model = entities.ProductCategorys.SingleOrDefault(x => x.Id == viewmodel.Id);
         model.Name    = viewmodel.Name;
         model.IsValid = viewmodel.IsValid; // delete function! fix productlist
     }
     return(View());
 }
예제 #5
0
 public ActionResult Edit(int categoryId)
 {
     using (var entities = new EntityModel.DatabaseContext())
     {
         var model     = entities.ProductCategorys.SingleOrDefault(x => x.Id == categoryId);
         var viewmodel = new ViewModels.CategoryViewModels.EditCategoryViewModel
         {
             Id      = model.Id,
             Name    = model.Name,
             IsValid = model.IsValid
         };
         return(View(viewmodel));
     }
 }
예제 #6
0
        public ActionResult Index()
        {
            var viewmodel = new ViewModels.CategoryViewModels.ListCategoriesViewModel();

            using (var entities = new EntityModel.DatabaseContext())
            {
                viewmodel.Categories.AddRange(entities.ProductCategorys.Where(c => c.IsValid).Select(x =>
                                                                                                     new ViewModels.CategoryViewModels.ListCategoriesViewModel.CategoryViewModel
                {
                    Id               = x.Id,
                    Name             = x.Name,
                    AvaiableProducts = entities.Products.Where(z => z.IsValid && z.ProductCategoryId == x.Id).Count()
                }));
            }
            viewmodel.RoleTypes = Management.ActionHandler.GetRolesForUser(User.Identity.GetUserId());
            return(View(viewmodel));
        }
 public ActionResult Edit(int productId)
 {
     using (var entities = new EntityModel.DatabaseContext())
     {
         var model     = entities.Products.SingleOrDefault(x => x.Id == productId);
         var viewmodel = new ViewModels.ProductViewModels.EditProductViewModel()
         {
             Id          = model.Id,
             Name        = model.Name,
             Description = model.Description,
             Price       = model.Price,
             AvaiableProductCategories = Management.ActionHandler.SetupAvaiableCategoryTypes(entities.ProductCategorys.ToList()),
             ProductCategoryName       = entities.ProductCategorys.SingleOrDefault(x => x.Id == model.ProductCategoryId).Name
         };
         return(View(viewmodel));
     }
 }
예제 #8
0
        public static ViewModels.ProductViewModels.ListProductsViewModel PopulateProductListViewModel()
        {
            var viewmodel = new ViewModels.ProductViewModels.ListProductsViewModel();

            using (var entities = new EntityModel.DatabaseContext())
            {
                viewmodel.Products.AddRange(entities.Products.Where(c => c.IsValid).Select(x =>
                                                                                           new ViewModels.ProductViewModels.ListProductsViewModel.ProductViewModel
                {
                    Id                  = x.Id,
                    Name                = x.Name,
                    Price               = x.Price,
                    Description         = x.Description,
                    ProductCategoryName = entities.ProductCategorys.FirstOrDefault(z => z.Id == x.ProductCategoryId).Name,
                    ProductCategoryId   = entities.Products.FirstOrDefault(p => p.Id == x.ProductCategoryId).Id
                }));
            }
            return(viewmodel);
        }
        public ActionResult Create(ViewModels.ProductViewModels.CreateProductViewModel viewmodel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewmodel));
            }

            using (var entities = new EntityModel.DatabaseContext())
            {
                viewmodel.ProductCategoryId         = entities.ProductCategorys.SingleOrDefault(x => x.Name == viewmodel.ProductCategoryName).Id;
                viewmodel.AvaiableProductCategories = Management.ActionHandler.SetupAvaiableCategoryTypes(entities.ProductCategorys.ToList());

                entities.Products.Add(Management.ActionHandler.Create(new EntityModel.Product(), viewmodel));
                entities.SaveChanges();

                var lastId = entities.Products.Where(c => c.IsValid).Count();
                return(RedirectToAction("ShowProduct", new { productId = lastId }));
            }
        }
예제 #10
0
        public ActionResult Create(ViewModels.CategoryViewModels.CreateCategoryViewModel viewmodel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewmodel));
            }

            using (var entities = new EntityModel.DatabaseContext())
            {
                entities.ProductCategorys.Add(new EntityModel.ProductCategory
                {
                    Name    = viewmodel.Name,
                    IsValid = true,
                });
                entities.SaveChanges();
            }

            return(RedirectToAction("Index", "Home"));
        }
예제 #11
0
        public ActionResult Edit(ViewModels.ProductViewModels.EditProductViewModel viewmodel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewmodel));
            }
            using (var entities = new EntityModel.DatabaseContext())
            {
                viewmodel.AvaiableProductCategories = Management.ActionHandler.SetupAvaiableCategoryTypes(entities.ProductCategorys.ToList());

                var model = entities.Products.SingleOrDefault(x => x.Id == viewmodel.Id);
                model.Name              = viewmodel.Name;
                model.Description       = viewmodel.Description;
                model.Price             = viewmodel.Price;
                model.ProductCategoryId = entities.ProductCategorys.SingleOrDefault(x => x.Name == viewmodel.ProductCategoryName).Id;

                entities.SaveChanges();
                return(RedirectToAction("ShowProduct", new { productId = model.Id }));
            }
        }