Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion Context/FoodeeDbContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public class FoodeeDbContext : DbContext
public FoodeeDbContext(DbContextOptions options) : base(options)
{
}
public DbSet<Cart> Carts { get; set; }
public DbSet<Menu> Menus { get; set; }
public DbSet<MenuItem> MenuItems { get; set; }
public DbSet<MenuMenuItem> MenuMenuItems { get; set; }
Expand Down Expand Up @@ -68,7 +69,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)

base.OnModelCreating(modelBuilder);

modelBuilder.Entity<Menu>().HasMany(m => m.MenuItems)
modelBuilder.Entity<Menu>().HasMany(m => m.MenuMenuItems)
.WithOne(m => m.Menu)
.HasForeignKey(m => m.MenuId).OnDelete(DeleteBehavior.Restrict);

Expand Down
12 changes: 10 additions & 2 deletions Controllers/AdminController.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Mvc;
using FOODEE.Interface;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
Expand All @@ -8,9 +9,16 @@ namespace FOODEE.Controllers
{
public class AdminController : Controller
{
private readonly IMenuItemService _menuitemService;

public AdminController(IMenuItemService menuitemService)
{
_menuitemService = menuitemService;
}

public IActionResult Index()
{
return View();
return View(_menuitemService.GetAll());
}
}
}
26 changes: 26 additions & 0 deletions Controllers/CartController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
using FOODEE.Interface;
using FOODEE.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;

namespace FOODEE.Controllers
{
public class CartController : Controller
{
private readonly ICartService _cartService;

public CartController(ICartService cartService)
{
_cartService = cartService;
}
public IActionResult Index()
{
return View();
}
}
}
93 changes: 91 additions & 2 deletions Controllers/CustomerController.cs
Original file line number Diff line number Diff line change
@@ -1,16 +1,105 @@
using Microsoft.AspNetCore.Mvc;
using FOODEE.DTO;
using FOODEE.Interface;
using FOODEE.Models;
using FOODEE.Models.ViewModel;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;

namespace FOODEE.Controllers
{
public class CustomerController : Controller
{
private readonly IMenuItemService _menuitemService;
private readonly IMenuService _menuService;
private readonly IMenuMenuItemService _menumenuitemService;
public IUserService _userService;
public IUserRoleService _userRoleService;
public IRoleService _roleService;

public CustomerController(IMenuItemService menuitemService, IMenuService menuService, IMenuMenuItemService menumenuitemService, IUserService userService, IUserRoleService userRoleService, IRoleService roleService)
{
_menuitemService = menuitemService;
_menuService = menuService;
_menumenuitemService = menumenuitemService;
_userService = userService;
_userRoleService = userRoleService;
_roleService = roleService;
}

public IActionResult Index()
{
return View(_menuService.GetAll());
}
[HttpGet]
public IActionResult GetByMenu(int id)
{

var menumenuItem = _menumenuitemService.GetByMenu(id);

ViewBag.Menu = _menuService.FindById(id).Name;

List<MenuItem> MenuItems = new List<MenuItem>();
foreach (var item in menumenuItem)
{
var menuitem = _menuitemService.FindById(item.MenuItemId);
MenuItems.Add(menuitem);
}

return View(MenuItems);
}

[HttpGet]
[AllowAnonymous]
public IActionResult Login()
{

return View();
}
}
[HttpPost]
[AllowAnonymous]
public async Task<IActionResult> Login(LoginViewModel vm, bool isCheckout = false)
{
CreateUserDto createuserDto = new CreateUserDto
{
Email = vm.Email,
Password = vm.Password,
};
User user = _userService.LoginUser(createuserDto);
if (user == null)
{
if (isCheckout)
{
return RedirectToAction("Checkout","Order");
}
return View();
}
else
{
var claims = new List<Claim>
{
new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
new Claim(ClaimTypes.Email, user.Email),
new Claim(ClaimTypes.Role, "Customer")
};

var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

var principal = new ClaimsPrincipal(identity);

var props = new AuthenticationProperties();

await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, props);
return isCheckout ? RedirectToAction("Checkout", "Order") : RedirectToAction("Index", "Home");
}
}
}
}


