Beispiel #1
0
        public async Task <ActionResult> Learners(int?id, int courseEventId = -1)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }

            var data = new CourseEventModel();

            if (courseEventId < 0)
            {
                data = await TryGetEventByCourseId(id.Value);
            }
            else
            {
                data = await TryGetCourseEvent(courseEventId);
            }

            if (data == null)
            {
                TempData["ErrorMessage"] = "Cannot get course/event info";

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

            LearnerEnrollmentModel model = new LearnerEnrollmentModel
            {
                CourseId      = id.Value,
                CourseEventId = data.Id
            };

            ViewBag.Role = RoleNames.eLearningLearner;

            return(View(model));
        }
Beispiel #2
0
        public ActionResult Create(int?id)
        {
            if (id == null)
            {
                TempData["ErrorMessage"] = "Cannot find course to Create the session.";
                return(RedirectToAction("Index", "Courses", new { area = "eLearning" }));
            }

            CourseEventModel model = new CourseEventModel();

            model.CourseId = id.Value;

            return(View(model));
        }
Beispiel #3
0
        public async Task <ActionResult> Create(CourseEventModel model)
        {
            if (ModelState.IsValid)
            {
                var response = await WepApiMethod.SendApiAsync <TrxResult <CourseEvent> >(HttpVerbs.Post, CourseEventApiUrl.Create, model);

                if (response.isSuccess)
                {
                    if (response.Data.IsSuccess)
                    {
                        await LogActivity(Modules.Learning, $"A session titled {model.Name} is Created for Course Id : {model.CourseId}");

                        TempData["SuccessMessage"] = $"A session titled {model.Name} is created. You can now invite students to the session.";

                        return(RedirectToAction(nameof(InviteLearners), "CourseEvents",
                                                new
                        {
                            area = "eLearning",
                            courseId = model.CourseId,
                            eventId = response.Data.ObjectId,
                            enrollmentCode = model.EnrollmentCode,
                            title = model.Name
                        }));
                    }
                }
                else
                {
                    TempData["ErrorMessage"] = $"Failed to create a session for this Course. - {response.Data}";
                }
            }
            else
            {
                await LogError(Modules.Learning, $"Fail create session for Course Id {model.Id}");

                TempData["ErrorMessage"] = $"Failed to create a session for this Course.";
            }

            return(RedirectToAction("Content", "Courses", new { area = "eLearning", id = model.CourseId }));
        }
        public async Task <IHttpActionResult> Create(CourseEventModel model)
        {
            if (ModelState.IsValid)
            {
                var entity = await db.Courses.FindAsync(model.CourseId);

                if (entity == null)
                {
                    return(BadRequest());
                }

                var courseEvent = _mapper.Map <CourseEvent>(model);

                courseEvent.Status = entity.ViewCategory == ViewCategory.Private ?
                                     CourseEventStatus.AvailableToPrivate : CourseEventStatus.AvailableToPublic;

                try
                {
                    db.CourseEvents.Add(courseEvent);

                    await db.SaveChangesAsync();
                }
                catch (Exception e)
                {
                    return(BadRequest("Fail save event. - " + e.Message + " " + e.InnerException));
                }

                if (model.HasGroup)
                {
                    var group = new Group
                    {
                        CourseEventId  = courseEvent.Id,
                        CourseId       = model.CourseId,
                        EnrollmentCode = model.EnrollmentCode,
                        CreatedBy      = model.CreatedBy,
                        UpdatedBy      = model.CreatedBy,
                        Description    = model.Description,
                        IsVisible      = true,
                        Name           = model.Name,
                    };

                    try
                    {
                        db.Groups.Add(group);

                        await db.SaveChangesAsync();

                        courseEvent.GroupId = group.Id;
                    }
                    catch (Exception e)
                    {
                        return(BadRequest("Session created, but group cannot be created"));
                    }

                    db.SetModified(courseEvent);
                    await db.SaveChangesAsync();
                }

                TrxResult <CourseEvent> response = new TrxResult <CourseEvent>
                {
                    CourseId  = model.CourseId,
                    IsSuccess = true,
                    Message   = "Success",
                    ObjectId  = courseEvent.Id,
                };

                return(Ok(response));
            }

            return(BadRequest("Invalid data"));
        }