// группа пользователя из списка сотрудников (Шифр_отдела: АР, КР-МН, КР-СБ, ВК, ОВ, и т.д.) private static string getUserGroupFromServer(string pathToList) { string nameGroup = ""; // Определение группы по файлу списка пользователей на сервере try { var epplusDll = Path.Combine(_curDllLocation, "EPPlus.dll"); LoadDll.LoadTry(epplusDll); // Копирование файла списка пользователей string fileTemp = Path.GetTempFileName(); File.Copy(pathToList, fileTemp, true); using (var xlPackage = new ExcelPackage(new FileInfo(fileTemp))) { var worksheet = xlPackage.Workbook.Worksheets[1]; int numberRow = 2; while (worksheet.Cells[numberRow, 2].Text.Trim() != "") { if (worksheet.Cells[numberRow, 2].Text.Trim().ToUpper() == Environment.UserName.ToUpper()) { nameGroup = worksheet.Cells[numberRow, 3].Text; break; } numberRow++; } } } catch (Exception ex) { Log.Error(ex, $"Ошибка определена рабочей группы по файлу '{pathToList}'."); } if (string.IsNullOrEmpty(nameGroup)) { Log.Error($"Не определена рабочая группа по файлу UserGroup2.xlsx. {pathToList}"); // проверка была ли группа сохранена ранее в реестре nameGroup = loadUserGroupFromRegistry(); if (string.IsNullOrEmpty(nameGroup)) { // Определение группы по текущим папкам настроек nameGroup = getCurrentGroupFromLocal(); if (string.IsNullOrEmpty(nameGroup)) { Log.Error($"Не определена рабочая группа (Шифр отдела). {Environment.UserName}"); throw new Exception("IsNullOrEmpty(nameGroup)"); } } } else { saveUserGroupToRegistry(nameGroup); } Log.Info($"{Environment.UserName} Группа - {nameGroup}"); return(nameGroup); }
public void Initialize() { // Исключения в Initialize проглотит автокад, без выдачи сообщений. При этом сборка не будет загружена!!!. try { try { PikSettings.LoadSettings(); } catch { } // Запись в лог try { Log.Info($"AutoCAD_PIK_Manager загружен. Версия {Assembly.GetExecutingAssembly().GetName().Version}. Настройки загружены из {PikSettings.CurDllLocation}"); Log.Info($"Путь к сетевой папке настроек - {PikSettings.ServerSettingsFolder}"); Log.Info($"Версия автокада - {Application.Version.ToString()}"); Log.Info($"Версия среды .NET Framework - {Environment.Version}"); } catch { } // Если есть другие запущеннык автокады, то пропускаем копирование файлов с сервера, т.к. многие файлы уже заняты другим процессом автокада. if (!IsProcessAny()) { // Обновление настроек с сервера (удаление и копирование) try { Update.UpdateSettings(); Log.Info("Настройки обновлены. " + Update.GetUpdateInfo()); } catch (System.Exception ex) { try { Log.Error(ex, "Ошибка обновления настроек PikSettings.UpdateSettings();"); } catch { } _err += ex.Message; // Попытка загрузки библиотек LoadDll.LoadRefs(); } try { PikSettings.LoadSettings(); // Перезагрузка настроек (могли обновиться файлы настроек на сервере) // Замена путей к настройкам в файлах инструментальных палитр ToolPaletteReplacePath.Replace(); Log.Info("Настройки загружены."); } catch (System.Exception ex) { try { Log.Error(ex, "Ошибка загрузки настроек PikSettings.LoadSettings();"); } catch { } _err += ex.Message; } } try { Profile profile = new Profile(); // Настройка профиля ПИК в автокаде if (PikSettings.UserGroup.Contains("ГП")) { profile.SetProfilePIK = false; profile.SetTemplate = false; profile.SetToolPalette = false; profile.SetSysVars = PikSettings.GroupFileSettings?.SystemVariables; } profile.SetProfile(); Log.Info("Профиль настроен."); //else //{ //// Загрузка сбороки ГП //string gpdll = Path.Combine(PikSettings.LocalSettingsFolder, @"Script\NET\ГП\PIK_GP_Civil.dll"); //LoadDll.Load(gpdll); //} } catch (System.Exception ex) { try { Log.Error(ex, "Ошибка настройки профиля SetProfile()."); } catch { } _err += ex.Message; } } catch (Settings.Exceptions.NoGroupException) { // Пользователь без группы. return; } catch (System.Exception ex) { try { Log.Error(ex, "LoadSettings"); Log.Info($"AutoCAD_PIK_Manager загружен с ошибками. Версия {Assembly.GetExecutingAssembly().GetName().Version}. Настройки не загружены из {PikSettings.CurDllLocation}"); Log.Info($"Версия автокада - {Application.Version.ToString()}"); Log.Info($"Путь к сетевой папке настроек - {PikSettings.ServerSettingsFolder}"); } catch { } _err += ex.Message; } // Загрузка библиотек LoadDll.LoadTry(Path.Combine(PikSettings.CurDllLocation, "AcadLib.dll")); //// Конекторы к базе MDM //LoadDll.LoadTry(Path.GetFullPath(Path.Combine(PikSettings.CurDllLocation, @"..\Script\NET\MDM_Connector.dll"))); //LoadDll.LoadTry(Path.GetFullPath(Path.Combine(PikSettings.CurDllLocation, @"..\Script\NET\MDBCToLISP.dll"))); }