コード例 #1
0
        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(); }
                }
            }
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        // 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)));
        }
コード例 #7
0
        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));
        }
コード例 #8
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);
        }