/// <summary> /// Called by the CRUD providers when a new feature var is inserted and things that reference that var need to be resolved /// </summary> /// <param name="createdRecordEventArgs"></param> private void FeatureVar_Created(CMDataProviderRecordCreatedEventArgs createdRecordEventArgs) { var featureVar = createdRecordEventArgs.CreatedDto as CMFeatureVarStringDto; var feature = CMDataProvider.DataStore.Value.CMFeatures.Value.Get(featureVar.CMFeatureId); feature.ResolveFeatureVarsForFeatureAndTasks(); }
internal static void NoteData_Created_ResolveFeatureVars(CMDataProviderRecordCreatedEventArgs createdRecordEventArgs) { // The note data that was created var noteData = createdRecordEventArgs.CreatedDto as NoteDto; // The task that this note data is associated with var task = CMDataProvider.DataStore.Value.CMTasks.Value.Get(noteData.TaskId); // Get all feature vars that currently exist for the feature that the task is in var featureVars = CMDataProvider.DataStore.Value.CMFeatureVarStrings.Value.GetAll_ForFeature(task.CMFeatureId).ToList(); // Resolve any templates in the newly created note Note_ResolveFeatureVars(task, featureVars); }
internal static void FeatureDependencyData_Created(CMDataProviderRecordCreatedEventArgs createdRecordEventArgs) { // The TaskData that was created var taskData = createdRecordEventArgs.CreatedDto as FeatureDependencyDto; // The task that this TaskData is associated with var task = CMDataProvider.DataStore.Value.CMTasks.Value.Get(taskData.TaskId); // Get all feature vars that currently exist for the feature that the task is in var featureVars = CMDataProvider.DataStore.Value.CMFeatureVarStrings.Value.GetAll_ForFeature(task.CMFeatureId).ToList(); // When a new feature dependency task data shows up we want to look through all of its Path options to see if a feature can be instanced right away FeatureDependency_ResolveFeatureVars(task, featureVars); UpdateTaskStatesForFeatureDependendies(taskData, null); }
private void FeatureVar_Created(CMDataProviderRecordCreatedEventArgs createdRecordEventArgs) { // The featureVar that was added var featureVar = createdRecordEventArgs.CreatedDto as CMFeatureVarStringDto; // The feature that the feature var is assigned to var feature = CMDataProvider.DataStore.Value.CMFeatures.Value.Get(featureVar.CMFeatureId); // Don't process feature var replacements in a feature template if (feature.IsTemplate) { return; } // All current feature vars for this feature var featureVars = CMDataProvider.DataStore.Value.CMFeatureVarStrings.Value.GetAll_ForFeature(feature.Id).ToList(); // All tasks currently assigned to the feature var tasks = CMDataProvider.DataStore.Value.CMTasks.Value.GetAll_ForFeature(feature.Id); foreach (var cmTask in tasks) { // Figure out if this is a task type we are interested in var cmTaskType = CMDataProvider.DataStore.Value.CMTaskTypes.Value.Get(cmTask.CMTaskTypeId); switch (cmTaskType.Name) { case nameof(BuildInTaskTypes.FeatureDependency): FeatureDependencyExtensions.FeatureDependency_ResolveFeatureVars(cmTask, featureVars); break; case nameof(BuildInTaskTypes.Note): NoteExtensions.Note_ResolveFeatureVars(cmTask, featureVars); break; } } }