public override void CreateTaskDataInstance(CMTaskTypeDto cmTaskType, CMTaskDto cmTaskTemplate, CMTaskDto cmTaskInstance) { switch (cmTaskType.Name) { case nameof(BuildInTaskTypes.FeatureDependency): FeatureDependencyExtensions.FeatureDependency_CreateTaskDataInstance(cmTaskTemplate, cmTaskInstance); break; case nameof(BuildInTaskTypes.Note): NoteExtensions.Note_CreateTaskDataInstance(cmTaskTemplate, cmTaskInstance); break; } }
private void Feature_Updated(CMDataProviderRecordUpdatedEventArgs updatedRecordEventArgs) { // Figure out if the feature state was updated, which is what we're really interested in here. var beforeDto = updatedRecordEventArgs.DtoBefore as CMFeatureDto; var afterDto = updatedRecordEventArgs.DtoAfter as CMFeatureDto; // Currently updates to feature templates system status doesn't happen, but if it starts at some point, just go with it until it becomes and issue // If the feature system state was updated if (beforeDto.CMSystemStateId != afterDto.CMSystemStateId) { FeatureDependencyExtensions.UpdateTaskStatesForFeatureDependendies(beforeDto, afterDto); } }
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; } } }
private void Feature_Deleted(CMDataProviderRecordDeletedEventArgs deletedRecordEventArgs) { var beforeDto = deletedRecordEventArgs.DtoBefore as CMFeatureDto; FeatureDependencyExtensions.UpdateTaskStatesForFeatureDependendies(beforeDto, null); }