public ServerResult <List <Conspect> > GetListPaged(GetConspectsListPagedArgs args)
        {
            try
            {
                if (args.PageSize == 0 && args.PageNumber == 0)
                {
                    return new ServerResult <List <Conspect> >
                           {
                               Success = false,
                               Message = "Both page number and page size is 0"
                           }
                }
                ;

                var list = _repository.GetConspectsList(args);

                foreach (var conspect in list)
                {
                }

                return(new ServerResult <List <Conspect> >
                {
                    Success = true,
                    Data = _repository.GetConspectsList(args),
                });
            }
            catch (Exception exc)
            {
                return(new ServerResult <List <Conspect> >
                {
                    Success = false,
                    Message = exc.Message
                });
            }
        }
        public List<Conspect> GetConspectsList(GetConspectsListPagedArgs args)
        {
            var list = _context.Conspects
                .AsQueryable();

            if (args.UserId.HasValue)
                list = list.Where(c => c.UserId == args.UserId.Value);

            if (args.CategoryId.HasValue)
            {
                var categoryIdsList = _context.ConspectsCategories
                    .Where(cat => cat.CategoryId == args.CategoryId.Value)
                    .Select(c => c.ConspectId)
                    .ToList();

                list = list.Where(c => categoryIdsList.Contains(c.Id));
            }

            if (!string.IsNullOrEmpty(args.Title?.Trim()))
                list = list.Where(c => c.Title.Contains(args.Title.Trim()));

            return list.Skip((args.PageNumber - 1) * args.PageNumber)
                .Take(args.PageSize)
                .Select(x => new Conspect
                {
                    Id = x.Id,
                    Title = x.Title,
                    Content = x.Content,
                    ParentId = x.ParentId,
                    Inserted = x.Inserted,
                    Rating = x.Rating,
                    User = new User
                    {
                        FirstName = x.User.FirstName,
                        LastName = x.User.LastName,
                        UserName = x.User.UserName,
                    },
                    Comments = x.Comments.Select(c => new Comment
                    {
                        Content = c.Content,
                        Rating = c.Rating,
                        User = new User
                        {
                            FirstName = c.User.FirstName,
                            LastName = c.User.LastName,
                            UserName = c.User.LastName,
                        }
                    }).ToList(),
                })
                .ToList();
        }
 public ServerResult<List<Conspect>> GetListPaged([FromBody] GetConspectsListPagedArgs args)
 {
     return _service.GetListPaged(args);
 }