using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using Vidly.Models; namespace Vidly.Controllers.Api { public class CustomersController : ApiController { private ApplicationDbContext _context; public CustomersController() { _context = new ApplicationDbContext(); } // GET /Api/Customers public IEnumerable GetCustomers() { return _context.Customers.ToList(); } // GET /Api/Customers/1 public Customer GetCustomer(int Id) { var customer = _context.Customers.SingleOrDefault(c => c.Id == Id); if (customer == null) throw new HttpResponseException(HttpStatusCode.NotFound); return customer; } // POST /Api/Customers [HttpPost] public Customer CreateCustomer(Customer customer) { if (!ModelState.IsValid) throw new HttpResponseException(HttpStatusCode.BadRequest); _context.Customers.Add(customer); _context.SaveChanges(); return customer; } // PUT /Api/Customers/1 [HttpPut] public void UpdateCustomer(int Id,Customer customer) { if (!ModelState.IsValid) throw new HttpResponseException(HttpStatusCode.BadRequest); var customerInDb = _context.Customers.SingleOrDefault(c => c.Id == Id); if (customerInDb == null) throw new HttpResponseException(HttpStatusCode.NotFound); customerInDb.Name = customer.Name; customerInDb.BirthDate = customer.BirthDate; customerInDb.IsSubscribedToNewsLetter = customer.IsSubscribedToNewsLetter; customerInDb.MembershipTypeId = customer.MembershipTypeId; _context.SaveChanges(); } // DELETE /Api/Customers/1 [HttpDelete] public void DeleteCustomer(int Id) { var customerInDb = _context.Customers.SingleOrDefault(c => c.Id == Id); if (customerInDb == null) throw new HttpResponseException(HttpStatusCode.NotFound); _context.Customers.Remove(customerInDb); _context.SaveChanges(); } } }