예제 #1
0
        private async Task RefreshBackupList()
        {
            // Získání souborů
            List <OneDriveFileInfo> files = new List <OneDriveFileInfo>();

            if (IsLoggedIn)
            {
                // Získání složky
                string folderId = await LiveConnectHelper.SearchFolderIdAsync(BackupFolderName);

                // Získání seznamu souborů se zálohami
                if (folderId != null)
                {
                    files = await LiveConnectHelper.GetFilesInfoAsync(folderId, BackupFileExtension);
                }
            }

            // Vytvoření seznamu
            List <RestoreListPickerItem> list = new List <RestoreListPickerItem>();

            foreach (OneDriveFileInfo fileInfo in files)
            {
                string fileName = fileInfo.Name.Replace(BackupFileExtension, "");

                try
                {
                    DateTime createdDate = DateTimeExtensions.FromFileName(fileName);
                    list.Add(new RestoreListPickerItem(createdDate.ToString(), fileInfo, createdDate));
                }
                catch (FormatException)
                {
                    // Při parsování datumu, takže
                }
            }

            // Seřazení podle vytvoření
            list.Sort((f1, f2) =>
            {
                return(f2.Value2.CompareTo(f1.Value2));
            });

            if (list.Count > _maxBackupsInList)
            {
                list.RemoveRange(_maxBackupsInList, list.Count - _maxBackupsInList);
            }

            // Naplnění pickeru
            if (list.Count > 0)
            {
                list[0].Label += string.Format(" ({0})", AppResources.BackupLatest);
                BackupList     = new ObservableCollection <RestoreListPickerItem>(list);
            }
            else
            {
                BackupList.Clear();
                BackupList.Add(new RestoreListPickerItem(AppResources.NoBackups, null, DateTime.MinValue));
            }
        }