/// <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; } }