Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #4
0
        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();
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }