public static MachineSettings ForCurentMachine(MG_Settings settingsFile) { MachineSettings ms = null; var otherUsers = settingsFile == null ? new UserSettings[0] : settingsFile.UsersSettings; var machineName = GetMachineName(); if (otherUsers.Length > 0) { foreach (var u in otherUsers) //берём настройки текущей машины от первого пользователя, у кого они есть { var ums = u.MachinesSettings; if (ums != null && ums.Length > 0) { var curentMachine = ums.FirstOrDefault(s => machineName.Equals(s.MachineName)); if (curentMachine != null) { ms = curentMachine; break; } } } } if (ms == null) { ms = new MachineSettings(settingsFile); ms.MachineName = GetMachineName(); } return(ms); }
/// <summary> /// Получение экземпляра для текущего юзера /// </summary> /// <param name="settingFile">Ссыль на файл настроек</param> /// <returns>Возвращает новый экземпляр с проставленным юзером - текущим </returns> public static UserSettings ForCurentUser(MG_Settings settingFile) { var us = new UserSettings(settingFile); us.UserName = Environment.UserName; return(us); }
/// <summary> /// Основной конструктор /// </summary> /// <param name="settingsFile">Ссылка на обёртку файла настроек</param> public UserSettings(MG_Settings settingsFile) { SettingsFile = settingsFile; }
/// <summary> /// Окно выбора файла манфиеста /// </summary> /// <param name="defaultPath">Путь по умочланию</param> /// <param name="pathKey">Ключ для поиска/сохранения пути по умолчанию в Файле настроек</param> /// <returns>Возвращает выбранный файл манифеста или null</returns> public static RTCManifest SelectManifest(string defaultPath = null, string pathKey = null) { try { OpenFileDialog ofd = new OpenFileDialog(); ofd.Multiselect = false; ofd.Title = "Выберите файл Манифеста"; ofd.CheckFileExists = true; ofd.Filter = "XML | *.xml"; MG_Settings settings = null; if (!string.IsNullOrEmpty(pathKey)) { settings = MG_Settings.Load(); if (string.IsNullOrWhiteSpace(defaultPath)) { if (settings.Directories.Contains(pathKey)) //загрузка из файла настроек по ключу каталога по умолчанию { defaultPath = settings.Directories[pathKey]; } } } if (!string.IsNullOrWhiteSpace(defaultPath)) { if (Directory.Exists(defaultPath)) { ofd.InitialDirectory = defaultPath; } } if (ofd.ShowDialog() != true) { return(null); } var pathName = ofd.FileName; RTCManifest manifest = null; switch (Path.GetFileName(pathName).ToLower()) { case "rtcmanifest.xml": manifest = RTCManifest.Load(pathName); break; case "ecrmanifest.xml": manifest = ECRManifest.Load(pathName); break; default: manifest = RTCManifest.Load(pathName); //MessageBox.Show("Не удалось определить тип манифеста"); break; } if (!string.IsNullOrEmpty(pathKey)) { //сохраняем каталог выбранного манифеста в файле настроек settings.Directories.Save(new NamedSettingsValue() { Key = pathKey, Value = manifest.FileInfo.DirectoryName }); } return(manifest); } catch (Exception ex) { LogAndShow("Возникло исключение при загрузке файла манифеста", ex); return(null); } }
public SettingsCollectionWrapper(MG_Settings settings, List <NamedSettingsValue> collection) { m_settingsFile = settings; m_collection = collection; }
public MachineSettings(MG_Settings settingsFile) { m_dirs = new SettingsCollectionWrapper(settingsFile, m_lastDirs); m_files = new SettingsCollectionWrapper(settingsFile, m_lastFiles); }
public void InitSettingsFile(MG_Settings settings) { m_dirs = new SettingsCollectionWrapper(settings, m_lastDirs); m_files = new SettingsCollectionWrapper(settings, m_lastFiles); }