public async Task <PagedList <Owner> > IndexRequest <T>(IndexRequestModel request) where T : class
        {
            var pagedList = new PagedList <Owner>();
            var list      = new List <Owner>();
            int count     = await _service.Count <Owner>();;


            var data     = Enumerable.Empty <Owner>();
            var query    = Enumerable.Empty <Owner>();
            var searched = false;

            // Search
            if (!string.IsNullOrEmpty(request.SearchString))
            {
                query = await OwnerDataFormatting.Search(_service.GetAll <Owner>(), request.SearchString);

                searched = true;
            }

            // Sort
            if (!string.IsNullOrEmpty(request.SortVariable))
            {
                if (searched)
                {
                    data = OwnerDataFormatting.Sort <Owner>(query, request.SortVariable);
                }
                else
                {
                    data = OwnerDataFormatting.Sort <Owner>(_service.GetAll <Owner>(), request.SortVariable);
                }

                foreach (var item in data)
                {
                    list.Add(item);
                }

                pagedList.Initialize(list.Skip(request.Page * request.PageSize).Take(request.PageSize), request, count);
            }
            // Index request without modifiers
            else
            {
                data = OwnerDataFormatting.Sort <Owner>(_service.GetAll <Owner>(), "Date_desc");

                foreach (var item in data)
                {
                    list.Add(item);
                }

                pagedList.Initialize(list.Skip(request.Page * request.PageSize).Take(request.PageSize), request, count);
            }

            return(pagedList);
        }