public ActivityDelegateItem(ModelItem modelItem, ActivityDelegateMetadataAttribute metadata = null) { Contract.Requires(modelItem != null); ModelItem = modelItem; if (metadata == null) { var pmi = modelItem.Parent.Properties.Where(p => p.Value == modelItem).First(); metadata = pmi.Attributes[typeof(ActivityDelegateMetadataAttribute)] as ActivityDelegateMetadataAttribute; } if (metadata != null) { ObjectName = metadata.ObjectName; ResultName = metadata.ResultName; Argument1Name = metadata.Argument1Name; Argument2Name = metadata.Argument2Name; Argument3Name = metadata.Argument3Name; Argument4Name = metadata.Argument4Name; Argument5Name = metadata.Argument5Name; Argument6Name = metadata.Argument6Name; Argument7Name = metadata.Argument7Name; Argument8Name = metadata.Argument8Name; } if (string.IsNullOrWhiteSpace(ObjectName)) ObjectName = ModelItem.ItemType.GetGenericArguments()[0].Name; }
private void Init(ModelItem delegateModelItem, ActivityDelegateMetadataAttribute metadata, bool bindResult) { if (bindResult) InitArg(delegateModelItem, "Result", metadata.ResultName); if (InitArg(delegateModelItem, "Argument", metadata.Argument1Name)) return; if (!InitArg(delegateModelItem, "Argument1", metadata.Argument1Name)) return; if (!InitArg(delegateModelItem, "Argument2", metadata.Argument2Name)) return; if (!InitArg(delegateModelItem, "Argument3", metadata.Argument3Name)) return; if (!InitArg(delegateModelItem, "Argument4", metadata.Argument4Name)) return; if (!InitArg(delegateModelItem, "Argument5", metadata.Argument5Name)) return; if (!InitArg(delegateModelItem, "Argument6", metadata.Argument6Name)) return; if (!InitArg(delegateModelItem, "Argument7", metadata.Argument7Name)) return; if (!InitArg(delegateModelItem, "Argument8", metadata.Argument8Name)) return; }
private void Init() { bool bindResult = true; foreach (var parentModelItem in activityModelItem.GetParents()) { if (parentModelItem.Attributes.OfType<CollectionBlueprintActivityMarkAttribute>().Any()) { var itemResultNameProp = parentModelItem.Properties["ItemResultName"]; if (itemResultNameProp != null) { ModelProperty activityArgProp; if (ActivityArgPropDict.TryGetValue("Result", out activityArgProp)) { var helper = ArgHelper.Create(activityArgProp); helper.Set(activityArgProp, itemResultNameProp.Value.GetCurrentValue() as string); AddBind(itemResultNameProp, activityArgProp, helper, false); } } bindResult = false; } else { var parentObj = parentModelItem.GetCurrentValue(); if (parentObj != null) { if (parentObj is ActivityDelegate) { var metadata = (from pp in parentModelItem.Parent.Properties where pp.Value == parentModelItem from a in pp.Attributes.OfType<ActivityDelegateMetadataAttribute>() select a).FirstOrDefault(); if (metadata == null) metadata = new ActivityDelegateMetadataAttribute(); Init(parentModelItem, metadata, bindResult); return; } } } } }