public async Task <IActionResult> TvShows(string order = null) { var model = new TvShowViewModel { Order = order, files = analysisService.FindVideo(ShowSearchLocation) }; model.files = readService.ExtractMetaInfoFromMediaTitle(model.files).SuccessFiles; if (string.IsNullOrEmpty(order)) { model.files = model.files.Where(x => x.MediaInformation.IsMovie == false && x.MediaInformation.IsPersonal == false).OrderBy(x => x.MediaInformation.Name).ToList(); List <string> searchedFiles = new List <string>(); foreach (var f in model.files) { var matchName = searchedFiles.FirstOrDefault(x => x.Equals(f.MediaInformation.Name)); if (string.IsNullOrEmpty(matchName)) { searchedFiles.Add(f.MediaInformation.Name); var cacheResult = await tvdbService.GetFileCachedInfo(f); if (cacheResult != null) { f.FileImageUrl = cacheResult.SiteRelativeImageUrl; } else { f.FileImageUrl = DefaultImaageUrl; } } else { f.FileImageUrl = model.files.FirstOrDefault(x => x.MediaInformation.Name.Equals(f.MediaInformation.Name)).FileImageUrl; } } } else if (order.Equals("CreatedDesc", StringComparison.OrdinalIgnoreCase)) { model.files = model.files .Where(x => x.MediaInformation.IsMovie == false && x.MediaInformation.IsPersonal == false) .OrderByDescending(x => x.FileInfo.CreationTime).ToList(); } return(View(model)); }