Esempio n. 1
0
        private IFunctionData UpdateToVersion1(IFunctionData data)
        {
            data = AddTransactionProperty(data);
            data = TransformConnectionTypeProperty(data);

            return(data.UpdateVersion("1"));
        }
Esempio n. 2
0
        private IFunctionData UpdateToVersion1(IFunctionData data)
        {
            bool isText = data.Properties[FileOpenShared.IsTextPropertyName].GetValue <bool>();
            var  updatedExecutionPath = new ExecutionPath
            {
                Key    = FileOpenShared.ExecutionPathName,
                Name   = FileOpenShared.ExecutionPathName,
                Output = TypeReference.CreateGeneratedType(
                    new TypeProperty(FileOpenShared.OutputFilePathPropertyName, typeof(string), AccessType.Read),
                    new TypeProperty(FileOpenShared.OutputFileHandlePropertyName, TypeReference.CreateResource(isText ? typeof(TextFileHandle) : typeof(BinaryFileHandle)), AccessType.Read)),
                IterationHint = Plugin.Common.IterationHint.Once
            };

            IExecutionPathData existingExecutionPath;

            if (data.TryFindExecutionPathByKey(FileOpenShared.ExecutionPathName, out existingExecutionPath))
            {
                data = data.ReplaceExecutionPath(existingExecutionPath, updatedExecutionPath);
            }
            else
            {
                data = data.AddExecutionPath(updatedExecutionPath);
            }

            return(data.UpdateVersion("1"));
        }
Esempio n. 3
0
        private IFunctionData UpdateToVersion2(IFunctionData data)
        {
            var resultFieldsProperty = data.Properties[ExecuteSQLShared.ResultTypePropertyName];
            var resultType           = new ResultType();

            resultType.Fields.AddRange(resultFieldsProperty.GetValue <ResultTypeFields>());
            data = data.ReplaceProperty(resultFieldsProperty,
                                        new Property(ExecuteSQLShared.ResultTypePropertyName, typeof(ResultType), ValueUseOption.DesignTime, new ResultType())
            {
                Value = resultType
            });

            return(data.UpdateVersion("2"));
        }
Esempio n. 4
0
        private IFunctionData UpdateToVersion1(IFunctionData data)
        {
            data = ChangeExecutionPathHint(data);

            int resultSetCount = data.Properties[ExecuteStoredProcedureShared.ResultSetCountPropertyName].GetValue <int>();

            var executionPathOutputMap = Enumerable.Range(0, resultSetCount).ToDictionary(
                i => string.Format(ExecuteStoredProcedureShared.ResultSetPropertyNameFormat, i + 1),
                i => data.ExecutionPaths[string.Format(ExecuteStoredProcedureShared.ResultSetExecutionPathNameFormat, i + 1)].Output);

            data = FixProperties(data, executionPathOutputMap);

            data = AddTransactionProperty(data);
            data = TransformConnectionTypeProperty(data);

            return(data.UpdateVersion("1"));
        }
Esempio n. 5
0
        private IFunctionData UpdateToVersion3(IFunctionData data)
        {
            var resultTypeProperty = data.Properties[ExecuteSQLShared.ResultTypePropertyName];

            var resultTypeValue = resultTypeProperty.GetValue <ResultType>();
            var requireUpdate   = false;

            foreach (var field in resultTypeValue.Fields)
            {
                if (field.Type == typeof(Int32))
                {
                    field.Type    = typeof(Int64);
                    requireUpdate = true;
                }
            }

            if (requireUpdate)
            {
                data = data.UpdateProperty(resultTypeProperty, resultTypeProperty.Id, resultTypeProperty.Name, resultTypeProperty.TypeReference, resultTypeValue, resultTypeProperty.IsVisible, resultTypeProperty.ValueUsage);

                var returnTypeValue = resultTypeValue.BuildRowTypeFromFields();
                if (returnTypeValue != null)
                {
                    if (data.Output != null)
                    {
                        if (data.Output.IsList)
                        {
                            data = data.UpdateOutput(TypeReference.CreateList(returnTypeValue));
                        }
                        else
                        {
                            data = data.UpdateOutput(returnTypeValue);
                        }
                    }

                    IExecutionPathData executionPath;
                    if (data.TryFindExecutionPathByKey("ForEachRow", out executionPath) && executionPath.Output != null)
                    {
                        data = data.UpdateExecutionPath(executionPath, executionPath.Key, executionPath.Name, returnTypeValue, executionPath.IterationHint);
                    }
                }
            }

            return(data.UpdateVersion("3"));
        }
Esempio n. 6
0
        public override FunctionCodeGenerator CreateCodeGenerator(IFunctionData data)
        {
            if (String.IsNullOrEmpty(data.Version))
            {
                data = data.UpdateVersion("1");
            }

            switch (data.Version)
            {
            case "1":
                return(new V1.DirectoryOperationsCodeGenerator(data));

            case "2":
                return(new V2.DirectoryOperationsCodeGenerator(data));

            default:
                throw new Exception(string.Format("Unknown version [{0}] specified.", data.Version));
            }
        }
Esempio n. 7
0
        private IFunctionData UpdateToVersion2(IFunctionData data)
        {
            IPropertyData loopResultsProperty;

            if (data.FindPropertyById(MongoDBReadShared.Names.ReturnOptionsPropertyName) == null)
            {
                MongoDBReadShared.ReturnModeType returnModeType = MongoDBReadShared.ReturnModeType.ListOfRows;
                if (data.TryFindPropertyById("LoopResults", out loopResultsProperty))
                {
                    returnModeType = loopResultsProperty.GetValue <bool>() ? MongoDBReadShared.ReturnModeType.RowByRow : MongoDBReadShared.ReturnModeType.ListOfRows;
                    data           = data.RemoveProperty(data.FindPropertyById("LoopResults"));
                }
                data = data.AddProperty(new Property(MongoDBReadShared.Names.ReturnOptionsPropertyName, typeof(MongoDBReadShared.ReturnModeType), ValueUseOption.DesignTime, returnModeType)
                {
                    IsVisible = true
                });
            }

            data = ChangeExecutionPathKey(data);
            return(data.UpdateVersion("2"));
        }
Esempio n. 8
0
        private IFunctionData UpdateToVersion2(IFunctionData data)
        {
            IPropertyData parametersProperty;

            if (data.TryFindPropertyById(ExecuteStoredProcedureShared.ParametersPropertyName, out parametersProperty))
            {
                DatabaseModel.ProcedureParameters parameterValues = parametersProperty.Value as DatabaseModel.ProcedureParameters;
                if (parameterValues != null)
                {
                    foreach (DatabaseModel.ProcedureParameter parameter in parameterValues)
                    {
                        IPropertyData parameterProperty;
                        if (data.TryFindPropertyById(parameter.Name, out parameterProperty))
                        {
                            data = data.UpdateProperty(parameterProperty,
                                                       parameter.DisplayPropertyId, parameter.DisplayPropertyName, parameterProperty.TypeReference, parameterProperty.Value, parameterProperty.IsVisible, parameterProperty.ValueUsage);
                        }
                    }
                }
            }

            return(data.UpdateVersion("2"));
        }
Esempio n. 9
0
 private IFunctionData UpdateToVersion1(IFunctionData data)
 {
     data = AddMissingProperties(data);
     data = ChangeExecutionPathKey(data);
     return(data.UpdateVersion("1"));
 }
Esempio n. 10
0
 private IFunctionData UpdateToVersion1(IFunctionData data)
 {
     data = AddMissingProperties(data);
     return(data.UpdateVersion("1"));
 }