public async Task <ActionResult> Create(CreateOrEditCourseModel model, string Submittype)
        {
            if (ModelState.IsValid)
            {
                model.CreatedBy     = CurrentUser.UserId.Value;
                model.CreatedByName = CurrentUser.Name;

                //check coursecode
                var course = db.Courses.FirstOrDefault(x => x.Code.Equals(model.Code, StringComparison.OrdinalIgnoreCase));

                if (course != null) // change == to != by wawar
                {
                    TempData["ErrorMessage"] = $"There is already a course with the Course Code {course.Code}. Please select a new code.";

                    await GetCategories();

                    return(View(model));
                }

                var response = await WepApiMethod.SendApiAsync <string>(HttpVerbs.Post, CourseApiUrl.CreateCourse, model);

                if (response.isSuccess)
                {
                    string[] resparray = response.Data.Split('|');
                    string   newid     = resparray[0];
                    //string title = resparray[1];

                    //TempData["SuccessMessage"] = "Course successfully created. Now you can add contents.";

                    await LogActivity(Modules.Learning, "Create Course : " + model.Title);

                    var id = response.Data;

                    if (Submittype == "Save")
                    {
                        TempData["SuccessMessage"] = "New Course titled " + model.Title + " created successfully and saved as draft.";

                        return(RedirectToAction("Index", "Courses", new { area = "eLearning" }));
                    }
                    else
                    {
                        return(RedirectToAction("Review", "Courses", new { area = "eLearning", @id = newid }));
                    }
                }
                else
                {
                    TempData["SuccessMessage"] = "Failed to create new Course.";

                    return(RedirectToAction("Index", "Courses", new { area = "eLearning" }));
                }
            }

            //await GetCategories();
            ViewBag.CategoryId = new SelectList(db.RefCourseCategories, "Id", "Name", model.CategoryId);

            return(View(model));
        }
        public async Task <ActionResult> Create(int?catid)
        {
            await GetCategories(catid.Value);

            var model = new CreateOrEditCourseModel();

            model.CategoryId = catid.Value;

            return(View(model));
        }
 public ActionResult Review(CreateOrEditCourseModel model)
 {
     if (model != null)
     {
         return(RedirectToAction("Content", "Courses", new { id = model.Id }));
     }
     else
     {
         return(RedirectToAction("Index", "Courses"));
     }
 }
        public async Task <ActionResult> Edit(CreateOrEditCourseModel model, string Submittype)
        {
            if (ModelState.IsValid)
            {
                model.UpdatedBy     = CurrentUser.UserId.Value;
                model.UpdatedByName = CurrentUser.Name;

                //check coursecode
                var course = db.Courses.FirstOrDefault(x => x.Code.Equals(model.Code, StringComparison.OrdinalIgnoreCase));

                if (course != null && course.Id != model.Id)
                {
                    TempData["ErrorMessage"] = $"There is already a course with the Course Code {course.Code}. Please select a new code.";

                    await GetCategories();

                    return(View(model));
                }

                var response = await WepApiMethod.SendApiAsync <CreateOrEditCourseModel>(HttpVerbs.Post, CourseApiUrl.EditCourse, model);

                if (response.isSuccess)
                {
                    await LogActivity(Modules.Learning, $"Edit Course Successfull - {response.Data.Title} - {model.Id}");

                    if (Submittype == "Save")
                    {
                        TempData["SuccessMessage"] = "Course titled " + response.Data.Title + " updated successfully.";

                        return(RedirectToAction("Content", "Courses", new { area = "eLearning", @id = model.Id }));
                    }
                    else
                    {
                        return(RedirectToAction("Index", "Courses", new { area = "eLearning" }));
                    }
                }
                else
                {
                    TempData["ErrorMessage"] = "Failed to edit course.";

                    return(RedirectToAction("Content", "Courses", new { area = "eLearning", @id = model.Id }));
                }
            }

            await GetCategories();

            return(View(model));
        }
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                TempData["ErrorMessage"] = "Cannot find such course.";

                return(RedirectToAction("Index", "Courses", new { area = "eLearning" }));
            }

            var course = await TryGetCourse(id.Value);

            if (course == null)
            {
                TempData["ErrorMessage"] = "Cannot find such course.";

                return(RedirectToAction("Index", "Courses", new { area = "eLearning" }));
            }

            CreateOrEditCourseModel model = _mapper.Map <CreateOrEditCourseModel>(course);

            await GetCategories();

            return(View(model));
        }