using System.Collections.Generic;
namespace Com.Cognizant.Truyum.Model
private string dateOfLaunch;
private bool freeDelivery;
public string Name{get;set;}
public float Price{get;set;}
public bool Active{get;set;}
public string DateOfLaunch{get;set;}
public string Category{get;set;}
public bool FreeDelivery{get;set;}
public MenuItem(long id,string name,float price,bool active,string dateOfLaunch,string category,bool freeDelivery)
this.dateOfLaunch=dateOfLaunch;
this.freeDelivery=freeDelivery;
public override string ToString()
public override bool Equals(object obj)
public static void Main(string[] args) {
MenuItemDaoCollection menu=new MenuItemDaoCollection();
menu.GetMenuItemListAdmin();
menu.GetMenuItemListCustomer();
private List<MenuItem> menuItemList;
public List<MenuItem> MenuItemList{get;set;}
public double Total{get;set;}
public Cart(List<MenuItem> menuItemList, double total)
MenuItemList = menuItemList;
public override string ToString()
public override bool Equals(object obj)
public class DateUtility{
public static DateTime Cstring(string dateOfLaunch)
DateTime datetime=DateTime.ParseExact(dateOfLaunch,"yyyyMMdd",null);
string datetime1=datetime.ToString("dd/MM/yyyy");
void MenuItemDaoCollection();
void GetMenuItemListAdmin(List<MenuItem> menu);
void GetMenuItemListCustomer(List<MenuItem> menu);
void ModifyMenuItem(MenuItem menuItem);
MenuItem GetMenuItem(long menuItemId);
class MenuItemDaoCollection:IMenuItemDao
private static List<MenuItem>menuItemList;
public MenuItemDaoCollection()
menuItemList = new List<MenuItem>();
menuItemList .Add(new MenuItem(1,"Sandwich",99.00f,true,"20170315","Main Course",true));
menuItemList.Add(new MenuItem(2,"Burger",129.00f,true,"20110223","Main Course",false));
menuItemList .Add(new MenuItem(3,"Pizza",149.00f,true,"20180821","Main Course",false));
menuItemList.Add(new MenuItem(4,"French Fries",57.00f,true,"20170702","Stars",true));
menuItemList.Add(new MenuItem(5,"Chocolate Brownie",37.00f,true,"20221102","Deserts",true));
public List<MenuItem> GetMenuItemListAdmin()
public List<MenuItem> GetMenuItemListCustomer()
List<MenuItem> cust = new List<MenuItem>();
foreach(MenuItem item in menuItemList)
if(Convert.ToInt32(item.DateOfLaunch) >Convert.ToInt32( DateTime.Now) && item.Active == true)
public void ModifyMenuItem(MenuItem menuItem)
foreach(MenuItem item in menuItemList)
if (item.Equals(menuItem))
public MenuItem GetMenuItem(long menuItemId)
List<MenuItem> getMenuItem = new List<MenuItem>();
foreach(MenuItem item in menuItemList)
if(item.Id == menuItemId)
void AddCartItem(long userId,long menuItemId);
void RemoveCartItem(long userId, long productId);
class CartDaoCollection : ICartDao
private static Dictionary<long, Cart> userCart;
public CartDaoCollection()
userCart = new Dictionary<long, Cart>();
public void AddCartItem(long userId, long menuItemId)
MenuItemDaoCollection menuItemDao = new MenuItemDaoCollection();
MenuItem menuItem = menuItemDao.GetMenuItem(menuItemId);
if (userCart.ContainsKey(userId))
userCart[userId].MenuItemList.Add(menuItem);
List<MenuItem> menuItemList = new List<MenuItem>() { menuItem };
userCart.Add(userId, new Cart(menuItemList, 0));
public Cart GetAllCartItems(long userId)
var menuItemList = userCart[userId];
if (menuItemList.MenuItemList.Count.Equals(0))
throw new CartEmptyException();
foreach(var item in menuItemList.MenuItemList)
totalPrice += item.Price;
Cart cart = new Cart(menuItemList.MenuItemList, totalPrice);
public void RemoveCartItem(long userId, long productId)
List<MenuItem> menuItem = userCart[userId].MenuItemList;
foreach(MenuItem item in menuItem)
if (item.Id.Equals(productId))
userCart[userId].MenuItemList.Remove(item);
class CartEmptyException : Exception
private static readonly string DefaultMessage = "Users Cart is Empty";
public CartEmptyException() : base(DefaultMessage) { }
public CartEmptyException(string message) : base(message)