public ActionResult ById(Guid id)
        {
            CourseByIdViewModel viewModel = null;

            if (id == default(Guid))
            {
                viewModel = new CourseByIdViewModel();
            }
            else
            {
                var course = this.courseService
                             .GetAll()
                             .Where(c => c.Id == id)
                             .FirstOrDefault();

                bool isUserEnrolledInCourse = false;

                if (this.HttpContext.User.Identity.IsAuthenticated)
                {
                    isUserEnrolledInCourse = this.userService
                                             .GetCourses(this.User.Identity.Name)
                                             .Contains(course);
                }

                viewModel = this.courseService
                            .GetAll()
                            .Where(c => c.Id == id)
                            .Select(x => new CourseByIdViewModel
                {
                    Title                 = x.Title,
                    Description           = x.Description,
                    StartsOn              = x.StartsOn,
                    EndsOn                = x.EndsOn,
                    EnrolledStudentsCount = x.Students.Count(),
                    IsCurrentUserEnrolled = isUserEnrolledInCourse,
                    CourseId              = x.Id
                })
                            .FirstOrDefault();
            }

            return(View("CourseInfo", viewModel));
        }
        public IActionResult ById(int id)
        {
            CourseByIdViewModel viewModel = this.coursesService.GetById <CourseByIdViewModel>(id);

            return(this.View(viewModel));
        }