/// <summary> /// Loads the sub fields. /// </summary> /// <param name="onSubfieldsLoaded">The on subfields loaded.</param> public void LoadSubFields(Action onSubfieldsLoaded) { Subfields.Clear(); if (Model == null) { onSubfieldsLoaded(); return; } if (Model.ColumnType == ColumnTypes.Reference || Model.ColumnType == ColumnTypes.MultiReference) { FieldList.BeginGetCrossReferenceSubfields( Model.DefinedIn, Model.SystemName, (o, result) => { if (result.Error == null) { foreach (var field in result.Object.Where(f => ParentStepViewModel.CanSelectField(f.FieldType.ColumnType))) { var vm = new DisplayFieldViewModel(field, this); Subfields.Add(vm); } } onSubfieldsLoaded(); }); return; } if (Model.ColumnType == ColumnTypes.ReverseReference || Model.ColumnType == ColumnTypes.ReverseMultiReference || Model.ColumnType == ColumnTypes.TreeView) { FieldList.BeginGetReverseCrossReferenceSubfields( Model.DefinedIn, Model.SystemName, (o, result) => { if (result.Error == null) foreach (var vm in result.Object.Where(f => ParentStepViewModel.CanSelectField(f.FieldType.ColumnType)).Select(field => new DisplayFieldViewModel(field, this))) Subfields.Add(vm); onSubfieldsLoaded(); }); return; } onSubfieldsLoaded(); }
private void SetupProcessFields() { AvailableFields.Clear(); if (Parent.Model.IsStateEnabled) { var currentStateViewModel = new DisplayFieldViewModel( new FieldInfo( 0, Constants.CurrentStateColumnName, Constants.CurrentStateColumnName, new FieldTypeInfo(null, ColumnTypes.String.ToString(), true), Parent.Model.SystemName, ColumnTypes.String, Guid.Empty, true, false, false), this); AvailableFields.Add(currentStateViewModel); } foreach (var f in Parent.Model.GetAllFields().Where(f => CanSelectField(f.FieldType.ColumnType))) { var expressionStep = (ExpressionsStepEdit)f.StepList.FirstOrDefault(s => s is ExpressionsStepEdit); var isCalculated = expressionStep != null && !string.IsNullOrEmpty(expressionStep.CalculatedExpression); var isRequired = Parent.Model.RequiredRuleConfigList.SelectMany(x => x.FieldList).Any(x => x.FieldGuid == f.Guid); var fieldViewModel = new DisplayFieldViewModel(new FieldInfo(f.Id, f.Name, f.SystemName, f.FieldType, Parent.Model.SystemName, f.FieldType.ColumnType, f.Guid, false, isCalculated, isRequired), this); fieldViewModel.IsSelected = _viewConfigurator.ExistingRecordFields.Any(erf => erf.FullPath == fieldViewModel.FullSystemPath); AvailableFields.Add(fieldViewModel); } RaisePropertyChanged(() => AvailableFields); }