internal static void NoteData_Updated_ResolveFeatureVars(CMDataProviderRecordUpdatedEventArgs updatedRecordEventArgs) { // The note data that was created var noteData = updatedRecordEventArgs.DtoAfter 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 updated note Note_ResolveFeatureVars(task, featureVars); }
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); } }
internal static void FeatureDependencyData_Updated(CMDataProviderRecordUpdatedEventArgs updatedRecordEventArgs) { // The TaskData in its updated state var taskData = updatedRecordEventArgs.DtoAfter 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(); // An update to the task data may include changed path options that make it so we can now instance a dependant feature, so look for that now. FeatureDependency_ResolveFeatureVars(task, featureVars); UpdateTaskStatesForFeatureDependendies(taskData, null); }
private void TaskRecord_Updated_ReloadTaskList(CMDataProviderRecordUpdatedEventArgs updatedRecordEventArgs) { if (tasks == null) { return; } var after = updatedRecordEventArgs.DtoAfter as CMTaskDto; var before = updatedRecordEventArgs.DtoBefore as CMTaskDto; // If the state of the task that is being updated is not changing then we don't need to reload the rows // because the only reason to reload the rows is to get the row coloring to show up correctly at the time of the change if (after?.CMTaskStateId == before?.CMTaskStateId) { return; } Reload_Tasks(); }
public CMCUDResult UpdateOptions(CMOptionsDto options) { var opResult = new CMCUDResult(); var updateEvent = new CMDataProviderRecordUpdatedEventArgs() { DtoBefore = GetOptions(), DtoAfter = options, }; if (!optionsCollection.Update(options)) { opResult.Errors.Add("Options were not found in master db."); return(opResult); } OnRecordUpdated?.Invoke(updateEvent); return(opResult); }
public virtual CMCUDResult Update(T updatingObject) { var opResult = new CMCUDResult(); if (CUDDepthTracking.ExceedsMaxOperationDepth(opResult)) { return(opResult); } var updateEvent = new CMDataProviderRecordUpdatedEventArgs() { DtoBefore = Get(updatingObject.Id), DtoAfter = updatingObject, }; if (cmCollection.Update(updatingObject) == false) { opResult.Errors.Add($"An item in {CollectionName} with id {updatingObject.Id} was not found to update."); return(opResult); } try { CUDDepthTracking.OperationDepth++; OnRecordUpdated?.Invoke(updateEvent); } catch (Exception ex) { opResult.Errors.Add(ex.ToString()); } finally { CUDDepthTracking.OperationDepth--; } return(opResult); }