public ActionResult SaveMenuItem(MenuItemVm <int, int?> vm)
 {
     try
     {
         _menuItemRepository.SaveById(new MenuItem
         {
             Id          = vm.Id,
             Code        = vm.Code,
             IsActive    = vm.IsActive,
             Name        = vm.Name,
             SortOrder   = vm.SortOrder,
             DateCreated = DateTime.Now,
             ParentId    = vm.ParentId
         });
         return(Json(new { success = true }));
     }
     catch (Exception ex)
     {
         LogEventManager.Logger.Error(ex.Message, ex);
         return(Json(new { success = false }));
     }
     finally
     {
     }
 }
Пример #2
0
        public static Page GetPage(MenuItemVm item)
        {
            var account = Auth.Account.Current;

            switch (item.Type)
            {
            case MenuType.Home: return(new MainPage());

            case MenuType.Configurations: return(new ConfigurationPage());

            case MenuType.FavoriteEvent:
                if (account.IsValid)
                {
                    return(new FavoriteEventsPage());
                }
                return(new LoginPage());

            case MenuType.ContactUs: return(new ContactUsPage());

            case MenuType.Logout: return(new LogoutPage());

            case MenuType.Login: return(new LoginPage());

            default: return(new MainPage());
            }
        }
        //public async Task<IActionResult> DeletePost(int? id) // works
        public async Task <IActionResult> DeletePost(MenuItemVm menuItemVm) // works with passing hidden inputs
        {
            string webRootPath = _hostingEnv.WebRootPath;
            //MenuItem menuItem = await _db.MenuItems.FindAsync(menuItemVm.MenuItem.Id);

            var menuItem = menuItemVm.MenuItem;

            if (menuItem != null)
            {
                if (menuItem.Image != null)
                {
                    var uploads = Path.Combine(webRootPath, "images");

                    var extension = menuItem.Image
                                    .Substring(menuItem.Image.LastIndexOf("."), menuItem.Image.Length - menuItem.Image.LastIndexOf("."));

                    var imagePath = Path.Combine(uploads, menuItem.Id + extension);
                    if (System.IO.File.Exists(imagePath))
                    {
                        System.IO.File.Delete(imagePath);
                    }
                }

                _db.MenuItems.Remove(menuItem);
                await _db.SaveChangesAsync();
            }
            else
            {
                return(NotFound());
            }

            return(RedirectToAction(nameof(Index)));
        }
