public static async Task Change(this SubscriptionOfCourse subscriptionOfCourses, ApplicationDbContext db) { var OldSubCourses = await db.subscriptionOfCourses.FirstOrDefaultAsync( cc => cc.courseId.Equals(subscriptionOfCourses.OldCourseId) && cc.subscriptionId.Equals(subscriptionOfCourses.OldSubscriptionId) ); var NewSubCourses = await db.subscriptionOfCourses.FirstOrDefaultAsync( cc => cc.courseId.Equals(subscriptionOfCourses.courseId) && cc.subscriptionId.Equals(subscriptionOfCourses.subscriptionId) ); if (OldSubCourses != null && NewSubCourses == null) { NewSubCourses = new SubscriptionOfCourse { subscriptionId = subscriptionOfCourses.subscriptionId, courseId = subscriptionOfCourses.courseId }; using (var transaction = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { try { db.subscriptionOfCourses.Remove(OldSubCourses); db.subscriptionOfCourses.Add(NewSubCourses); await db.SaveChangesAsync(); transaction.Complete(); } catch { transaction.Dispose(); } } } }
public async Task <ActionResult> DeleteConfirmed(int subscriptionId, int courseId) { SubscriptionOfCourse subscriptionOfCourse = await GetCourseSubscription(subscriptionId, courseId); db.subscriptionOfCourses.Remove(subscriptionOfCourse); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <ActionResult> Create([Bind(Include = "courseId,subscriptionId")] SubscriptionOfCourse subscriptionOfCourse) { if (ModelState.IsValid) { db.subscriptionOfCourses.Add(subscriptionOfCourse); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(subscriptionOfCourse)); }
public static async Task <SubscriptionOfCourseModel> Convert(this SubscriptionOfCourse subscriptionOfCourses, ApplicationDbContext db) { var model = new SubscriptionOfCourseModel { courseId = subscriptionOfCourses.courseId, subscriptionId = subscriptionOfCourses.subscriptionId, courses = await db.courses.ToListAsync(), subscriptions = await db.subscriptions.ToListAsync() }; return(model); }
public async Task <ActionResult> Edit([Bind(Include = "courseId,subscriptionId,OldCourseId,OldSubscriptionId")] SubscriptionOfCourse subscriptionOfCourse) { if (ModelState.IsValid) { var canChange = await subscriptionOfCourse.CanChange(db); if (canChange) { await subscriptionOfCourse.Change(db); } return(RedirectToAction("Index")); } return(View(subscriptionOfCourse)); }
// GET: Instructor/SubscriptionOfCourses/Edit/5 public async Task <ActionResult> Edit(int?subscriptionId, int?courseId) { if (subscriptionId == null || courseId == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } SubscriptionOfCourse subscriptionOfCourse = await GetCourseSubscription(subscriptionId, courseId); if (subscriptionOfCourse == null) { return(HttpNotFound()); } return(View(await subscriptionOfCourse.Convert(db))); }
public static async Task <bool> CanChange(this SubscriptionOfCourse subscriptionOfCourses, ApplicationDbContext db) { var oldCC = await db.subscriptionOfCourses.CountAsync( cc => cc.courseId.Equals(subscriptionOfCourses.OldCourseId) && cc.subscriptionId.Equals(subscriptionOfCourses.OldSubscriptionId)); var newCC = await db.subscriptionOfCourses.CountAsync( cc => cc.courseId.Equals(subscriptionOfCourses.courseId) && cc.subscriptionId.Equals(subscriptionOfCourses.subscriptionId)); return(oldCC.Equals(1) && newCC.Equals(0)); }
public static async Task <SubscriptionOfCourseModel> Convert(this SubscriptionOfCourse subscriptionOfCourses, ApplicationDbContext db, bool addListData = true) { var model = new SubscriptionOfCourseModel { subscriptionId = subscriptionOfCourses.subscriptionId, courseId = subscriptionOfCourses.courseId, subscriptions = addListData ? await db.subscriptions.ToListAsync() : null, courses = addListData ? await db.courses.ToListAsync() : null, subscriptionName = (await db.subscriptions.FirstOrDefaultAsync( i => i.id.Equals(subscriptionOfCourses.subscriptionId))).name, courseName = (await db.courses.FirstOrDefaultAsync( c => c.id.Equals(subscriptionOfCourses.courseId))).name }; return(model); }