123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- using Microsoft.EntityFrameworkCore;
- using ProRestaurant.Classes;
- using ProRestaurant.Containers;
- using ProRestaurant.DBContexts;
- using ProRestaurant.Models.Restaurants;
- using System;
- using System.Collections.Generic;
- using System.Linq;
-
- namespace ProRestaurant.Repository.Restaurants
- {
- public class MenuOptionRepository : IMenuOptionRepository
- {
- private readonly DBContext dBContext;
-
- public MenuOptionRepository(DBContext _dBContext)
- {
- dBContext = _dBContext;
- }
-
- public void Delete(MenuOption Option)
- {
- if (Option.Options != null)
- {
- foreach (var item in Option.Options)
- {
- DeleteItem(item);
- }
- }
-
- dBContext.MenuOptions.Remove(Option);
- Save();
- }
-
- public void DeleteItem(int id)
- {
- var item = dBContext.MenuOptionItems.Where(i => i.Id == id).FirstOrDefault();
- dBContext.MenuOptionItems.Remove(item);
- Save();
- }
-
- public void DeleteItem(MenuOptionItem item)
- {
- dBContext.MenuOptionItems.Remove(item);
- Save();
- }
-
- public MenuOption GetMenuOption(int id)
- {
- var option = dBContext.MenuOptions.Where(m => m.Id == id).FirstOrDefault();
-
- if (option == null)
- {
- option = new MenuOption()
- {
- OptionType = OptionType.Single,
- IsBasePrice = false,
- Options = new List<MenuOptionItem>(),
- CategoryDescription = "All"
- };
- }
- else
- {
- option.Options = dBContext.MenuOptionItems.Where(m => m.MenuOption == option).ToList();
- if (option.CategoryId > 0)
- option.CategoryDescription = dBContext.MenuCategories.Where(m => m.Id == option.CategoryId).FirstOrDefault().Description;
- else
- option.CategoryDescription = "All";
- }
-
- return option;
- }
-
- public List<OptionTypeContainer> GetOptionTypes()
- {
- //TODO: hard coded for now, will need to find solution.
- var options = new List<OptionTypeContainer>
- {
- new OptionTypeContainer() { Id = 0, Description = "Single" },
- new OptionTypeContainer() { Id = 1, Description = "Single Required" },
- new OptionTypeContainer() { Id = 2, Description = "Multiple" },
- new OptionTypeContainer() { Id = 3, Description = "Multiple Limit" }
- };
-
- return options;
- }
-
- public List<MenuOption> GetRestaurantMenuOptions(int restaurantId)
- {
- var options = (from o in dBContext.MenuOptions
- where o.RestaurantId == restaurantId
- orderby o.Rank
- select o).ToList();
-
- foreach (var option in options)
- {
- switch (option.OptionType)
- {
- case OptionType.MultipleLimit:
- option.OptionTypeDescription = "Multiple Limit";
- break;
- case OptionType.SingleRequired:
- option.OptionTypeDescription = "Single Required";
- break;
- default:
- option.OptionTypeDescription = option.OptionType.ToString();
- break;
- }
-
- if (option.CategoryId > 0)
- option.CategoryDescription = dBContext.MenuCategories.Where(m => m.Id == option.CategoryId).FirstOrDefault().Description;
- else
- option.CategoryDescription = "All";
- }
-
- return options;
- }
-
- public void Insert(MenuOption Option)
- {
- dBContext.Add(Option);
- Save();
- }
-
- public void Save()
- {
- dBContext.SaveChanges();
- }
-
- public void Update(MenuOption Option)
- {
- dBContext.Entry(Option).State = EntityState.Modified;
- foreach (var opt in Option.Options)
- {
- if (opt.Id > 0)
- {
- dBContext.Entry(opt).State = EntityState.Modified;
- }
- else
- {
- dBContext.Add(opt);
- }
- }
-
- Save();
- }
- }
- }
|