예제 #1
0
        public ActionResult EnrollToCourse(UsersInCourseView userInCourseView)
        {
            this.logger.Info("Entering: " + System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.FullName + ": " + System.Reflection.MethodBase.GetCurrentMethod().Name + " --> " + User.Identity.Name);
            try
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(this.apiMethodsUrl);
                    client.DefaultRequestHeaders.Accept.Add(
                        new MediaTypeWithQualityHeaderValue("application/json")
                        );
                    HttpResponseMessage response = client.GetAsync("api/course/GetCourseById/?id=" + userInCourseView.CourseId).Result;
                    if (response.IsSuccessStatusCode)
                    {
                        Courses course = response.Content.ReadAsAsync <Courses>().Result;
                        //verify if enrollement key is correct
                        if (course.enrollementKey != null && !course.enrollementKey.Equals(userInCourseView.EnrollementKey))
                        {
                            throw new CustomException("Enrollment key is incorrect");
                        }
                    }
                    else
                    {
                        throw new CustomException("Could not complete the operation!");
                    }
                }
                UsersInCourseDTO dto = new UsersInCourseDTO();
                dto.CourseId         = userInCourseView.CourseId;
                dto.UserId           = userInCourseView.UserId;
                dto.EnrollementKey   = userInCourseView.EnrollementKey;
                dto.CourseUserstatus = userInCourseView.EnrollementKey;
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(this.apiMethodsUrl);
                    client.DefaultRequestHeaders.Accept.Add(
                        new MediaTypeWithQualityHeaderValue("application/json")
                        );

                    HttpResponseMessage response = client.PostAsJsonAsync("api/course/EnrollStudentInCourse/?usersInCourse=", dto).Result;
                    if (!response.IsSuccessStatusCode)
                    {
                        throw new CustomException("Could not complete the operation!");
                    }
                }
                return(RedirectToAction("DisplayAllAvailableCourses"));
            }
            catch (CustomException ce)
            {
                this.logger.Trace(ce, "Username: "******"Error"));
            }
            catch (Exception ex)
            {
                this.logger.Trace(ex, "Username: "******"Operation could not be completed! Try again.";
                return(View("Error"));
            }
        }
예제 #2
0
 public HttpResponseMessage EnrollStudentInCourse(UsersInCourseDTO dto)
 {
     try {
         UsersInCourse userInCourse = new UsersInCourse();
         userInCourse.UserId           = dto.UserId;
         userInCourse.CourseId         = dto.CourseId;
         userInCourse.CourseUserstatus = dto.CourseUserstatus;
         this._courseManagement.EnrollStudentInCourse(userInCourse);
         return(Request.CreateResponse(HttpStatusCode.OK));
     }
     catch (Exception) {
         // Log exception code goes here
         return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Error occured while executing method."));
     }
 }