Beispiel #1
0
        public async Task <ActionResult> Add(ViewModelCategory viewModelCategory)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var category  = Mapper.Map <ViewModelCategory, Category>(viewModelCategory);
                    int IdProduct = await CommAPICategory.AddAsync(category);

                    return(RedirectToAction("List"));
                }
                else
                {
                    return(await Add());
                }
            }
            catch (Exception ex)
            {
                return(await Add());
            }
        }
Beispiel #2
0
 public ActionResult DeleteNode(ViewModelCategory vm)
 {
     _iCategoryService.Delete(vm);
     return(Json("Succeed!", JsonRequestBehavior.AllowGet));
 }
Beispiel #3
0
 public ActionResult AddChildNode(ViewModelCategory vm)
 {
     _iCategoryService.InsertOrUpdate(vm);
     return(Json("Succeed!", JsonRequestBehavior.AllowGet));
 }
 public void AddCategory(ViewModelCategory vCategory)
 {
     _iCategoryRepository.InsertOrUpdate(Mapper.Map <ViewModelCategory, Category>(vCategory));
     _iCategoryRepository.Save();
 }
        public CompleteEnterpriseViewModel GetCompleteEnterprise(string enterpriseId, bool edit = false)
        {
            using (var session = _documentStore.OpenSession())
            {
                var viewModel = new CompleteEnterpriseViewModel();

                if (string.IsNullOrEmpty(enterpriseId))
                {
                    return(viewModel);
                }

                // Load enterprise, include products
                var enterprise = session.Include <Enterprise>(e => e.Menu.Categories.Select(c => c.Products)).Load(enterpriseId);

                if (enterprise == null)
                {
                    return(viewModel);
                }

                var menu = enterprise.Menu;

                var newProducts       = new List <string>();
                var deletedProductIds = new List <string>();

                //Load the modified menu if: edit-mode, has a modified menu, is NOT new, is NOT owned by enterprise
                if (edit && !string.IsNullOrEmpty(enterprise.ModifiedMenu) && !enterprise.IsNew && !enterprise.OwnedByAccount)
                {
                    //Get the modified menu instead
                    var modifiedMenu = session.Include <Menu>(e => e.Categories.Select(c => c.Products)).Load <ModifiedMenu>(enterprise.ModifiedMenu);

                    //Get ids of all new products. Products that exist in the Modified-menu but not the original menu
                    newProducts = modifiedMenu.Menu.Categories.SelectMany(c => c.Products).Where(p => !enterprise.Menu.Categories.SelectMany(c => c.Products).Select(p1 => p1).Contains(p)).ToList();

                    //Get ids of all deleted products. Products that does NOT exist in the Modified-menu but not the original menu
                    deletedProductIds = enterprise.Menu.Categories.SelectMany(c => c.Products).Where(p => !modifiedMenu.Menu.Categories.SelectMany(c => c.Products).Select(p1 => p1).Contains(p)).ToList();

                    //Set modifiedMenu to menu
                    Mapper.CreateMap <ModifiedMenu, Menu>();
                    menu = Mapper.Map(modifiedMenu.Menu, menu);
                }
                var products = new List <Product>();
                // Create to viewmodel
                var categoriesViewModel = new List <ViewModelCategory>();
                if (menu != null)
                {
                    if (menu.Categories != null)
                    {
                        foreach (var p in menu.Categories.Select(category => session.Load <Product>(category.Products)))
                        {
                            products.AddRange(p);
                        }

                        Mapper.CreateMap <Product, ProductViewModel>();
                        foreach (var category in menu.Categories)
                        {
                            var categoryViewModel = new ViewModelCategory
                            {
                                Name         = category.Name,
                                Id           = category.Id,
                                EnterpriseId = enterpriseId,
                                Products     = new List <ProductViewModel>()
                            };

                            foreach (var product in category.Products.Select(productForCategory => products.FirstOrDefault(p => p != null && p.Id == productForCategory)))
                            {
                                if (product == null)
                                {
                                    _logger.Warn("Product is null for enterprise {0} ({1})", enterprise.Name, enterprise.Id);
                                    continue;
                                }
                                var p = ProductHelper.ModelToViewModel(product);
                                if (edit && p.UpdatedVersion != null)
                                {
                                    p.Updated         = true;
                                    p.OriginalProduct = product;
                                    //p.UpdatedVersion = product.UpdatedVersion;
                                    Mapper.CreateMap <ProductUpdatedVersion, ProductViewModel>();
                                    Mapper.Map(product.UpdatedVersion, p);
                                }
                                if (edit)
                                {
                                    if (newProducts.Contains(p.Id))
                                    {
                                        p.New = true;
                                    }
                                }
                                p.Enterprise = enterpriseId;
                                p.CategoryId = category.Id;
                                categoryViewModel.Products.Add(p);
                            }



                            categoriesViewModel.Add(categoryViewModel);
                        }
                        if (edit)
                        {
                            //Add deleted products to viewmodel
                            var deletedProducts          = session.Load <Product>(deletedProductIds);
                            var deletedProductsViewModel = ProductHelper.ModelToViewModel(deletedProducts.ToList());
                            foreach (var productViewModel in deletedProductsViewModel)
                            {
                                productViewModel.Deleted = true;
                            }
                            viewModel.DeletedProducts = deletedProductsViewModel;
                        }
                    }
                }
                // Add to viewmodel
                viewModel.ViewModelCategories = categoriesViewModel;

                viewModel.Enterprise = EnterpriseHelper.ModelToViewModel(enterprise);
                viewModel.Enterprise.DisplayCategories = EnterpriseHelper.GetDisplayCategories(enterprise.Categories);
                viewModel.Enterprise.DisplayStreet     = string.Format("{0} {1}", enterprise.StreetRoute, enterprise.StreetNumber);

                if (!edit)
                {
                    viewModel.Enterprise.ModifiedMenu = null;
                }

                return(viewModel);
            }
        }
 //[HttpPost]
 public PartialViewResult HomeCategDropDown()
 {
     ViewModelCategory model = new ViewModelCategory();
     model.Categories = db.Category.ToList();
     return PartialView(model);
 }