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);
        }
        public async Task <FileStreamResult> Export(string searchString, string selection, ExportType exportType)
        {
            ExportFile file;
            var        data = Enumerable.Empty <Owner>();

            if (string.IsNullOrEmpty(selection))
            {
                if (searchString == "Find model/date/owner...")
                {
                    data = await _service.GetAll <Owner>().ToListAsync();
                }
                else
                {
                    data = await OwnerDataFormatting.Search(_service.GetAll <Owner>(), searchString);
                }
            }
            else
            {
                var names = selection.Trim().Replace("                             ", " ").Split("                            ");
                //names = names.Where(s => !string.IsNullOrWhiteSpace(s) && s.Length > 2).Distinct().ToArray();

                List <Owner> temp = new List <Owner>();
                for (int i = 0; i < names.Count(); i++)
                {
                    temp.Add(await _service.FirstOrDefault <Owner>(x => x.FullName == names[i]).FirstAsync());
                }

                data = temp;
            }

            file = await new ExportService <Owner>().Export(data, exportType);
            return(new FileStreamResult(new MemoryStream(file.Data), file.ContentType)
            {
                FileDownloadName = file.FileName
            });
        }