Пример #1
0
        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);
        }
Пример #2
0
        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);
        }