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"));
            }
        }
        //
        // GET: /Student/EnrollToCourse

        public ActionResult EnrollToCourse(int id = 0)
        {
            this.logger.Info("Entering: " + System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.FullName + ": " + System.Reflection.MethodBase.GetCurrentMethod().Name + " --> " + User.Identity.Name);
            var _userId      = Session["UserId"];
            var _sessionUser = Convert.ToInt32(_userId);
            UsersInCourseView userInCourseView = new UsersInCourseView();

            userInCourseView.CourseId = id;
            userInCourseView.UserId   = (int)_userId;
            return(View(userInCourseView));
        }