public List <RowBase> GetListBases(MainWindow main) { List <RowBase> list = new List <RowBase>(); string pathIbases = DefaultValues.GetNameFileIbases(_nameUser); string pathUserDir = DefaultValues.GetPathUserDir(_nameUser); try { new DirectoryInfo(pathUserDir).GetAccessControl(); if (File.Exists(pathIbases)) { ReadFileIbases(list, pathIbases); RemoveIncorrectRows(list); } else { throw new DirectoryNotFoundException(pathIbases); } } catch (DirectoryNotFoundException) { Dialog.ShowMessage($"Файл списка баз не существует."); } catch (UnauthorizedAccessException) { if (_tryGetAccess) { Dialog.ShowMessage($"Нет доступа к файлу списка баз: " + $"\n{pathIbases}"); } else if (Dialog.DialogQuestion($"Нет доступа к файлу списка баз: " + $"\n{pathIbases}" + $"\nПопробовать получить доступ?")) { _tryGetAccess = true; Access.TryGetAccess(pathUserDir); Thread.Sleep(1 * 1000); main.Activate(); Dialog.ShowMessage("Вы уже должны были получить запрос на получение доступа в каталог выбранного пользователя." + "\nПосле закрытия этого окна будет выполнена попытка чтения данных."); GetListBases(main); //Process process = new Access(pathUserDir).TryGetAccess(); //if (process != null) //{ // process.EnableRaisingEvents = true; // process.Exited += Process_Exited; // process.Start(); // process.WaitForExit(); // Dialog.ShowMessage("Вы уже должны были получить запрос на получение доступа." + // "\nПосле закрытия каталога будет выполнен повторный запрос на получение данных."); //} //else // GetListBases(); } } catch (Exception ex) { Dialog.ShowMessage("Произошла непредвиденная ошибка."); Dialog.ShowMessage(ex.Message); } return(list); }
private void ReadCacheAppData(ref IEnumerable <RowBase> list, ref ulong totalByte, ref string total, List <RowBase> listCache) { string pathCache = DefaultValues.GetNameDirCacheAppData(_nameUser); ReadCachePath(ref list, ref totalByte, ref total, listCache, pathCache, TypeCache.AppData); }