public async Task <HttpResponseMessage> Get(int id = -1) { if (id != -1) { MenuItem res = await _db.MenuItems.Where(b => b.Id == id && !b.Deleted).FirstOrDefaultAsync(); if (res == null) { return(Request.CreateErrorResponse(HttpStatusCode.NoContent, "No Menu Item Found With ID")); } LibBookingService.Dtos.MenuItem menuItem = CreateMenuItemFromDbMenuItem(res); return(Request.CreateResponse(HttpStatusCode.OK, menuItem)); } else { IEnumerable <MenuItem> res = await _db.MenuItems.Where(b => !b.Deleted).ToListAsync(); IEnumerable <LibBookingService.Dtos.MenuItem> menuItems = res.Select(b => CreateMenuItemFromDbMenuItem(b)).OrderBy(b => b.Name); return(menuItems.Any() ? Request.CreateResponse(HttpStatusCode.OK, menuItems) : Request.CreateErrorResponse(HttpStatusCode.NoContent, "No Menu Items")); } }
public async Task <HttpResponseMessage> Post(LibBookingService.Dtos.MenuItem menuItem) { try { MenuItem newMenuItem = _db.MenuItems.Add(new MenuItem { Name = menuItem.Name, Description = menuItem.Description, Price = Convert.ToDecimal(menuItem.Price) }); await _db.SaveChangesAsync(); if (menuItem.DietInfo != null) { foreach (LibBookingService.Dtos.DietInfo di in menuItem.DietInfo) { _db.MenuItemDietInfoes.Add(new MenuItemDietInfo { MenuItem_id = newMenuItem.Id, DietInfo_id = di.Id }); await _db.SaveChangesAsync(); } } if (menuItem.Types != null) { foreach (LibBookingService.Dtos.MenuItemType t in menuItem.Types) { _db.MenuItemTypes.Add(new MenuItemType { MenuItem_id = newMenuItem.Id, Type_id = t.Id }); await _db.SaveChangesAsync(); } } return(Request.CreateResponse(HttpStatusCode.OK, CreateMenuItemFromDbMenuItem(newMenuItem))); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Failed")); } }
public async Task <HttpResponseMessage> Update(int id, LibBookingService.Dtos.MenuItem menuItem) { try { MenuItem mi = await _db.MenuItems.Where(m => m.Id == id).FirstOrDefaultAsync(); mi.Name = menuItem.Name; mi.Description = menuItem.Description; mi.Price = Convert.ToDecimal(menuItem.Price); _db.SetModified(mi); await _db.SaveChangesAsync(); LibBookingService.Dtos.MenuItem res = CreateMenuItemFromDbMenuItem(mi); return(Request.CreateResponse(HttpStatusCode.OK, res)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Failed")); } }