public async Task <ActionResult> DeleteConfirmed(int id)
        {
            success_story story = await db.success_story.FindAsync(id);

            story.status          = 0;
            db.Entry(story).State = EntityState.Modified;
            await db.SaveChangesAsync();

            //db.success_story.Remove(story);

            List <success_story_category> categoryList = (from ca in db.success_story_category
                                                          where ca.success_story_id == story.success_story_id && ca.status == 1
                                                          select ca).ToList();

            foreach (success_story_category storyCategory in categoryList)
            {
                storyCategory.status          = 0;
                db.Entry(storyCategory).State = EntityState.Modified;
                await db.SaveChangesAsync();
            }

            List <success_story_courses> courseList = (from ca in db.success_story_courses
                                                       where ca.success_story_id == story.success_story_id && ca.status == 1
                                                       select ca).ToList();

            foreach (success_story_courses storyCourse in courseList)
            {
                storyCourse.status          = 0;
                db.Entry(storyCourse).State = EntityState.Modified;
                await db.SaveChangesAsync();
            }

            return(RedirectToAction("Index"));
        }
        // GET: SuccessStory/Delete/5
        public async Task <ActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            success_story story = await db.success_story.FindAsync(id);

            if (story == null)
            {
                return(HttpNotFound());
            }
            else if (story.status == 0)
            {
                return(HttpNotFound());
            }

            StoryIndexViewModel editView = new StoryIndexViewModel();

            editView.successStory = story;

            editView.allCategoryList = (from ca in db.category
                                        from ssc in db.success_story_category
                                        .Where(ssc => ssc.category_id == ca.category_id &&
                                               ssc.success_story_id == story.success_story_id &&
                                               ssc.status == 1)
                                        select new CategoryCheckBoxModel
            {
                category_id = ca.category_id,
                category_name = ca.category_name,
                story_category_id = (ssc == null ? 0 : ssc.story_category_id),
                isSelected = (ssc == null ? false : true)
            }).ToList();

            editView.allCourseList = (from co in db.courses
                                      from ssc in db.success_story_courses
                                      .Where(ssc => ssc.course_id == co.course_id &&
                                             ssc.success_story_id == story.success_story_id &&
                                             ssc.status == 1)
                                      select new CourseCheckboxModel
            {
                course_id = co.course_id,
                course_code = co.course_code,
                course_name = co.course_name,
                story_course_id = (ssc == null ? 0 : ssc.story_course_id),
                isSelected = (ssc == null ? false : true)
            }).ToList();

            return(View(editView));
        }
        public async Task <ActionResult> Edit(StoryIndexViewModel editView)
        {
            if (ModelState.IsValid)
            {
                success_story story = editView.successStory;

                var validImageTypes = new string[]
                {
                    "image/gif",
                    "image/jpeg",
                    "image/jpg",
                    "image/png"
                };

                if (editView.picFile != null && editView.picFile.ContentLength > 0)
                {
                    if (!validImageTypes.Contains(editView.picFile.ContentType))
                    {
                        ModelState.AddModelError("ImageUpload", "Please choose either a GIF, JPG or PNG image.");
                    }

                    var uploadDir   = "~/images/successstory";
                    var newFileName = String.Format("{0}_{1}_{2}", "Story", DateTime.Now.ToString("yyyyMMddHHmmssfff"), Path.GetFileName(editView.picFile.FileName));
                    var imagePath   = Path.Combine(Server.MapPath(uploadDir), newFileName);
                    editView.picFile.SaveAs(imagePath);

                    var imageUrl = Path.Combine(uploadDir, Path.GetFileName(imagePath));
                    story.pic = "~/images/successstory/" + newFileName;
                }

                db.Entry(story).State = EntityState.Modified;
                await db.SaveChangesAsync();

                foreach (CategoryCheckBoxModel cat in editView.allCategoryList)
                {
                    if (cat.story_category_id == 0 && cat.isSelected == true)
                    {
                        success_story_category newSsc = new success_story_category();
                        newSsc.success_story_id = story.success_story_id;
                        newSsc.category_id      = cat.category_id;
                        newSsc.status           = 1;
                        db.success_story_category.Add(newSsc);
                        await db.SaveChangesAsync();
                    }
                    if (cat.story_category_id != 0 && cat.isSelected == false)
                    {
                        success_story_category updateSsc = new success_story_category();
                        updateSsc.story_category_id = cat.story_category_id;
                        updateSsc.success_story_id  = story.success_story_id;
                        updateSsc.category_id       = cat.category_id;
                        updateSsc.status            = 0;
                        db.Entry(updateSsc).State   = EntityState.Modified;
                        await db.SaveChangesAsync();
                    }
                }

                foreach (CourseCheckboxModel cor in editView.allCourseList)
                {
                    if (cor.story_course_id == 0 && cor.isSelected == true)
                    {
                        success_story_courses newSsc = new success_story_courses();
                        newSsc.success_story_id = story.success_story_id;
                        newSsc.course_id        = cor.course_id;
                        newSsc.status           = 1;
                        db.success_story_courses.Add(newSsc);
                        await db.SaveChangesAsync();
                    }
                    if (cor.story_course_id != 0 && cor.isSelected == false)
                    {
                        success_story_courses updateSsc = new success_story_courses();
                        updateSsc.story_course_id  = cor.story_course_id;
                        updateSsc.success_story_id = story.success_story_id;
                        updateSsc.course_id        = cor.course_id;
                        updateSsc.status           = 0;
                        db.Entry(updateSsc).State  = EntityState.Modified;
                        await db.SaveChangesAsync();
                    }
                }
                return(RedirectToAction("Index"));
            }

            return(View(editView));
        }