public async Task <IActionResult> GetAllPublic([FromQuery] MemorizeUnitParams memorizeUnitParams)
        {
            //set IsGetTask para
            memorizeUnitParams.IsGetTaskToday = false;

            //get units
            var MemorizeUnits = await _repo.GetMemorizeUnits(memorizeUnitParams);

            //add paination header to response
            Response.AddPagination(MemorizeUnits.CurrentPage, MemorizeUnits.TotalPages, MemorizeUnits.PageSize,
                                   MemorizeUnits.TotalCount);
            return(Ok(MemorizeUnits));
        }
示例#2
0
        public async Task <PagedList <MemorizeUnit> > GetMemorizeUnits(MemorizeUnitParams memorizeUnitParams)
        {
            var MemorizeUnits = _context.MemorizeUnits.AsQueryable();

            //has username then return user Memorize Units, If not return all public Memorize Units
            if (!string.IsNullOrEmpty(memorizeUnitParams.Username))
            {
                MemorizeUnits = MemorizeUnits.Where(x => x.OwnerUsername == memorizeUnitParams.Username);
            }
            else
            {
                if (memorizeUnitParams.IsGetTaskToday)
                {
                    return(null);
                }
                else
                {
                    MemorizeUnits = MemorizeUnits.Where(x => x.IsPrivate == false);
                }
            }

            if (memorizeUnitParams.IsGetTaskToday)
            {
                //get review task today
                MemorizeUnits = MemorizeUnits.Where(x => x.Schedules.Any(y => y.Date.Date == DateTime.Today.Date));
            }

            if (!string.IsNullOrEmpty(memorizeUnitParams.SubjectNameSearch))
            {
                MemorizeUnits = MemorizeUnits.Where(x => x.SubjectName.ToLower().Contains(memorizeUnitParams.SubjectNameSearch.ToLower()));
            }

            if (!string.IsNullOrEmpty(memorizeUnitParams.TitleSearch))
            {
                MemorizeUnits = MemorizeUnits.Where(x => x.Title.ToLower().Contains(memorizeUnitParams.TitleSearch.ToLower()));
            }
            if (!string.IsNullOrEmpty(memorizeUnitParams.TagsSearch))
            {
                MemorizeUnits = MemorizeUnits.Where(x => x.Tags.ToLower().Contains(memorizeUnitParams.TagsSearch.ToLower()));
            }

            return(await PagedList <MemorizeUnit> .CreateAsync(MemorizeUnits, memorizeUnitParams.PageNumber, memorizeUnitParams.PageSize));
        }
        public async Task <IActionResult> GetReviewTaskToday([FromQuery] MemorizeUnitParams memorizeUnitParams)
        {
            //get user name from para,check if user exist
            var userFromRepo = _repo.GetUserByUsername(memorizeUnitParams.Username);

            if (userFromRepo == null)
            {
                return(Unauthorized());
            }

            //set IsGetTask para
            memorizeUnitParams.IsGetTaskToday = true;

            //get units
            var MemorizeUnits = await _repo.GetMemorizeUnits(memorizeUnitParams);

            Response.AddPagination(MemorizeUnits.CurrentPage, MemorizeUnits.TotalPages, MemorizeUnits.PageSize,
                                   MemorizeUnits.TotalCount);
            return(Ok(MemorizeUnits));
        }