public IActionResult FilesSearch(FilesSearchTypes searchType, string searchQuery) { if (string.IsNullOrWhiteSpace(searchQuery)) { return(View()); } IEnumerable <UserFileModel> userFileCollection = null; switch (searchType) { case FilesSearchTypes.ByName: userFileCollection = GetUserFileCollection(_hostingCore.GetFilesByName, searchQuery); break; case FilesSearchTypes.ByExtension: userFileCollection = GetUserFileCollection(_hostingCore.GetFilesByExtension, searchQuery); break; case FilesSearchTypes.ByCategory: userFileCollection = GetUserFileCollection(_hostingCore.GetFilesByCategory, searchQuery); break; } var filesSearchModel = new FilesSearchModel { UserFileCollection = userFileCollection, SearchQuery = searchQuery, SearchType = searchType }; return(View(filesSearchModel)); }
public async Task <IActionResult> MyFiles(string catalogName, string searchString) { if (Request.Headers["Referer"].ToString() != null) { ViewData["Reffer"] = Request.Headers["Referer"].ToString(); } // Use LINQ to get list of genres. IQueryable <string> genreQuery = from m in _context.Catalog orderby m.Name select m.Name; var user = await _context.User.FirstOrDefaultAsync(m => m.Login == User.Identity.Name); var files = from m in _context.File where m.UserId == user.Id select m; if (!string.IsNullOrEmpty(searchString)) { files = files.Where(s => s.Name.Contains(searchString)); } if (!string.IsNullOrEmpty(catalogName)) { files = files.Where(x => x.Catalog.Name == catalogName); } var catalogNameVM = new FilesSearchModel { Catalogs = new SelectList(await genreQuery.Distinct().ToListAsync()), Files = await files.ToListAsync() }; foreach (var item in catalogNameVM.Files) { item.User = user; item.Catalog = await _context.Catalog.FirstOrDefaultAsync(m => m.Id == item.CatalogId); } return(View(catalogNameVM)); }
public async Task <IActionResult> Index(string catalogName, string searchString) { // Use LINQ to get list of genres. IQueryable <string> genreQuery = from m in _context.Catalog orderby m.Name select m.Name; var files = from m in _context.File select m; if (!string.IsNullOrEmpty(searchString)) { files = files.Where(s => s.Name.Contains(searchString)); } if (!string.IsNullOrEmpty(catalogName)) { files = files.Where(x => x.Catalog.Name == catalogName); } var catalogNameVM = new FilesSearchModel { Catalogs = new SelectList(await genreQuery.Distinct().ToListAsync()), Files = await files.ToListAsync() }; foreach (var item in catalogNameVM.Files) { item.User = await _context.User.FirstOrDefaultAsync(m => m.Id == item.UserId); item.Catalog = await _context.Catalog.FirstOrDefaultAsync(m => m.Id == item.CatalogId); } return(View(catalogNameVM)); }