123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- using Microsoft.EntityFrameworkCore;
- using Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal;
- using ProRestaurant.Classes;
- using ProRestaurant.DBContexts;
- using ProRestaurant.Models.Restaurants;
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.IO;
- using System.Linq;
-
- namespace ProRestaurant.Repository.Restaurants
- {
- public class MenuItemRepository : IMenuItemRepository
- {
- private readonly DBContext dBContext;
-
- public MenuItemRepository(DBContext db)
- {
- dBContext = db;
- }
-
- public MenuItem GetMenuItem(int Id)
- {
- var item = dBContext.MenuItems.Where(m => m.Id == Id).FirstOrDefault();
-
- if (item == null)
- {
- item = new MenuItem();
- }
- else
- {
- if (item.CategoryId > 0)
- item.Category = dBContext.MenuCategories.Where(c => c.Id == item.CategoryId).Select(c => c.Description).FirstOrDefault();
-
- if (!string.IsNullOrEmpty(item.Image))
- {
- if (!item.Image.Contains("data:image"))
- item.Image = ImageFormatter.ImageToBase64(item.Image);
- }
-
- item.Options = dBContext.MenuOptions.Where(o => o.MenuItemId == item.Id).ToList();
- }
-
- return item;
- }
-
- public IEnumerable<MenuItem> GetMenuItems(Func<MenuItem, bool> where)
- {
- var items = dBContext.MenuItems.Where(where).ToList();
-
- foreach (var item in items)
- {
- if (item.CategoryId > 0)
- item.Category = dBContext.MenuCategories.Where(c => c.Id == item.CategoryId).Select(c => c.Description).FirstOrDefault();
-
- if (!string.IsNullOrEmpty(item.Image))
- {
- if (!item.Image.Contains("data:image"))
- item.Image = ImageFormatter.ImageToBase64(item.Image);
- }
- }
-
- return items;
- }
-
- public void Insert(MenuItem Item)
- {
- Item.Image = SaveImage(Item);
- dBContext.Add(Item);
- Save();
- }
-
- public void Remove(MenuItem Item)
- {
- dBContext.MenuItems.Remove(Item);
- Save();
- }
-
- public void Save()
- {
- dBContext.SaveChanges();
- }
-
- public void Update(MenuItem Item)
- {
- Item.Image = SaveImage(Item);
- dBContext.Entry(Item).State = EntityState.Modified;
- Save();
- }
-
- private string SaveImage(MenuItem Item)
- {
- string image = Item.Image;
- if (!string.IsNullOrEmpty(Item.Image))
- {
- bool saveFile = false;
- var loc = dBContext.Locations.FirstOrDefault()?.ImageStore;
- if (!string.IsNullOrEmpty(loc))
- {
- var rest = dBContext.Restaurants.Where(r => r.Id == Item.RestaurantId).FirstOrDefault();
- var folderName = rest.Name + "-" + rest.Suburb;
- saveFile = true;
- loc += string.Format("{0}", folderName);
- if (!Directory.Exists(loc))
- {
- Directory.CreateDirectory(loc);
- }
-
- if (saveFile)
- {
- string path = ImageFormatter.Base64ToImage(Item.Image, loc, Item.Name.Trim());
- image = path;
- }
- }
- }
- return image;
- }
- }
- }
|