public async Task <ActionResult> DeleteConfirmed( int subscriptionId, int productId) { Subscription_Product subscriptionProduct = await GetSubscriptionProduct(subscriptionId, productId); db.Subscriptions_Products.Remove(subscriptionProduct); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <ActionResult> Create( [Bind(Include = "ProductID,SubscriptionID")] Subscription_Product subscriptionProduct) { if (ModelState.IsValid) { db.Subscriptions_Products.Add(subscriptionProduct); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(subscriptionProduct)); }
public static async Task <bool> CanChange( this Subscription_Product subscriptionProduct, ApplicationDbContext db) { var oldSP = await db.Subscriptions_Products.CountAsync(sp => sp.ProductID.Equals(subscriptionProduct.OldProductID) && sp.SubscriptionID.Equals(subscriptionProduct.OldSubscriptionID)); var newSP = await db.Subscriptions_Products.CountAsync(sp => sp.ProductID.Equals(subscriptionProduct.ProductID) && sp.SubscriptionID.Equals(subscriptionProduct.SubscriptionID)); return(oldSP.Equals(1) && newSP.Equals(0)); }
// GET: Admin/SubscriptionProduct/Edit/5 public async Task <ActionResult> Edit(int?subscriptionId, int?productId) { if (subscriptionId == null || productId == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Subscription_Product subscriptionProduct = await GetSubscriptionProduct(subscriptionId, productId); if (subscriptionProduct == null) { return(HttpNotFound()); } return(View(await subscriptionProduct.Convert(db))); }
public async Task <ActionResult> Edit( [Bind(Include = "ProductID,SubscriptionID,OldProductID,OldSubscriptionID")] Subscription_Product subscriptionProduct) { if (ModelState.IsValid) { var canChange = await subscriptionProduct.CanChange(db); if (canChange) { await subscriptionProduct.Change(db); } return(RedirectToAction("Index")); } return(View(subscriptionProduct)); }
public static async Task <SubscriptionProductModel> Convert( this Subscription_Product subscriptionProduct, ApplicationDbContext db, bool addListData = true) { var model = new SubscriptionProductModel { SubscriptionID = subscriptionProduct.SubscriptionID, ProductID = subscriptionProduct.ProductID, Subscriptions = addListData ? await db.Subscriptions.ToListAsync() : null, Products = addListData ? await db.Products.ToListAsync() : null, SubscriptionTitle = (await db.Subscriptions.FirstOrDefaultAsync(s => s.ID.Equals(subscriptionProduct.SubscriptionID))).Title, ProductTitle = (await db.Products.FirstOrDefaultAsync(p => p.ID.Equals(subscriptionProduct.ProductID))).Title }; return(model); }
public static async Task Change(this Subscription_Product subscriptionProduct, ApplicationDbContext db) { var oldSubscriptionProduct = await db.Subscriptions_Products.FirstOrDefaultAsync( sp => sp.ProductID.Equals(subscriptionProduct.OldProductID) && sp.SubscriptionID.Equals(subscriptionProduct.OldSubscriptionID)); var newSubscriptionProduct = await db.Subscriptions_Products.FirstOrDefaultAsync( sp => sp.ProductID.Equals(subscriptionProduct.ProductID) && sp.SubscriptionID.Equals(subscriptionProduct.SubscriptionID)); if (oldSubscriptionProduct != null && newSubscriptionProduct == null) { newSubscriptionProduct = new Subscription_Product { SubscriptionID = subscriptionProduct.SubscriptionID, ProductID = subscriptionProduct.ProductID }; using (var transaction = new TransactionScope( TransactionScopeAsyncFlowOption.Enabled)) { //try //{ using (var context = new EntityContext()) { context.Database.Log = s => System.Diagnostics.Debug.WriteLine(s); db.Subscriptions_Products.Remove(oldSubscriptionProduct); db.Subscriptions_Products.Add(newSubscriptionProduct); await db.SaveChangesAsync(); } transaction.Complete(); //} //catch { transaction.Dispose(); } } } }