예제 #1
0
 private void ItemPropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (FindUnusedAndMissingCommand != null)
     {
         FindUnusedAndMissingCommand.RaiseCanExecuteChanged();
         SortCommand.RaiseCanExecuteChanged();
     }
     ViewComplexObjectsCommand?.RaiseCanExecuteChanged();
     DeleteCommand?.RaiseCanExecuteChanged();
 }
예제 #2
0
        public void RemoveUnusedDataListItems()
        {
            _scalarHandler.RemoveUnusedScalars();
            _recordsetHandler.RemoveUnusedRecordSets();
            _complexObjectHandler.RemoveUnusedComplexObjects();

            WriteToResourceModel();
            FindUnusedAndMissingCommand.RaiseCanExecuteChanged();
            ViewComplexObjectsCommand.RaiseCanExecuteChanged();
            DeleteCommand.RaiseCanExecuteChanged();
            UpdateIntellisenseList();
        }
예제 #3
0
        public void RemoveDataListItem(IDataListItemModel itemToRemove)
        {
            if (itemToRemove == null)
            {
                return;
            }

            var complexObj = itemToRemove as IComplexObjectItemModel;

            if (complexObj != null)
            {
                var complexObjectItemModels = complexObj.Children;
                var allChildren             = complexObjectItemModels.Flatten(model => model.Children).ToList();
                var notUsedItems            = allChildren.Where(x => !x.IsUsed).ToList();
                foreach (var complexObjectItemModel in notUsedItems)
                {
                    RemoveUnusedChildComplexObjects(complexObj, complexObjectItemModel);
                }
                if (complexObj.Children.Count == 0)
                {
                    ComplexObjectCollection.Remove(complexObj);
                }
                else
                {
                    complexObj.IsUsed = true;
                }
            }

            if (itemToRemove is IScalarItemModel)
            {
                var item = itemToRemove as IScalarItemModel;
                ScalarCollection.Remove(item);
                CheckDataListItemsForDuplicates(DataList);
            }
            else if (itemToRemove is IRecordSetItemModel)
            {
                var item = itemToRemove as IRecordSetItemModel;
                RecsetCollection.Remove(item);
                CheckDataListItemsForDuplicates(DataList);
            }
            else
            {
                foreach (var recset in RecsetCollection)
                {
                    var item = itemToRemove as IRecordSetFieldItemModel;
                    recset.Children.Remove(item);
                    CheckDataListItemsForDuplicates(recset.Children);
                }
            }
            FindUnusedAndMissingCommand.RaiseCanExecuteChanged();
            DeleteCommand.RaiseCanExecuteChanged();
        }
예제 #4
0
        /// <summary>
        /// Finds the missing workflow data regions.
        /// </summary>
        /// <param name="partsToVerify">The parts to verify.</param>
        /// <param name="excludeUnusedItems"></param>
        /// <returns></returns>
        public List <IDataListVerifyPart> MissingWorkflowItems(IList <IDataListVerifyPart> partsToVerify, bool excludeUnusedItems = false)
        {
            var missingWorkflowParts = new List <IDataListVerifyPart>();

            if (DataList != null)
            {
                // ReSharper disable once LoopCanBeConvertedToQuery
                missingWorkflowParts.AddRange(_missingDataList.MissingScalars(partsToVerify, excludeUnusedItems));
                missingWorkflowParts.AddRange(_missingDataList.MissingRecordsets(partsToVerify, excludeUnusedItems));
            }
            _complexObjectHandler.DetectUnusedComplexObjects(partsToVerify);
            FindUnusedAndMissingCommand.RaiseCanExecuteChanged();
            return(missingWorkflowParts);
        }