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")); } }
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.")); } }