/// <summary> /// Adds an order to the database and returns it. /// </summary> /// <param name="ord">the order to be added</param> public Order Add(Order ord) { using (var ctx = new MovieShopContext()) { foreach (Orderline item in ord.Orderlines) { bool isDetached = ctx.Entry(item.Movie).State == EntityState.Detached; if (isDetached) ctx.Movies.Attach(item.Movie); ctx.Entry(item.Movie.Genre).State = EntityState.Detached; } GenreRepository genreRep = new GenreRepository(); foreach (var item in genreRep.GetAll()) { ctx.Genres.Attach(item); } foreach (var item in ctx.Status.ToList()) { if (item.Name.Equals("Processing")) ord.Status = item; } Order newOrd = ctx.Orders.Add(ord); ctx.SaveChanges(); return newOrd; } }
/// <summary> /// List all customer /// </summary> /// <returns>a list containing all customers</returns> public IEnumerable<Customer> GetAll() { using (var ctx = new MovieShopContext()) { return ctx.Customers.ToList(); } }
/// <summary> /// returns a customers with a specified Id /// </summary> /// <param name="id">the Id of the Customer</param> /// <returns></returns> public Customer Get(int id) { using (var ctx = new MovieShopContext()) { var cust = ctx.Customers.Where(c => c.Id == id).FirstOrDefault(); return cust; } }
/// <summary> /// Returns a customer with a specified Email /// </summary> /// <param name="email">The email of the customer that is wanted</param> /// <returns></returns> public Customer Get(string email) { using (var ctx = new MovieShopContext()) { var cust = ctx.Customers.Where(c => c.Email.Equals(email)).FirstOrDefault(); return cust; } }
/// <summary> /// Add a customer and returns it /// </summary> public Customer Add(Customer cust) { using (var ctx = new MovieShopContext()) { Customer newCust = ctx.Customers.Add(cust); ctx.SaveChanges(); return newCust; } }
public Order Get(int id) { using (var ctx = new MovieShopContext()) { var orderlines = ctx.Orderline.Where(cm => cm.OrderId == id).Include("Movie").ToList(); Order order = ctx.Orders .Include("Orderlines") .Include("Status") .FirstOrDefault(c => c.Id == id); order.Orderlines = orderlines; return order; } }
/// <summary> /// Change a customer /// </summary> public Customer Update(Customer cust) { using (var ctx = new MovieShopContext()) { var customer = ctx.Customers.Where(c => c.Id == cust.Id).FirstOrDefault(); customer.FirstName = cust.FirstName; customer.MiddleName = cust.MiddleName; customer.LastName = cust.LastName; customer.StreetName = cust.StreetName; customer.StreetNumber = cust.StreetNumber; customer.Email = cust.Email; customer.Password = cust.Password; ctx.SaveChanges(); return customer; } }
/// <summary> /// List all order /// </summary> /// <returns>a list containing all orders</returns> public IEnumerable<Order> GetAll() { using (var ctx = new MovieShopContext()) { var orderlines = ctx.Orderline.Include("Movie").ToList(); var movies = ctx.Movies.Include("Genre").ToList(); var orders = ctx.Orders.Include("Orderlines").Include("Status").ToList(); foreach (var orderline in orderlines) { orderline.Movie = movies.FirstOrDefault(cm => cm.Id == orderline.MovieId); } foreach (var item in orders) { item.Orderlines = orderlines.Where(cm => cm.OrderId == item.Id).ToList(); } return orders; } }
/// <summary> /// List all order by customer id /// </summary> public IEnumerable<Order> GetOrders(int id) { //this is dead, it was broken by Max, he changed shit using (var ctx = new MovieShopContext()) { var orderlines = ctx.Orderline.Include("Movie").ToList(); var orders = ctx.Orders.Include("Orderlines").Include("Status").Where(c => c.Id == id).ToList(); foreach (var item in orders) { item.Orderlines = orderlines.Where(cm => cm.OrderId == item.Id).ToList(); } return orders; } }
/// <summary> /// Update one order /// </summary> public Order Update(Order ord) { using (var ctx = new MovieShopContext()) { //gets the item that we want to update var order = ctx.Orders.Include("Orderlines").Include("Status").FirstOrDefault(c => c.Id == ord.Id); //changes the data order.Orderlines = ord.Orderlines; order.OrderDate = ord.OrderDate; //saves the changes. ctx.SaveChanges(); return order; } }