/// <summary> /// Creates the destination field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>The <see cref="DestinationField"/>.</returns> /// <exception cref="System.ArgumentException">Invalid destination field.</exception> private DestinationField CreateDestinationField(FieldInfo field, ExpressionObjectBase owner) { if (!CanBeDestinationField(field)) throw new ArgumentException("Invalid destination field."); var dataType = GetNodeDataType(field); var result = new DestinationField(owner) { DataType = dataType, Name = field.Name, ConnectorIn = { DataType = dataType, Name = field.Name }, SystemName = field.SystemName, SetName = SourceFieldSetNames.Item, SubfieldsRetriever = GetDestinationFieldsRetriever(field) }; return result; }
/// <summary> /// Creates the generic destination field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>DestinationField.</returns> private static DestinationField CreateGenericDestinationField(FieldEdit field, ExpressionObjectBase owner) { var dataType = DestinationNodeFactory.GetDataType(GetType(field)); var df = new DestinationField(owner) { DataType = dataType, Name = field.Name, IsKeyVisible = true, IsKeyEnabled = CanBeKeyField(field), ConnectorIn = { DataType = dataType, Name = field.Name }, SystemName = field.SystemName, SetName = SourceFieldSetNames.Item }; return df; }
/// <summary> /// Creates the file destination field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>DestinationField.</returns> private static DestinationField CreateFileDestinationField(FieldEdit field, ExpressionObjectBase owner) { var dataType = DestinationNodeFactory.GetDataType(typeof(string)); var df = new DestinationField(owner) { DataType = dataType, Name = field.Name, ConnectorIn = { DataType = dataType, Name = field.Name }, SystemName = field.SystemName, SetName = SourceFieldSetNames.Item, IsKeyVisible = true, IsKeyEnabled = false }; return df; }
/// <summary> /// Creates the cross reference source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>SourceField.</returns> private static SourceField CreateCrossReferenceSourceField(FieldInfo field, string processName, ExpressionObjectBase owner) { var dataType = field.ColumnType == ColumnTypes.Reference ? NodeDataType.CrossReference : NodeDataType.List; var sf = new SourceField(owner) { DataType = dataType, Name = field.Name, ConnectorOut = { DataType = dataType, Name = field.Name }, SystemName = field.SystemName, SetName = SourceFieldSetNames.DataTriggerSourceItem, SubfieldsRetriever = new CrossReferenceSubfieldsRetriever(field, CanBeSourceField, CreateSourceField) }; if (dataType == NodeDataType.CrossReference) { PublishedProcessInfo.BeginGetProcessInfoByCrossReferenceField(processName, field.SystemName, true, result => { if (result.Error == null && result.Object != null) { sf.AdditionalInfo = new CrossReferenceFieldInfo(result.Object.SystemName); } }); } return sf; }
private static DestinationField CreateDestinationField(FieldInfo field, ExpressionObjectBase owner) { switch (field.ColumnType) { case ColumnTypes.Integer: case ColumnTypes.String: case ColumnTypes.Numeric: case ColumnTypes.Double: case ColumnTypes.Boolean: case ColumnTypes.DateTime: case ColumnTypes.SampleType: case ColumnTypes.Reference: case ColumnTypes.Result: case ColumnTypes.Sample: case ColumnTypes.Checklist: { var dataType = GetDataType(field); var df = new DestinationField(owner) { DataType = dataType, Name = field.Name, ConnectorIn = { DataType = dataType, Name = field.Name }, SetName = SourceFieldSetNames.DataTriggerDestinationItem, InnerName = field.SystemName, SystemName = field.SystemName }; return df; } default: throw new ArgumentException("Field type not supported.", "field"); } }
/// <summary> /// Creates the generic source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>SourceField.</returns> private static SourceField CreateSourceFieldFromDataVariable(DataVariableEdit field, ExpressionObjectBase owner) { var dataType = GetDataType(field); var sf = new SourceField(owner) { DataType = dataType, Name = field.VariableName, ConnectorOut = { DataType = dataType, Name = field.VariableName }, SetName = SourceFieldSetNames.DataTriggerSourceItem, InnerName = field.VariableSystemName, SystemName = field.VariableSystemName }; return sf; }
/// <summary> /// Creates the source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>SourceField.</returns> /// <exception cref="System.ArgumentException">Field type not supported.;field</exception> private static SourceField CreateSourceField(FieldInfo field, string processName, ExpressionObjectBase owner) { switch (field.FieldType.ColumnType) { case ColumnTypes.Integer: case ColumnTypes.String: case ColumnTypes.Numeric: case ColumnTypes.Double: case ColumnTypes.Boolean: case ColumnTypes.DateTime: case ColumnTypes.AutoNumber: case ColumnTypes.SampleType: case ColumnTypes.Label: return CreateGenericSourceField(field, owner); case ColumnTypes.Reference: case ColumnTypes.MultiReference: return CreateCrossReferenceSourceField(field, processName, owner); case ColumnTypes.File: return CreateFileSourceField(field, owner); default: throw new ArgumentException("Field type not supported.", "field"); } }
/// <summary> /// Creates the source field. /// </summary> /// <param name="parameter">The parameter.</param> /// <param name="owner">The owner.</param> /// <returns>The SourceField.</returns> /// <exception cref="System.InvalidOperationException">Parameter type not found.</exception> private SourceField CreateSourceField(ServiceMethodParameterEdit parameter, ExpressionObjectBase owner) { if (ServicePrimitiveTypes.GetTypes().Any(t => t.Guid == parameter.TypeGuid)) return CreatePrimitiveSourceField(parameter, owner); if (_knownTypes.Any(t => t.Guid == parameter.TypeGuid)) return CreateComplexSourceField(parameter, owner); throw new InvalidOperationException("Parameter type not found."); }
/// <summary> /// Creates the destination field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>The DestinationField.</returns> /// <exception cref="System.InvalidOperationException">Invalid destination field.</exception> private DestinationField CreateDestinationField(FieldInfo field, ExpressionObjectBase owner) { if (!CanBeDestinationField(field)) throw new InvalidOperationException("Invalid destination field."); var dataType = GetNodeDataType(field); var result = new DestinationField(owner) { DataType = dataType, Name = field.Name, IsKeyVisible = true, IsKeyEnabled = CanBeKeyField(field), ConnectorIn = { DataType = dataType, Name = field.Name }, SystemName = field.SystemName, SetName = SourceFieldSetNames.Item, SubfieldsRetriever = GetDestinationFieldsRetriever(field) }; result.ConnectorIn.Validator = CreateConnectionValidator(result); return result; }
private IEnumerable<IExpressionField> GetSubfields(ExpressionObjectBase owner) { if (_fieldSelector(this)) yield return _fieldFactory(this, owner); }
/// <summary> /// Creates the expression fields. /// </summary> /// <param name="fields">The fields.</param> /// <param name="owner">The owner.</param> /// <returns>IEnumerable{IExpressionField}.</returns> private IEnumerable<IExpressionField> CreateExpressionFields(IEnumerable<FieldInfo> fields, ExpressionObjectBase owner) { return fields.Where(_fieldsFilter).Select(f => _expressionFieldFactory(f, owner)); }
private DestinationField CreateDestinationField(IServiceExposedTypeFieldEdit field, ExpressionObjectBase owner) { var dataType = GetDataType(field); var subfieldsRetriever = GetSubfieldsRetriever(field); var result = new DestinationField(owner) { DataType = dataType, Name = field.Name, ConnectorIn = { DataType = dataType, Name = field.Name }, InnerName = field.Name, SystemName = field.Name, SubfieldsRetriever = subfieldsRetriever }; return result; }
private SourceField CreateSourceField(FieldEdit field, ExpressionObjectBase owner) { var dataType = GetNodeDataType(field); var result = new SourceField(owner) { Name = field.Name, DataType = dataType, ConnectorOut = { DataType = dataType, Name = field.Name }, SetName = SourceFieldSetNames.IntegrationServiceResultItem, InnerName = field.SystemName, SystemName = field.SystemName, SubfieldsRetriever = GetSubfieldsRetriever(field) }; return result; }
/// <summary> /// Creates the field. /// </summary> /// <param name="name">The field name.</param> /// <param name="type">The field type.</param> /// <param name="owner">The owner.</param> /// <returns>The <see cref="DestinationField"/>.</returns> private DestinationField CreateField(string name, NodeDataType type, ExpressionObjectBase owner) { var field = new DestinationField(owner) { DataType = type, Name = name, IsKeyVisible = false, IsKeyEnabled = false, ConnectorIn = { DataType = type, Name = name }, SystemName = name, SetName = SourceFieldSetNames.Item }; return field; }
/// <summary> /// Creates the destination field. /// </summary> /// <param name="field">The field.</param> /// <param name="processName">The process name.</param> /// <param name="owner">The owner.</param> /// <returns>The DestinationField.</returns> /// <exception cref="System.InvalidOperationException">Invalid destination field.</exception> private DestinationField CreateDestinationField(FieldInfo field, string processName, ExpressionObjectBase owner) { if (!CanBeDestinationField(field)) throw new InvalidOperationException("Invalid destination field."); var dataType = GetDataType(field); if (field.ColumnType == ColumnTypes.Sample) dataType = NodeDataType.Sample; var df = new DestinationField(owner) { DataType = dataType, Name = field.Name, ConnectorIn = { DataType = dataType, Name = field.Name, Validator = ConnectionValidator }, SetName = SourceFieldSetNames.DataTriggerDestinationItem, InnerName = field.SystemName, SystemName = field.SystemName, IsKeyEnabled = KeyFieldsEnabled && CanBeKeyField(field), IsKeyVisible = KeyFieldsEnabled && CanBeKeyField(field), IsRequired = field.IsRequired, SubfieldsRetriever = GetDestinationFieldsRetriever(field) }; if (dataType == NodeDataType.CrossReference) { PublishedProcessInfo.BeginGetProcessInfoByCrossReferenceField( processName, field.SystemName, true, result => { if (result.Error == null && result.Object != null) { df.AdditionalInfo = new CrossReferenceFieldInfo(result.Object.SystemName); } }); } return df; }
/// <summary> /// Creates the source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>The SourceField.</returns> /// <exception cref="System.InvalidOperationException">Field type not found.</exception> private SourceField CreateSourceField(ServiceExposedTypeFieldEdit field, ExpressionObjectBase owner) { if (ServicePrimitiveTypes.GetTypes().Any(t => t.Guid == field.TypeGuid)) return CreatePrimitiveSourceField(field, owner); if (_knownTypes.Any(t => t.Guid == field.TypeGuid)) return CreateComplexSourceField(field, owner); throw new InvalidOperationException("Field type not found."); }
/// <summary> /// Initializes a new instance of the <see cref="ConnectorOut"/> class. /// </summary> /// <param name="owner">The owner.</param> public ConnectorOut(ExpressionObjectBase owner) : base(owner) { }
/// <summary> /// Creates the primitive source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>The SourceField.</returns> private SourceField CreatePrimitiveSourceField(ServiceExposedTypeFieldEdit field, ExpressionObjectBase owner) { var type = ServicePrimitiveTypes.FindByGuid(field.TypeGuid); var dataType = field.AllowMultiple ? NodeDataType.Array : SourceNodeFactory.GetDataType(type.Type); var subfieldsRetriever = field.AllowMultiple ? new ArraySubfieldsRetriever(type) : null; if (ReferenceEquals(type, ServicePrimitiveTypes.Byte)) { dataType = NodeDataType.ByteArray; subfieldsRetriever = null; } var result = new SourceField(owner) { DataType = dataType, Name = field.Name, ConnectorOut = { DataType = dataType, Name = field.Name }, SetName = SourceFieldSetNames.IntegrationServiceSourceItem, InnerName = field.Name, SystemName = field.Name, SubfieldsRetriever = subfieldsRetriever }; return result; }
/// <summary> /// Creates the cross reference source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>SourceField.</returns> private static SourceField CreateCrossReferenceSourceField(FieldEdit field, ExpressionObjectBase owner) { var dataType = field.IsSingleCrossReference() ? NodeDataType.CrossReference : NodeDataType.List; var requiredStep = (CrossRefRequiredStepEdit)field.StepList.FirstOrDefault(s => s is CrossRefRequiredStepEdit); IExpressionFieldsRetriever subfieldsRetriever = null; if (requiredStep != null && requiredStep.CrossRefProcessId.HasValue) { subfieldsRetriever = new CrossReferenceSubfieldsRetriever(requiredStep.CrossRefProcessId.Value, CanBeSourceField, CreateSourceField); } var sf = new SourceField(owner) { DataType = dataType, Name = field.Name, ConnectorOut = { DataType = dataType, Name = field.Name }, SystemName = field.SystemName, SetName = SourceFieldSetNames.DataTriggerSourceItem, SubfieldsRetriever = subfieldsRetriever }; return sf; }
/// <summary> /// Creates the complex source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>The SourceField.</returns> private SourceField CreateComplexSourceField(ServiceExposedTypeFieldEdit field, ExpressionObjectBase owner) { var type = _knownTypes.First(t => t.Guid == field.TypeGuid); var dataType = field.AllowMultiple ? NodeDataType.Array : NodeDataType.Entity; var result = new SourceField(owner) { DataType = dataType, Name = field.Name, ConnectorOut = { DataType = dataType, Name = field.Name }, SystemName = field.Name, SetName = SourceFieldSetNames.IntegrationServiceSourceItem, SubfieldsRetriever = new ComplexTypeSubfieldsRetriever(type, _knownTypes) }; return result; }
/// <summary> /// Creates the generic source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>SourceField.</returns> private static SourceField CreateGenericSourceField(FieldInfo field, ExpressionObjectBase owner) { var dataType = SourceNodeFactory.GetDataType(GetType(field)); var sf = new SourceField(owner) { DataType = dataType, Name = field.Name, ConnectorOut = { DataType = dataType, Name = field.Name }, SetName = SourceFieldSetNames.DataTriggerSourceItem, InnerName = field.SystemName, SystemName = field.SystemName }; return sf; }
private IEnumerable<DestinationField> CreateSampleFields(ExpressionObjectBase owner) { yield return CreateField("Label", GetSamplePropertyName(s => s.Label), NodeDataType.String, owner); yield return CreateField("Alphanumeric Value", GetSamplePropertyName(s => s.SampleAlphanumeric), NodeDataType.String, owner); yield return CreateField("Numeric Value", GetSamplePropertyName(s => s.SampleNumeric), NodeDataType.Double, owner); yield return CreateField("Boolean Value", GetSamplePropertyName(s => s.SampleBoolean), NodeDataType.Boolean, owner); }
/// <summary> /// Creates the file source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>SourceField.</returns> private static SourceField CreateFileSourceField(FieldInfo field, ExpressionObjectBase owner) { const NodeDataType DataType = NodeDataType.File; var sf = new SourceField(owner) { DataType = DataType, Name = field.Name, ConnectorOut = { DataType = DataType, Name = field.Name }, SystemName = field.SystemName, SetName = SourceFieldSetNames.DataTriggerSourceItem, SubfieldsRetriever = new FileSubfieldsRetriever(SourceFieldSetNames.DataTriggerSourceItem) }; return sf; }
private DestinationField CreateField(string name, string systemName, NodeDataType type, ExpressionObjectBase owner) { var field = new DestinationField(owner) { DataType = type, Name = name, IsKey = false, IsKeyVisible = true, IsKeyEnabled = true, ConnectorIn = { DataType = type, Name = name }, SystemName = systemName, SetName = SourceFieldSetNames.Item }; field.ConnectorIn.Validator = _connectionValidatorFactory(field); return field; }
/// <summary> /// Creates the destination field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>DestinationField.</returns> private static DestinationField CreateDestinationField(FieldEdit field, ExpressionObjectBase owner) { var columnType = GetColumnType(field); switch (columnType) { case ColumnTypes.Reference: case ColumnTypes.MultiReference: return CreateCrossReferenceDestinationField(field, owner); case ColumnTypes.File: return CreateFileDestinationField(field, owner); case ColumnTypes.Integer: case ColumnTypes.String: case ColumnTypes.Numeric: case ColumnTypes.Boolean: case ColumnTypes.DateTime: return CreateGenericDestinationField(field, owner); } return null; }
/// <summary> /// Creates the source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>SourceField.</returns> private SourceField CreateSourceField(FieldInfo field, ExpressionObjectBase owner) { var dataType = GetNodeDataType(field.ColumnType); var result = new SourceField(owner) { DataType = dataType, Name = field.Name, ConnectorOut = { DataType = dataType, Name = field.Name }, SetName = SourceFieldSetNames.Item, InnerName = field.SystemName, SystemName = field.SystemName, SubfieldsRetriever = GetSubfieldsRetriever(field) }; return result; }
/// <summary> /// Creates the cross reference destination field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>DestinationField.</returns> private static DestinationField CreateCrossReferenceDestinationField(FieldEdit field, ExpressionObjectBase owner) { var isSingleRef = field.IsSingleCrossReference(); var df = new DestinationField(owner) { DataType = NodeDataType.CrossReference, Name = field.Name, ConnectorIn = { DataType = NodeDataType.CrossReference, Name = field.Name }, SystemName = field.SystemName, SetName = SourceFieldSetNames.Item, IsKeyVisible = true, IsKeyEnabled = isSingleRef, SubfieldsRetriever = new CrossReferenceSubfieldsRetriever(field) }; return df; }
/// <summary> /// Creates the source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>The SourceField.</returns> private static SourceField CreateSourceField(FieldEdit field, ExpressionObjectBase owner) { var dataType = GetDataType(field); var systemName = field.SystemName; if (dataType == NodeDataType.List) systemName = systemName + "List"; var sf = new SourceField(owner) { DataType = dataType, Name = field.Name, ConnectorOut = { DataType = dataType, Name = field.Name }, SetName = SourceFieldSetNames.DataTriggerSourceItem, InnerName = systemName, SystemName = systemName, SubfieldsRetriever = GetSourceFieldsRetriever(field) }; if (dataType == NodeDataType.CrossReference) { var crossRefStep = (CrossRefRequiredStepEdit)field.StepList.FirstOrDefault(x => x is CrossRefRequiredStepEdit); if (crossRefStep != null) sf.AdditionalInfo = new CrossReferenceFieldInfo(crossRefStep.CrossRefProcess.SystemName); } return sf; }
/// <summary> /// Creates the source field. /// </summary> /// <param name="field">The field.</param> /// <param name="owner">The owner.</param> /// <returns>SourceField.</returns> private static SourceField CreateSourceField(ProviderFieldEdit field, ExpressionObjectBase owner) { var dataType = SourceNodeFactory.GetDataType(GetType(field.Type)); var result = new SourceField(owner) { DataType = dataType, Name = field.Name, ConnectorOut = { DataType = dataType, Name = field.Name }, SetName = SourceFieldSetNames.ESyncSourceItem, SystemName = field.SystemName, ObjectName = "providerItem" }; return result; }
private SourceField CreateSourceField( IWebServiceTypeFieldDescription field, IWebMethodCallResultField resultField, ExpressionObjectBase owner) { var dataType = GetNodeDataType(field.FieldType); var retriever = GetSubfieldsRetriever(field.FieldType, resultField != null ? resultField.Fields : null); var name = field.Name; var fullName = field.Name; if (!field.DeclaringType.IsArray) { name = field.DeclaringType.DisplayName + "." + name; fullName = field.DeclaringType.Name + Constants.WebMethodCallResultDeclaringTypeSeparator + fullName; } var result = new SourceField(owner) { DataType = dataType, Name = name, ConnectorOut = { DataType = dataType, Name = name }, InnerName = fullName, SystemName = fullName, SubfieldsRetriever = retriever, SetName = SourceFieldSetNames.IntegrationWebMethodCallResultItem }; return result; }