/// <summary> /// Gets the user control meant to edit or view a particular task /// </summary> /// <param name="cmTaskType"></param> /// <param name="cmSystem"></param> /// <param name="cmFeature"></param> /// <param name="cmTask"></param> /// <returns></returns> public UserControl GetTaskUI(CMTaskTypeDto cmTaskType, CMSystemDto cmSystem, CMFeatureDto cmFeature, CMTaskDto cmTask) { var taskFactory = GetTaskFactory(cmTaskType.Name); var taskUC = taskFactory.GetTaskUI(cmTaskType, cmSystem, cmFeature, cmTask); return(taskUC); }
public FeatureDependencyUC(CMSystemDto cmSystem, CMFeatureDto cmFeature, CMTaskDto cmTask) { InitializeComponent(); this.cmSystem = cmSystem; this.cmFeature = cmFeature; this.cmTask = cmTask; }
private void Window_Loaded(object sender, RoutedEventArgs e) { this.Title = cmTaskDto.Title; ref_TaskTypeDto = CMDataProvider.DataStore.Value.CMTaskTypes.Value.Get(cmTaskDto.CMTaskTypeId); ref_FeatureDto = CMDataProvider.DataStore.Value.CMFeatures.Value.Get(cmTaskDto.CMFeatureId); ref_SystemDto = CMDataProvider.DataStore.Value.CMSystems.Value.Get(ref_FeatureDto.CMSystemId); LoadTaskStatesCombo(); LoadTaskUI(); }
private void txtSystemName_LostFocus(object sender, RoutedEventArgs e) { var opResult = CMDataProvider.DataStore.Value.CMSystems.Value.UpdateIfNeeded_Name(cmSystem.Id, txtSystemName.Text); if (opResult.Errors.Any()) { MessageBox.Show(opResult.ErrorsCombined); txtSystemName.Text = cmSystem.Name; return; } cmSystem = CMDataProvider.DataStore.Value.CMSystems.Value.Get(cmSystem.Id); }
public override UserControl GetTaskUI(CMTaskTypeDto cmTaskType, CMSystemDto cmSystem, CMFeatureDto cmFeature, CMTaskDto cmTask) { switch (cmTaskType.Name) { case nameof(BuildInTaskTypes.FeatureDependency): var featureDependencyTaskUI = new FeatureDependencyUC(cmSystem, cmFeature, cmTask); return(featureDependencyTaskUI); case nameof(BuildInTaskTypes.Note): var noteTaskUI = new NoteUC(cmSystem, cmFeature, cmTask); return(noteTaskUI); } return(null); }
private TreeViewItem GetTVI_System(CMSystemDto cmSystem) { var cmSystemTreeViewItem = new TreeViewItem() { Header = cmSystem.Name, Tag = new TreeViewTag(cmSystem) }; var contextMenu = new ContextMenu(); var addNewFeature = new MenuItem() { Header = "New Feature" }; contextMenu.Items.Add(addNewFeature); var cmFeatureTemplates = CMDataProvider.DataStore.Value.CMFeatures.Value.GetAll_ForSystem(cmSystem.Id, true); foreach (var cmFeatureTemplate in cmFeatureTemplates) { var newFeatureSubMenu = new MenuItem() { Header = cmFeatureTemplate.Name }; addNewFeature.Items.Add(newFeatureSubMenu); newFeatureSubMenu.Click += (sender, e) => { var newFeatureDialog = new FeatureCreator(cmFeatureTemplate); newFeatureDialog.ShowDialog(); var newFeature = newFeatureDialog.CreatedFeature; if (newFeature != null) { // Show any new tasks after the feature has been created ShowFilteredTasks(); new FeatureEditor(newFeature).Show(); } }; } cmSystemTreeViewItem.ContextMenu = contextMenu; return(cmSystemTreeViewItem); }
private TreeViewItem GetTVI_DataStore() { var dataStoreTreeViewItem = new TreeViewItem() { Header = "Data Store", Tag = new TreeViewTag(new CMDataStoreDto()), // mcbtodo: there isn't currently an instance of cmDataStore availalble for this. Instead expose a Get function somewhere to get it. }; var contextMenu = new ContextMenu(); var addNewSystemMenu = new MenuItem() { Header = "Add New System" }; contextMenu.Items.Add(addNewSystemMenu); addNewSystemMenu.Click += (sender, e) => { var newCMSystem = new CMSystemDto() { Name = "New System" }; var opResult = CMDataProvider.DataStore.Value.CMSystems.Value.Insert(newCMSystem); if (opResult.Errors.Any()) { MessageBox.Show(opResult.ErrorsCombined); return; } var systemTVI = GetTVI_System(newCMSystem); dataStoreTreeViewItem.Items.Add(systemTVI); }; dataStoreTreeViewItem.ContextMenu = contextMenu; dataStoreTreeViewItem.Selected += TreeConfiguration_NodeSelected; return(dataStoreTreeViewItem); }
/// <summary> /// The UI that is shown when editing a task /// </summary> /// <param name="cmTaskType"></param> /// <param name="cmSystem"></param> /// <param name="cmFeature"></param> /// <param name="cmTask"></param> /// <returns></returns> public abstract UserControl GetTaskUI(CMTaskTypeDto cmTaskType, CMSystemDto cmSystem, CMFeatureDto cmFeature, CMTaskDto cmTask);
public SystemConfigUC(Config configWindow, CMSystemDto cmSystem) { InitializeComponent(); this.cmSystem = cmSystem; this.ConfigWindow = configWindow; }
private TreeViewItem GetTVI_System(CMSystemDto cmSystem) { var cmSystemTreeViewItem = new TreeViewItem() { Header = cmSystem.Name, Tag = new TreeViewTag(cmSystem) }; var contextMenu = new ContextMenu(); var addNewFeatureTemplate = new MenuItem() { Header = "Add New Feature Template" }; contextMenu.Items.Add(addNewFeatureTemplate); addNewFeatureTemplate.Click += (sender, e) => { var newCMFeatureTemplate = new CMFeatureDto() { Name = "New Feature Template", CMSystemId = cmSystem.Id }; var opResult = CMDataProvider.DataStore.Value.CMFeatures.Value.Insert(newCMFeatureTemplate); if (opResult.Errors.Any()) { MessageBox.Show(opResult.ErrorsCombined); return; } // Add a set of default transition rules that match the current system states int rulePriority = 1; var systemStates = CMDataProvider.DataStore.Value.CMSystemStates.Value.GetAll_ForSystem(cmSystem.Id) .OrderBy(s => s.MigrationOrder) // Default the order to the same as the system states migration .ToList(); // Add all rules from the system in the same order as the system. The user can delete the unwanted ones and re-order them foreach (var currentState in systemStates) { var newTransitionRule = new CMFeatureStateTransitionRuleDto() { CMFeatureId = newCMFeatureTemplate.Id, Order = rulePriority++, CMSystemStateId = currentState.Id }; var opResultRule = CMDataProvider.DataStore.Value.CMFeatureStateTransitionRules.Value.Insert(newTransitionRule); if (opResultRule.Errors.Any()) { MessageBox.Show(opResultRule.ErrorsCombined); return; } } if (systemStates.Any()) { MessageBox.Show("Feature state transition rules were automatically added. Please validate these rules."); } var featureTemplateTVI = GetTVI_FeatureTemplate(newCMFeatureTemplate); cmSystemTreeViewItem.Items.Add(featureTemplateTVI); }; var deleteSystemMenu = new MenuItem() { Header = "Delete System" }; contextMenu.Items.Add(deleteSystemMenu); deleteSystemMenu.Click += (sender, e) => { var selectedTreeViewTag = treeConfig.GetSelectedTreeViewTag(); if (selectedTreeViewTag?.Dto == null || !(selectedTreeViewTag?.Dto is CMSystemDto)) { return; } // mcbtodo: Add confirm dialogs on delete operations where appropriate var selectedCMSystemDto = selectedTreeViewTag.Dto as CMSystemDto; var opResult = CMDataProvider.DataStore.Value.CMSystems.Value.Delete(selectedCMSystemDto.Id); if (opResult.Errors.Any()) { MessageBox.Show(opResult.ErrorsCombined); return; } }; cmSystemTreeViewItem.ContextMenu = contextMenu; return(cmSystemTreeViewItem); }