Пример #4
0
 public MenuItemController(ApplicationDbContext context, HostingEnvironment hostingEnvironment)
 {
     _context            = context;
     _hostingEnvironment = hostingEnvironment;
     MenuItemVm          = new MenuItemVm
     {
         Category = _context.categories,
         MenuItem = new MenuItem()
     };
 }
 public MenuAdminIndexVm()
 {
     RouteParameter        = new RouteParameterVm <TKey>();
     RouteName             = new RouteNameVm <TKey>();
     MenuItemRelationGroup = new MenuItemRelationGroupVm <TKey>();
     MenuItem = new MenuItemVm <TKey, TParentId>();
     CurrentRouteMenuItems  = new List <RouteMenuItemVm <TKey, TParentId> >();
     CurrentRouteName       = new List <RouteNameVm <TKey> >();
     CurrentRouteParameters = new List <RouteParameterVm <TKey> >();
 }
        public async Task <IActionResult> CreatePost(MenuItemVm menuItemVm)
        {
            if (!ModelState.IsValid)
            {
                return(base.View(this.MenuItemVm));
            }

            this.MenuItemVm.MenuItem = menuItemVm.MenuItem;

            // use javascript in form to populate it use NAME tag - not id
            // get values from form
            //this.MenuItemVm.MenuItem.SubCategoryId = Convert.ToInt32(Request.Form["SubCategoryId"]);
            //this.MenuItemVm.MenuItem.CategoryId = Convert.ToInt32(Request.Form["CategoryId"]);


            // because they are not mapped ???????

            this.MenuItemVm.MenuItem.SubCategoryId = menuItemVm.SubCategoryId;
            this.MenuItemVm.MenuItem.CategoryId    = menuItemVm.CategoryId;


            _db.MenuItems.Add(this.MenuItemVm.MenuItem);
            await _db.SaveChangesAsync();

            // save Image
            string wwwRootPath = _hostingEnv.WebRootPath;
            var    files       = HttpContext.Request.Form.Files;

            var menuItemFromDb = _db.MenuItems.Find(this.MenuItemVm.MenuItem.Id);

            if (files[0] != null && files[0].Length > 0)
            {
                //when user uploads an image
                var uploads   = Path.Combine(wwwRootPath, "images");
                var extension = files[0].FileName.Substring(files[0].FileName.LastIndexOf("."), files[0].FileName.Length - files[0].FileName.LastIndexOf("."));

                using (var filestream = new FileStream(Path.Combine(uploads, this.MenuItemVm.MenuItem.Id + extension), FileMode.Create))
                {
                    files[0].CopyTo(filestream);
                }
                menuItemFromDb.Image = @"\images\" + this.MenuItemVm.MenuItem.Id + extension;
            }
            else
            {
                //when user does not upload image
                var uploads = Path.Combine(wwwRootPath, @"images\" + StaticDetails.DefaultFoodImageName);
                System.IO.File.Copy(uploads, wwwRootPath + @"\images\" + this.MenuItemVm.MenuItem.Id + ".png");
                menuItemFromDb.Image = @"\images\" + this.MenuItemVm.MenuItem.Id + ".png";
            }

            await _db.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Пример #7
0
        public MenuItemsController(ApplicationDbContext db, IHostingEnvironment hostingEnv)
        {
            _db         = db;
            _hostingEnv = hostingEnv;

            MenuItemVm = new MenuItemVm
            {
                MenuItem           = new MenuItem(),
                CategoryCollection = _db.Categories.Select(i => new SelectListItem {
                    Text = i.Name, Value = i.Id.ToString()
                }).ToList(),


                // do not initialize SubCategoryCollection because we use cascade dropdown
            };
        }
Пример #8
0
        public static Page GetPage(MenuItemVm item)
        {
            switch (item.Type)
            {
            case MenuType.Carteira: return(new MainPage());

            case MenuType.Proposta: return(new ListaPropostaPage());

            case MenuType.Empreendimento: return(new ListaEmpreendimentoPage());

            case MenuType.GravarProposta: return(new GravarPropostaPage());

            case MenuType.About: return(new AboutPage());

            default: return(new MainPage());
            }
        }
Пример #9
0
        private MenuItemVm Map(MenuItem menuItem)
        {
            var menuItemVm = new MenuItemVm
            {
                Id   = menuItem.Id,
                Name = menuItem.Name,
                Link = menuItem.Entity == null ? menuItem.CustomLink : $"/{menuItem.Entity.Slug}"
            };

            var childItems = menuItem.Children.OrderBy(x => x.DisplayOrder);

            foreach (var childItem in childItems)
            {
                var childMenuItemVm = Map(childItem);
                menuItemVm.AddChildItem(childMenuItemVm);
            }

            return(menuItemVm);
        }
        public MenuItemsController(ApplicationDbContext db, IHostingEnvironment hostingEnv)
        {
            _db         = db;
            _hostingEnv = hostingEnv;

            this.MenuItemVm = new MenuItemVm
            {
                //MenuItem = new MenuItem(),
                CategoryCollection = _db.Categories.Select(i => new SelectListItem {
                    Text = i.Name, Value = i.Id.ToString()
                }).ToList(),

                // do not initialize SubCategoryCollection because we use cascade dropdown
            };

            this.MenuItemVm.CategoryCollection.Insert(0, new SelectListItem {
                Text = "Select a Category", Value = string.Empty
            });
            this.MenuItemVm.SubCategoryCollection.Insert(0, new SelectListItem {
                Text = "Select a Sub Category", Value = string.Empty
            });
        }
Пример #11
0
        private MenuItemVm Map(MenuItem menuItem, Dictionary <string, Func <long, string, string, string> > menuItemEntityTypeTranslations)
        {
            var menuItemName = menuItem.Entity == null
                                ? _localizer.GetString(menuItem.Name)
                                : menuItemEntityTypeTranslations[menuItem.Entity.EntityTypeId](menuItem.Entity.EntityId, nameof(menuItem.Entity.Name), menuItem.Entity.Name);

            var menuItemVm = new MenuItemVm
            {
                Id   = menuItem.Id,
                Name = menuItemName,
                Link = menuItem.Entity == null ? menuItem.CustomLink : $"/{menuItem.Entity.Slug}"
            };

            var childItems = menuItem.Children.OrderBy(x => x.DisplayOrder);

            foreach (var childItem in childItems)
            {
                var childMenuItemVm = Map(childItem, menuItemEntityTypeTranslations);
                menuItemVm.AddChildItem(childMenuItemVm);
            }

            return(menuItemVm);
        }
Пример #12
0
        public async Task <IActionResult> Edit(int id, MenuItemVm vm /*, List<Category> CategoryCollection*/)
        {
            MenuItemVm.MenuItem = vm.MenuItem;

            MenuItemVm.MenuItem.SubCategoryId = Convert.ToInt32(Request.Form["SubCategoryId"]);
            MenuItemVm.MenuItem.CategoryId    = Convert.ToInt32(Request.Form["CategoryId"]);

            //var temp = (Request.Form["Model.CategoryCollection"]).ToList();



            if (id != MenuItemVm.MenuItem.Id)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                MenuItemVm.SubCategoryCollection = _db.SubCategories.Where(s => s.CategoryId == MenuItemVm.MenuItem.CategoryId).
                                                   Select(i => new SelectListItem {
                    Text = i.Name, Value = i.Id.ToString()
                }).ToList();

                return(View(MenuItemVm));
            }
            else
            {
                try
                {
                    string webRootPath    = _hostingEnv.WebRootPath;
                    var    files          = HttpContext.Request.Form.Files;
                    var    menuItemFromDb = _db.MenuItems.Where(m => m.Id == MenuItemVm.MenuItem.Id).FirstOrDefault();

                    if (files[0].Length > 0 && files[0] != null)
                    {
                        //if user uploads a new image
                        var uploads = Path.Combine(webRootPath, "images");

                        var extension_New = files[0].FileName.Substring(files[0].FileName.LastIndexOf("."), files[0].FileName.Length - files[0].FileName.LastIndexOf("."));

                        var extension_Old = menuItemFromDb.Image.Substring(menuItemFromDb.Image.LastIndexOf("."), menuItemFromDb.Image.Length - menuItemFromDb.Image.LastIndexOf("."));

                        if (System.IO.File.Exists(Path.Combine(uploads, MenuItemVm.MenuItem.Id + extension_Old)))
                        {
                            System.IO.File.Delete(Path.Combine(uploads, MenuItemVm.MenuItem.Id + extension_Old));
                        }
                        using (var filestream = new FileStream(Path.Combine(uploads, MenuItemVm.MenuItem.Id + extension_New), FileMode.Create))
                        {
                            files[0].CopyTo(filestream);
                        }
                        MenuItemVm.MenuItem.Image = @"\images\" + MenuItemVm.MenuItem.Id + extension_New;
                    }

                    menuItemFromDb.Name          = MenuItemVm.MenuItem.Name;
                    menuItemFromDb.Description   = MenuItemVm.MenuItem.Description;
                    menuItemFromDb.Price         = MenuItemVm.MenuItem.Price;
                    menuItemFromDb.SpicyType     = MenuItemVm.MenuItem.SpicyType;
                    menuItemFromDb.CategoryId    = MenuItemVm.MenuItem.CategoryId;
                    menuItemFromDb.SubCategoryId = MenuItemVm.MenuItem.SubCategoryId;

                    if (MenuItemVm.MenuItem.Image != null)
                    {
                        menuItemFromDb.Image = MenuItemVm.MenuItem.Image;
                    }


                    await _db.SaveChangesAsync();
                }
                catch (Exception ex)
                {
                }
                return(RedirectToAction(nameof(Index)));
            }
        }