Пример #1
0
        public static async Task <bool> Backup(string fileName = null)
        {
            // Získání id složky
            string folderId = await LiveConnectHelper.SearchFolderIdAsync(BackupFolderName);

            if (folderId == null)
            {
                folderId = await LiveConnectHelper.CreateFolderAsync(LiveConnectHelper.Root, BackupFolderName);
            }

            // Nahrajeme soubor a získáme jeho id
            string fileId = null;

            if (folderId != null)
            {
                // Vytvoření dat
                BackupData backupData = new BackupData();
                backupData.Version  = App.VersionString;
                backupData.Created  = DateTime.UtcNow;
                backupData.Settings = Settings.Current;
                backupData.Tasks    = App.Tasks.Tasks;
#if DEBUG
                Formatting formatting = Formatting.Indented;
#else
                Formatting formatting = Formatting.None;
#endif
                string json = JsonConvert.SerializeObject(backupData, formatting);

                // Nahrání
                fileName = string.Format("{0}{1}", fileName ?? DateTime.Now.ToFileName(), BackupFileExtension);
                fileId   = await LiveConnectHelper.UploadAsync(folderId, fileName, json);
            }

            return(fileId != null);
        }
Пример #2
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));
            }
        }