6 changes: 4 additions & 2 deletions Controllers/HomeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@ public HomeController(IMenuItemService menuitemService, ILogger<HomeController>
}
public IActionResult Index()
{
var menuitems = _menuitemService.GetAll();
return View(menuitems);
//var menuitems = _menuitemService.GetAll();
//return View(menuitems);

return RedirectToAction("IndexAnonymous","MenuItem");
}
public IActionResult Privacy()
{
Expand Down
71 changes: 61 additions & 10 deletions Controllers/MenuController.cs
Original file line number Diff line number Diff line change
@@ -1,29 +1,64 @@
using FOODEE.Interface;
using FOODEE.DTO;
using FOODEE.Interface;
using FOODEE.Models;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using static FOODEE.Models.ViewModel.MenuVM;

namespace FOODEE.Controllers
{
public class MenuController : Controller
{
private readonly IMenuService _menuService;
public MenuController(IMenuService menuService)
private readonly IMenuMenuItemService _menumenuitemService;
private readonly IMenuItemService _menuitemService;
private readonly IWebHostEnvironment _webHostEnvironment;
public MenuController(IMenuService menuService,IMenuMenuItemService menumenuitemService, IMenuItemService menuitemService, IWebHostEnvironment webHostEnvironment)
{
_menuService = menuService;
_menumenuitemService = menumenuitemService;
_menuitemService = menuitemService;
_webHostEnvironment = webHostEnvironment;

}

[HttpGet]
public IActionResult Index()
{
var model = _menuService.GetAll();
return View(model);
IEnumerable<Menu> menus = _menuService.GetAllMenus();

return View(menus);
}
[HttpGet]
public IActionResult IndexAdmin()
{
IEnumerable<Menu> menus = _menuService.GetAllMenus();

return View(menus);
}
[HttpGet]
public IActionResult GetByMenu(int id)
{

var menumenuItem = _menumenuitemService.GetByMenu(id);

ViewBag.Menu = _menuService.FindById(id).Name;

List<MenuItem> MenuItems = new List<MenuItem>();
foreach (var item in menumenuItem)
{
var menuitem = _menuitemService.FindById(item.MenuItemId);
MenuItems.Add(menuitem);
}

return View(MenuItems);
}
[HttpGet]
public IActionResult Details(int? id)
{
Expand All @@ -41,21 +76,38 @@ public IActionResult Details(int? id)
return View(menu);
}

[HttpGet]
public IActionResult Add()
{
return View();
}

[HttpPost]
public IActionResult Add(Menu menu)
[ValidateAntiForgeryToken]
public IActionResult Add(CreateMenuViewModel createmenuViewmodel)
{
var menuDto = new MenuDto();
if (ModelState.IsValid)
{
_menuService.Add(menu);
if (createmenuViewmodel.Image.FileName != null)
{
var file = createmenuViewmodel.Image;
string imageDirectory = Path.Combine(_webHostEnvironment.WebRootPath, "Image");
Directory.CreateDirectory(imageDirectory);
string contentType = file.ContentType.Split('/')[1];
string fileName = $"{Guid.NewGuid()}.{contentType}";
string fullPath = Path.Combine(imageDirectory, fileName);
menuDto.Image = fileName;
using (var fileStream = new FileStream(fullPath, FileMode.Create))
{
file.CopyTo(fileStream);
}
}
}
return RedirectToAction(("Index"));
//return View();
menuDto.Name = createmenuViewmodel.Name;
menuDto.Description = createmenuViewmodel.Description;
menuDto.MenuItems = createmenuViewmodel.MenuItems;
_menuService.Add(menuDto);
return View(createmenuViewmodel);
}

[HttpGet]
Expand Down Expand Up @@ -128,7 +180,6 @@ public IActionResult Delete(int? id)
[ValidateAntiForgeryToken]
public IActionResult DeleteConfirmed(int id)
{

_menuService.Delete(id);
return RedirectToAction(nameof(Index));
}
Expand Down
11 changes: 11 additions & 0 deletions Controllers/MenuItemController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,17 @@ public IActionResult Index()
{
return View(_menuitemService.GetAll());
}
public IActionResult IndexAdmin()
{
IEnumerable<MenuItem> menuitems = _menuitemService.GetAll();

return View(menuitems);
}

public IActionResult IndexAnonymous()
{
return View(_menuitemService.GetAll());
}

[AllowAnonymous]
public IActionResult Details(int? id)
Expand Down
39 changes: 21 additions & 18 deletions Controllers/OrderController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@ namespace FOODEE.Controllers
public class OrderController : Controller
{
private readonly IOrderService _orderService;
public OrderController(IOrderService orderService)
private readonly IUserService _userService;
public OrderController(IOrderService orderService, IUserService userService)
{
_orderService = orderService;
_userService = userService;
}
public IActionResult Index()
{
Expand All @@ -38,7 +40,7 @@ public IActionResult Details(int? id)
}

[HttpGet]
public IActionResult Create()
public IActionResult Add()
{
return View();
}
Expand All @@ -49,6 +51,7 @@ public IActionResult Add(Order order)
{
if (ModelState.IsValid)
{

_orderService.Add(order);

}
Expand Down Expand Up @@ -119,24 +122,24 @@ public IActionResult Confirmation()
return View();
}


[Authorize]
public IActionResult CheckOut()
{
if(User.Identity.IsAuthenticated)
{
return View();
}

return RedirectToAction("Login","User");
}


[HttpPost]
public IActionResult Menu(IEnumerable<Menu> orders, string deliveryAddress)
{
var customerId = Convert.ToInt32(User.FindFirst(ClaimTypes.NameIdentifier).Value);
var response = _orderService.Menu(customerId, orders, deliveryAddress);
return View("Confirmation", response);
int userId = int.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier));
User userlogin = _userService.FindById(userId);
ViewBag.UserName = $"{userlogin.FirstName} .{userlogin.LastName[0]}";
ViewBag.Address = userlogin.Address;
ViewBag.Email = userlogin.Email;
ViewBag.PhoneNumber = userlogin.PhoneNumber;
return View();
}

//[HttpPost]
//public IActionResult Menu(IEnumerable<Menu> orders, string deliveryAddress)
//{
// var customerId = Convert.ToInt32(User.FindFirst(ClaimTypes.NameIdentifier).Value);
// var response = _orderService.Menu(customerId, orders, deliveryAddress);
// return View("Confirmation", response);
//}
}
}
Loading