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));
        }
Exemple #2
0
        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);
        }
Exemple #6
0
        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);
        }