Example #1
0
        public static async Task SortAsyncLowSpeed()
        {
            int MaxNumber;

            End_sort = false;
            Cache_Processed.Clear();
            Cache_Processed_Media.Clear();
            Cache_Processed_Doc.Clear();
            Cache_Processed_File.Clear();
            Cache_Recent_Media.Clear();
            Cache_Recent_Music.Clear();
            Cache_Processed_Today.Clear();

/*            Debug.WriteLine(" Sort_in");
 *          Debug.WriteLine(ItemAccess.Cache.Count);
 *          Debug.WriteLine(ItemAccess.Cache_Processed_Media.Count);
 *          Debug.WriteLine(ItemAccess.Cache_Processed_Doc.Count);
 *          Debug.WriteLine(ItemAccess.Cache_Processed_File.Count);*/
            MaxNumber = UserSettings.GetMaxNumber();
            var inputFiles = new ObservableCollection <StorageFile>();

            foreach (var input in ItemAccess.Cache)
            {
                Debug.WriteLine(" Foreach");
                Debug.WriteLine(ItemAccess.Cache.Count);
                inputFiles.Add(input);
            }
            while (inputFiles.Count != 0 && !End_sort)
            {
/*                Debug.WriteLine(" Sorting");
 *              Debug.WriteLine(ItemAccess.Cache.Count);
 *              Debug.WriteLine(ItemAccess.Cache_Processed_Media.Count);
 *              Debug.WriteLine(ItemAccess.Cache_Processed_Doc.Count);
 *              Debug.WriteLine(ItemAccess.Cache_Processed_File.Count);*/
                StorageFile inputFile = inputFiles.LastOrDefault();
                for (int i = inputFiles.Count - 1; i >= 0; i--)
                {
                    if (inputFiles[i].DateCreated > inputFile.DateCreated)
                    {
                        inputFile = inputFiles[i];
                    }
                }
                inputFiles.Remove(inputFile);
                if (ItemAccess.End_sort)
                {
                    Cache_Processed.Clear();
                    Cache_Processed_Media.Clear();
                    Cache_Processed_Doc.Clear();
                    Cache_Processed_File.Clear();
                }

                var type = FileType_check(inputFile);
                var date = inputFile.DateCreated;
                //source = await BitmapProcess(inputFile);//图像编码
                if (Today_check(date.DateTime))
                {
                    if (!Noticed)
                    {
                        Noticed = true;
                        Notifications_.Notifications_Tocast();
                    }
                    Cache_Processed_Today.Add(new Items {
                        AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                    });
                }
                if (Cache_Processed.Count <= MaxNumber)
                {
                    Cache_Processed.Add(new Items {
                        AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                    });
                    if (type == "Music" || type == "Picture" || type == "Video")
                    {
                        if (type == "Music" && Cache_Recent_Music.Count <= 15)
                        {
                            Cache_Recent_Music.Add(new Items {
                                AccessSource = await ThumbnailProcess_HQ(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                            });
                        }
                        else if (Cache_Recent_Media.Count <= 15 && type != "Music")
                        {
                            Cache_Recent_Media.Add(new Items {
                                AccessSource = await ThumbnailProcess_HQ(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                            });
                        }
                        Cache_Processed_Media.Add(new Items {
                            AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                        });
                    }
                    else if (type == "Doc")
                    {
                        if (Cache_Recent_Doc.Count <= 15)
                        {
                            Cache_Recent_Doc.Add(new Items {
                                AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                            });
                        }
                        Cache_Processed_Doc.Add(new Items {
                            AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                        });
                    }
                    else
                    {
                        Cache_Processed_File.Add(new Items {
                            AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                        });
                    }
                }
            }
            inputFiles.Clear();
            // if (Cache_Processed_Today.Count > 0) ;
            //Notifications_.Notifications_Tocast(Cache_Processed_Today[0].StorageFile_);

/*            Debug.WriteLine(" Sort_out");
 *          Debug.WriteLine(ItemAccess.Cache.Count);
 *          Debug.WriteLine(ItemAccess.Cache_Processed_Media.Count);
 *          Debug.WriteLine(ItemAccess.Cache_Processed_Doc.Count);
 *          Debug.WriteLine(ItemAccess.Cache_Processed_File.Count);*/
        }
Example #2
0
        public static async Task SortAsync()
        {
            int MaxNumber;

            End_sort = false;
            Cache_Processed.Clear();
            Cache_Processed_Media.Clear();
            Cache_Processed_Doc.Clear();
            Cache_Processed_File.Clear();
            Cache_Recent_Media.Clear();
            Cache_Recent_Music.Clear();
            Cache_Processed_Today.Clear();

/*            Debug.WriteLine(" Sort_in");
 *          Debug.WriteLine(ItemAccess.Cache.Count);
 *          Debug.WriteLine(ItemAccess.Cache_Processed_Media.Count);
 *          Debug.WriteLine(ItemAccess.Cache_Processed_Doc.Count);
 *          Debug.WriteLine(ItemAccess.Cache_Processed_File.Count);*/
            MaxNumber = UserSettings.GetMaxNumber();
            try {
                for (int i = 0; i < ItemAccess.Cache.Count; i++)
                {
                    for (int j = i + 1; j < ItemAccess.Cache.Count; j++)
                    {
                        if (ItemAccess.Cache[i].DateCreated < ItemAccess.Cache[j].DateCreated)
                        {
                            var temp = ItemAccess.Cache[i];
                            ItemAccess.Cache[i] = ItemAccess.Cache[j];
                            ItemAccess.Cache[j] = temp;
                        }
                    }
                }
                foreach (var inputFile in ItemAccess.Cache)
                {
                    if (ItemAccess.End_sort)
                    {
                        Cache_Processed.Clear();
                        Cache_Processed_Media.Clear();
                        Cache_Processed_Doc.Clear();
                        Cache_Processed_File.Clear();
                    }

                    var type = FileType_check(inputFile);
                    var date = inputFile.DateCreated;
                    //source = await BitmapProcess(inputFile);//图像编码
                    if (Today_check(date.DateTime))
                    {
                        if (!Noticed)
                        {
                            Noticed = true;
                            Notifications_.Notifications_Tocast();
                        }
                        Cache_Processed_Today.Add(new Items {
                            AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                        });
                    }
                    if (Cache_Processed.Count <= MaxNumber)
                    {
                        Cache_Processed.Add(new Items {
                            AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                        });
                        if (type == "Music" || type == "Picture" || type == "Video")
                        {
                            if (type == "Music" && Cache_Recent_Music.Count <= 15)
                            {
                                Cache_Recent_Music.Add(new Items {
                                    AccessSource = await ThumbnailProcess_HQ(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                                });
                            }
                            else if (Cache_Recent_Media.Count <= 15 && type != "Music")
                            {
                                Cache_Recent_Media.Add(new Items {
                                    AccessSource = await ThumbnailProcess_HQ(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                                });
                            }
                            Cache_Processed_Media.Add(new Items {
                                AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                            });
                        }
                        else if (type == "Doc")
                        {
                            if (Cache_Recent_Doc.Count <= 15)
                            {
                                Cache_Recent_Doc.Add(new Items {
                                    AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                                });
                            }
                            Cache_Processed_Doc.Add(new Items {
                                AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                            });
                        }
                        else
                        {
                            Cache_Processed_File.Add(new Items {
                                AccessSource = await ThumbnailProcess(inputFile), Date = inputFile.DateCreated.ToString(), Type = inputFile.DisplayType, Name = inputFile.Name, Path = inputFile.Path, StorageFile_ = inputFile, Size = await SizeOfFileAsync(inputFile)
                            });
                        }
                    }
                    // if (Cache_Processed_Today.Count > 0) ;
                    //Notifications_.Notifications_Tocast(Cache_Processed_Today[0].StorageFile_);

/*                    Debug.WriteLine(" Sort_out");
 *                  Debug.WriteLine(ItemAccess.Cache.Count);
 *                  Debug.WriteLine(ItemAccess.Cache_Processed_Media.Count);
 *                  Debug.WriteLine(ItemAccess.Cache_Processed_Doc.Count);
 *                  Debug.WriteLine(ItemAccess.Cache_Processed_File.Count);*/
                }
            }
            catch {
                //dosomething
            }
        }