public void SolutionRecoverStart(bool showRecoverPageAnyway = false) { ObservableList <RecoveredItem> recovredItems = new ObservableList <RecoveredItem>(); if (Directory.Exists(mRecoverFolderPath)) { NewRepositorySerializer serializer = new NewRepositorySerializer(); foreach (var directory in new DirectoryInfo(mRecoverFolderPath).GetDirectories()) { string timestamp = directory.Name.ToString().Replace("AutoSave_", string.Empty); IEnumerable <FileInfo> files = directory.GetFiles("*", SearchOption.AllDirectories); foreach (FileInfo file in files) { try { RecoveredItem recoveredItem = new RecoveredItem(); recoveredItem.RecoveredItemObject = serializer.DeserializeFromFile(file.FullName); recoveredItem.RecoverDate = timestamp; recoveredItem.RecoveredItemObject.FileName = file.FullName; recoveredItem.RecoveredItemObject.ContainingFolder = file.FullName.Replace(directory.FullName, "~"); recoveredItem.Status = eRecoveredItemStatus.PendingRecover; recovredItems.Add(recoveredItem); } catch (Exception ex) { Reporter.ToLog(eLogLevel.ERROR, "Failed to fetch recover item : " + file.FullName, ex); } } } if (recovredItems.Count == 0) { CleanUp(); //have empty folders } } if (recovredItems.Count > 0 || showRecoverPageAnyway) { RepositoryItemHelper.RepositoryItemFactory.ShowRecoveryItemPage(recovredItems); } }
public void SolutionRecoverStart(bool showRecoverPageAnyway = false) { ObservableList <RecoveredItem> recovredItems = new ObservableList <RecoveredItem>(); if (Directory.Exists(mRecoverFolderPath)) { NewRepositorySerializer serializer = new NewRepositorySerializer(); foreach (var directory in new DirectoryInfo(mRecoverFolderPath).GetDirectories()) { string timestamp = directory.Name.ToString().Replace("AutoSave_", string.Empty); IEnumerable <FileInfo> files = directory.GetFiles("*", SearchOption.AllDirectories); foreach (FileInfo file in files) { RecoveredItem recoveredItem = new RecoveredItem(); recoveredItem.RecoveredItemObject = serializer.DeserializeFromFile(file.FullName); recoveredItem.RecoverDate = timestamp; recoveredItem.RecoveredItemObject.FileName = file.FullName; recoveredItem.RecoveredItemObject.ContainingFolder = file.FullName.Replace(directory.FullName, "~"); recoveredItem.Status = eRecoveredItemStatus.PendingRecover; recovredItems.Add(recoveredItem); } } if (recovredItems.Count == 0) { CleanUp(); //have empty folders } } //show recover page if (recovredItems.Count > 0 || showRecoverPageAnyway) { RecoverPage recoverPage = new SolutionAutoSaveAndRecover.RecoverPage(recovredItems); recoverPage.ShowAsWindow(eWindowShowStyle.Dialog); } }