public IActionResult add(MenuCategoryModel menu_category_model) { //var topCategory = _menuCategoryRepo.getQueryable().Where(a => a.parent_id == 0 && a.is_enabled == true).ToList(); try { if (ModelState.IsValid) { //if (file != null) //{ // string fileName = menu_category_model.name; // menu_category_model.image_name = _fileHelper.saveImageAndGetFileName(file, fileName); //} MenuCategoryDto menu_category_dto = getStockCategoryDtoFromModel(menu_category_model); _menuCategoryService.save(menu_category_dto); AlertHelper.setMessage(this, "Item Category added successfully.", messageType.success); return(RedirectToAction("index")); } } catch (Exception ex) { AlertHelper.setMessage(this, ex.Message, messageType.error); return(RedirectToAction("add")); } return(View(menu_category_model)); }
public async Task <ActionResult <MenuCategoryDetailDTO> > GetCategory(int id) { MenuCategoryModel category = await this._context.MenuCategoryModel.FindAsync(id); if (category == null) { return(this.BadRequest()); } await this._context.Entry(category).Collection(t => t.MenuItems).LoadAsync(); var result = new MenuCategoryDetailDTO { ID = category.ID, Name = category.Name, Items = category.MenuItems.Select(i => new MenuItemDTO { ID = i.ID, Number = i.Number, Name = i.Name, Description = i.Description, Price = i.Price }).ToList() }; return(result); }
public IActionResult add() { MenuCategoryModel stockCategoryModel = new MenuCategoryModel(); //var topCategory = _menuCategoryRepo.getQueryable().Where(a => a.parent_id == 0 && a.is_enabled == true).ToList(); //ViewBag.topCategories = topCategory; return(View(stockCategoryModel)); }
public IActionResult edit(MenuCategoryModel menuCategoryModel) { try { //if (file != null) //{ // string fileName = menuCategoryModel.name; // menuCategoryModel.image_name = _fileHelper.saveImageAndGetFileName(file, fileName); //} MenuCategoryDto menuCategoryDto = getStockCategoryDtoFromModel(menuCategoryModel); _menuCategoryService.update(menuCategoryDto); AlertHelper.setMessage(this, "Item Category Updated successfully.", messageType.success); return(RedirectToAction("index")); } catch (Exception ex) { AlertHelper.setMessage(this, ex.Message, messageType.error); return(RedirectToAction("index")); } return(View(menuCategoryModel)); }
private MenuCategoryDto getStockCategoryDtoFromModel(MenuCategoryModel menu_category_model) { var menuCategoryDto = _mapper.Map <MenuCategoryDto>(menu_category_model); return(menuCategoryDto); }
public async Task <ActionResult <ScrapingResponse> > Scrape(ScrapingRequest request) { ScrapingResponse response = new ScrapingResponse { Success = true }; try { // Scrape server IMenuParser menuParser = new BillundPizzaMenuParser(); IMenu menu = menuParser.ParseMenu(); ICollection <MenuItemModel> scraped = menu.Items.Select(x => new MenuItemModel(x)).ToList(); // Load all existing entries ICollection <MenuItemModel> existing = await this._context.MenuItemModel.ToListAsync(); ICollection <MenuCategoryModel> categories = await this._context.MenuCategoryModel.ToListAsync(); // Update existing records with new info foreach (MenuItemModel menuItem in scraped) { MenuItemModel existingItem = existing.FirstOrDefault(x => x.Number == menuItem.Number && x.Name == menuItem.Name && x.Category.Name == menuItem.Category.Name && x.Description == menuItem.Description); if (existingItem != null) { // Entry found, remove from cached collection existing.Remove(existingItem); // Only update database if data is different if (existingItem.Update(menuItem)) { this._context.Entry(existingItem).State = EntityState.Modified; response.NumberUpdated++; } } else if (request.AddNew) { // Add new items from scrape MenuCategoryModel category = categories.FirstOrDefault(x => x.Name == menuItem.Category.Name); if (category == null) { category = new MenuCategoryModel { Name = menuItem.Category.Name }; categories.Add(category); this._context.Add(category); } menuItem.Category = category; this._context.Add(menuItem); response.NumberCreated++; } } // If requested, remove all existing entries not accounted for if (request.RemoveMissing) { foreach (MenuItemModel existingItem in existing) { this._context.Remove(existingItem); response.NumberRemoved++; } } // Save changes await this._context.SaveChangesAsync(); } catch { response.Success = false; } return(response); }