/// <summary> /// Создать главную модель, вызывается из Lua /// </summary> /// <returns></returns> public IProjectModel CreateMainModel() { IProjectModel model = new CurrentProjectModel(); interprojectExchange.AddModel(model); return(model); }
/// <summary> /// Установка IP-адреса для альтернативных моделей из главной модели /// </summary> private void SetIPFromMainModel(string projName) { CurrentProjectModel mainModel = interprojectExchange.MainModel; string alreadySelectedProject = mainModel.SelectedAdvancedProject; mainModel.SelectedAdvancedProject = interprojectExchange .MainProjectName; IProjectModel model = interprojectExchange.GetModel(projName); model.PacInfo.IP = mainModel.PacInfo.IP; mainModel.SelectedAdvancedProject = alreadySelectedProject; }
private void PACSettingsForm_Load(object sender, EventArgs e) { interprojectExchange = InterprojectExchange.GetInstance(); mainModel = interprojectExchange.MainModel; projectsSendingFromMain = new Dictionary <string, PacInfo>(); projectsSendingToMain = new Dictionary <string, PacInfo>(); WorkWithProjectsData(true); projectBeforeOpenForm = interprojectExchange.Models .Where(x => x.Selected == true) .Select(x => x.ProjectName) .FirstOrDefault(); }
/// <summary> /// Генерация файла для текущего проекта /// </summary> /// <returns>Содержимое файла для сохранения</returns> private string SaveMainProject() { var remoteGateWays = new List <string>(); var sharedDevices = new List <string>(); string[] loadedAdvancedModelsNames = interprojectExchange .LoadedAdvancedModelNames; CurrentProjectModel mainModel = interprojectExchange.MainModel; bool invertSignals = false; var advancedModels = new List <IProjectModel>(); for (int i = 0; i < loadedAdvancedModelsNames.Length; i++) { IProjectModel advancedModel = interprojectExchange .GetModel(loadedAdvancedModelsNames[i]); advancedModels.Add(advancedModel); } advancedModels = advancedModels.OrderBy(x => x.PacInfo.Station) .ToList(); foreach (var model in advancedModels) { string projectName = model.ProjectName; // SelectModel - с каким проектом работаем, // влияет на список сигналов с mainModel interprojectExchange.SelectModel(model); string remoteGateWay = SaveProjectRemoteGateWays(projectName, mainModel.PacInfo, mainModel.ReceiverSignals, invertSignals); if (!string.IsNullOrEmpty(remoteGateWay)) { remoteGateWays.Add(remoteGateWay); } string sharedDevice = SaveProjectSharedDevices(projectName, model.PacInfo.Station, mainModel.SourceSignals, invertSignals); if (!string.IsNullOrEmpty(sharedDevice)) { sharedDevices.Add(sharedDevice); } } string res = GenerateMainProjectTextForWriteInFile(remoteGateWays, sharedDevices); return(res); }
/// <summary> /// Отметка выбранной модели в GUI. Другие модели снимают выбор. /// </summary> /// <param name="selectingModel">Выбранная модель</param> public void SelectModel(IProjectModel selectingModel) { CurrentProjectModel currentProjectModel = MainModel; foreach (var model in Models) { if (model.ProjectName == selectingModel.ProjectName) { model.Selected = true; currentProjectModel.SelectedAdvancedProject = model .ProjectName; } else { model.Selected = false; } } }
private void PACSettingsForm_Load(object sender, EventArgs e) { // Установка стандартного значения режима modeComboBox.SelectedValueChanged -= modeComboBox_SelectedValueChanged; modeComboBox.SelectedIndex = 0; editMode = EditMode.MainSource; modeComboBox.SelectedValueChanged += modeComboBox_SelectedValueChanged; interprojectExchange = InterprojectExchange.GetInstance(); mainModel = interprojectExchange.MainModel; projectsSendingFromMain = new Dictionary <string, PacInfo>(); projectsSendingToMain = new Dictionary <string, PacInfo>(); WorkWithProjectsData(true); projectBeforeOpenForm = interprojectExchange.Models .Where(x => x.Selected == true) .Select(x => x.ProjectName) .FirstOrDefault(); }