public JsonResult LastUnit(SchoolGetLastUnitInput input)
        {
            var user = GetUser(HttpContext);

            var lastUnit = _unitReadService
                           .FindBy(lu => lu.CourseId == input.CourseId && lu.OwnerUserId == user.Id).Data
                           .OrderByDescending(lu => lu.UnitId)
                           .FirstOrDefault();

            return(lastUnit == null ? null : new JsonResult(lastUnit.UnitId));
        }
        public JsonResult ReadPercentage(SchoolGetLastUnitInput input)
        {
            var user = GetUser(HttpContext);

            var lastRead = _unitReadService
                           .GetAllIncluding(ur => ur.Unit)
                           .Where(lu => lu.CourseId == input.CourseId && lu.OwnerUserId == user.Id)
                           .OrderByDescending(lu => lu.UnitId)
                           .FirstOrDefault();

            if (lastRead == null)
            {
                return(new JsonResult(0));
            }

            var unitsCount = _unitService.GetUnitsCount(input.CourseId);

            var percentage = (lastRead.Unit.PageNumber * 100) / unitsCount;

            return(new JsonResult(percentage));
        }
        //[ResponseCache(Duration = 3600, NoStore = false, Location = ResponseCacheLocation.Any, VaryByQueryKeys = new []{"*"})]
        public JsonResult UnitCount(SchoolGetLastUnitInput input)
        {
            var unitsCount = _unitService.GetUnitsCount(input.CourseId);

            return(new JsonResult(unitsCount));
        }