Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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());
        }