Skip to content

Instantly share code, notes, and snippets.

@glennblock
Created May 19, 2012 12:25
Show Gist options
  • Save glennblock/2730655 to your computer and use it in GitHub Desktop.
Save glennblock/2730655 to your computer and use it in GitHub Desktop.
MenuContext.cs
public class MenuContext : DbContext
{
public DbSet<MenuItem> MenuItems { get; set; }
public DbSet<Review> Reviews { get; set; }
}
MenuController.cs
public class MenuController : ApiController
{
private MenuContext menuContext = new MenuContext();
public MenuItemCollection GetItems()
{
var items = new MenuItemCollection();
items.AddRange(menuContext.MenuItems);
return items;
}
public MenuItem GetItem(int id)
{
var item = FindItem(id);
return item;
}
public MenuItem PostItem(MenuItem item)
{
menuContext.MenuItems.Add(item);
menuContext.SaveChanges();
return item;
}
[HttpDelete]
public void RemoveItem(int id)
{
var item = FindItem(id);
menuContext.MenuItems.Remove(item);
menuContext.SaveChanges();
}
private MenuItem FindItem(int id)
{
return menuContext.MenuItems.SingleOrDefault(i => i.MenuItemId == id);
}
public void PutItem(int id, MenuItem item)
{
var foundItem = FindItem(id);
foundItem.Name = item.Name;
foundItem.Price = item.Price;
foundItem.Description = item.Description;
}
}
MenuItem.cs
public class MenuItem
{
[XmlAttribute]
public string Name { get; set; }
[XmlAttribute]
public int MenuItemId { get; set; }
[XmlAttribute]
public string Description { get; set; }
[XmlAttribute]
public double Price { get; set; }
}
[XmlRoot("Menu")]
public class MenuItemCollection : List<MenuItem>
{
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment