public ActionResult ShowMag(ShowMagType type = ShowMagType.All, int jobId = 0) { var data = ScanDataBaseManager.GetAllMagByJob(jobId).Where(x => !string.IsNullOrEmpty(x.AvId)).GroupBy(x => x.AvId).ToDictionary(x => x.Key, x => x.ToList()); Dictionary <ShowMagKey, List <RemoteScanMag> > ret = new Dictionary <ShowMagKey, List <RemoteScanMag> >(); foreach (var d in data) { if (d.Value.Count > 0) { var key = new ShowMagKey(); key.Key = d.Key; key.Type |= ShowMagType.All; //没有已存在文件 if (d.Value.FirstOrDefault().SearchStatus == 1) { d.Value.ForEach(x => x.ClassStr = "card bg-primary"); key.Type |= ShowMagType.OnlyNotExist; } //有已存在文件 if (d.Value.FirstOrDefault().SearchStatus == 2) { d.Value.ForEach(x => x.ClassStr = "card bg-success"); key.Type |= ShowMagType.OnlyExist; } if (d.Value.Exists(x => x.MagSize > 0)) { key.Type |= ShowMagType.HasMagSize; } else { key.Type |= ShowMagType.HasNoMagSize; } if (!string.IsNullOrEmpty(d.Value.FirstOrDefault().MatchFile)) { d.Value.ForEach(x => x.MatchFileSize = new FileInfo(x.MatchFile).Length); if (d.Value.Max(x => x.MagSize >= x.MatchFileSize)) { key.Type |= ShowMagType.GreaterThenExist; } } else { if (d.Value.Max(x => x.MagSize > 0)) { key.Type |= ShowMagType.GreaterThenNotExist; } } if (d.Value.Exists(x => x.MagTitle.Contains(d.Key) || x.MagTitle.Contains(d.Key.Replace("-", "")))) { ret.Add(key, d.Value); } } } ret = ret.Where(x => x.Key.Type.HasFlag(type)).ToDictionary(x => x.Key, x => x.Value); ViewData.Add("jobId", jobId); ViewData.Add("data", ret); return(View()); }
public ActionResult ShowMag(ShowMagType type = ShowMagType.All, int jobId = 0) { var data = ScanDataBaseManager.GetAllMagByJob(jobId).Where(x => !string.IsNullOrEmpty(x.AvId)).GroupBy(x => x.AvId).ToDictionary(x => x.Key, x => x.ToList()); Dictionary <ShowMagKey, List <RemoteScanMag> > ret = new Dictionary <ShowMagKey, List <RemoteScanMag> >(); foreach (var d in data) { if (d.Value.Count > 0) { var key = new ShowMagKey(); key.Key = d.Key; key.Type |= ShowMagType.All; //没有已存在文件 if (d.Value.FirstOrDefault().SearchStatus == 1) { d.Value.ForEach(x => x.ClassStr = "card bg-primary"); key.Type |= ShowMagType.OnlyNotExist; } //有已存在文件 if (d.Value.FirstOrDefault().SearchStatus == 2) { d.Value.ForEach(x => x.ClassStr = "card bg-success"); key.Type |= ShowMagType.OnlyExist; } if (d.Value.Exists(x => x.MagSize > 0) || (d.Value.Exists(x => x.MagTitle.ToUpper().Contains("HD")) || d.Value.Exists(x => x.MagTitle.ToUpper().Contains("FHD")))) { key.Type |= ShowMagType.HasMagSize; } else { key.Type |= ShowMagType.HasNoMagSize; } if (!string.IsNullOrEmpty(d.Value.FirstOrDefault().MatchFile)) { var count = d.Value.Count; //扫描的时候文件在浏览的时候删除或者移动了位置,重新定位 if (d.Value.Exists(x => !System.IO.File.Exists(x.MatchFile))) { var newFiles = new EverythingHelper().SearchFile(d.Value.FirstOrDefault().AvId + "-" + d.Value.FirstOrDefault().AvName, Model.Common.EverythingSearchEnum.Video); int i = 0; foreach (var dTemp in d.Value) { if (i < newFiles.Count) { dTemp.MatchFile = newFiles[i++].FullName; } } count = newFiles.Count; } d.Value.Take(count).ForEach(x => x.MatchFileSize = new FileInfo(x.MatchFile).Length); if (d.Value.Max(x => x.MagSize >= x.MatchFileSize)) { key.Type |= ShowMagType.GreaterThenExist; } } else { if (d.Value.Max(x => x.MagSize > 0)) { key.Type |= ShowMagType.GreaterThenNotExist; } } if (d.Value.Exists(x => x.MagTitle.Contains(d.Key) || x.MagTitle.Contains(d.Key.Replace("-", "")))) { ret.Add(key, d.Value); } } } ret = ret.Where(x => x.Key.Type.HasFlag(type)).ToDictionary(x => x.Key, x => x.Value); ViewData.Add("jobId", jobId); ViewData.Add("data", ret); return(View()); }