private async Task <T> ProcessDirectoryChanges <T>(T item) where T : FileSystemItem { var serializedDirectory = new FileSystemDirectorySerializer().Serialize(FileSystemItems.Values.Where(p => p.HasParent)); await LocalStorageRepository.SetItem(LocalStorageDirectoryFileName, serializedDirectory); DirectoryChanged?.Invoke(this, EventArgs.Empty); return(item); }
private async Task EnsureInitialized() { if (!IsInitialized) { try { var serializedDirectory = await LocalStorageRepository.GetItem(LocalStorageDirectoryFileName); if (!String.IsNullOrWhiteSpace(serializedDirectory)) { var dtos = new FileSystemDirectorySerializer().Deserialize(serializedDirectory).ToList(); await RestoreFromDto(dtos, RootFolder.Key); } } catch (Exception ex) { Logger.LogError(ex, "Initialization error"); } IsInitialized = true; } }