public Assembly GetTriggerReference(AbstractFunctionDefinition functionDefinition)
 {
     if (TriggerReferences.TryGetValue(functionDefinition.GetType(), out Assembly assembly))
     {
         return(assembly);
     }
     throw new ConfigurationException($"No trigger reference mapping configured for a function of type {functionDefinition.GetType().Name}");
 }
Ejemplo n.º 2
0
 public StorageFunctionOptionBuilder(
     ConnectionStringSettingNames connectionStringSettingNames,
     IStorageFunctionBuilder underlyingBuilder,
     AbstractFunctionDefinition definition)
 {
     _connectionStringSettingNames = connectionStringSettingNames;
     _underlyingBuilder            = underlyingBuilder;
     _definition = definition;
 }
Ejemplo n.º 3
0
 public ServiceBusFunctionOptionBuilder(
     ConnectionStringSettingNames connectionStringSettingNames,
     IServiceBusFunctionBuilder underlyingBuilder,
     AbstractFunctionDefinition functionDefinition)
 {
     _connectionStringSettingNames = connectionStringSettingNames;
     _underlyingBuilder            = underlyingBuilder;
     _functionDefinition           = functionDefinition;
 }
        private static void WriteTemplate(TextWriter writer, AbstractFunctionDefinition functionDefinition)
        {
            TemplateProvider      templateProvider = new TemplateProvider();
            string                templateSource   = templateProvider.GetCSharpOutputCollectorTemplate(functionDefinition.OutputBinding);
            Func <object, string> template         = Handlebars.Compile(templateSource);

            string output = template(functionDefinition);

            writer.Write(output);
        }
Ejemplo n.º 5
0
 private string GetTemplate(AbstractFunctionDefinition functionDefinition, string type)
 {
     if (TypeToTemplatePrefixMap.TryGetValue(functionDefinition.GetType(), out string prefix))
     {
         using (Stream stream = GetType().Assembly.GetManifestResourceStream($"FunctionMonkey.Compiler.Templates.{prefix}.{type}.handlebars"))
             using (StreamReader reader = new StreamReader(stream))
                 return(reader.ReadToEnd());
     }
     throw new ConfigurationException($"No templates are configured for function definitions of type {functionDefinition.GetType().Name}");
 }
Ejemplo n.º 6
0
        private static void WriteTemplate(TextWriter writer, AbstractFunctionDefinition functionDefinition)
        {
            TemplateProvider      templateProvider = new TemplateProvider(CompileTargetEnum.AzureFunctions);
            string                templateSource   = templateProvider.GetCSharpOutputParameterTemplate(functionDefinition.OutputBinding);
            Func <object, string> template         = Handlebars.Compile(templateSource);

            string output = template(functionDefinition.OutputBinding);

            writer.Write(",");
            writer.Write(output);
        }
Ejemplo n.º 7
0
        private HttpFunctionDefinition FindHttpFunctionDefinition(ICommand command)
        {
            AbstractFunctionDefinition functionDefinition = _runtimeInstance.Builder.FunctionDefinitions.Single(x => x.CommandType == command.GetType());

            if (!(functionDefinition is HttpFunctionDefinition httpFunctionDefinition))
            {
                throw new TestException(
                          $"An http test can only be run for http trigger associated commands, command type {command.GetType().Name} is not associated with a HTTP trigger");
            }

            return(httpFunctionDefinition);
        }
Ejemplo n.º 8
0
 public OutputBindingBuilder(
     ConnectionStringSettingNames connectionStringSettingNames,
     TParentBuilder parentBuilder,
     AbstractFunctionDefinition functionDefinition,
     Type pendingOutputConverterType
     )
 {
     _connectionStringSettingNames = connectionStringSettingNames;
     _parentBuilder              = parentBuilder;
     _functionDefinition         = functionDefinition;
     _pendingOutputConverterType = pendingOutputConverterType;
 }
Ejemplo n.º 9
0
        public Type CalculateCommandResultType(AbstractFunctionDefinition definition)
        {
            if (definition.ExplicitCommandResultType != null)
            {
                return(definition.ExplicitCommandResultType);
            }

            if (definition.NoCommandHandler || definition.CommandType.GetInterfaces().Any(x => x == typeof(ICommandWithNoHandler)))
            {
                return(definition.CommandType);
            }

            return(_resultTypeExtractor.CommandResultType(definition.CommandType));
        }
        private static void WriteTemplate(TextWriter writer, AbstractFunctionDefinition functionDefinition)
        {
            TemplateProvider templateProvider = new TemplateProvider();
            string           templateSource   = templateProvider.GetJsonOutputParameterTemplate(functionDefinition.OutputBinding);

            if (templateSource != null)
            {
                Func <object, string> template = Handlebars.Compile(templateSource);

                string output = template(functionDefinition.OutputBinding);
                writer.Write(",");
                writer.Write(output);
            }
        }
Ejemplo n.º 11
0
        private ISerializer CreateSerializer(AbstractFunctionDefinition functionDefinition)
        {
            ISerializer serializer;

            if (functionDefinition.SerializerNamingStrategyType != null)
            {
                var deserializerNamingStrategy = (NamingStrategy)
                                                 Activator.CreateInstance(functionDefinition.DeserializerNamingStrategyType);
                var serializerNamingStrategy = (NamingStrategy)
                                               Activator.CreateInstance(functionDefinition.SerializerNamingStrategyType);
                serializer =
                    new NamingStrategyJsonSerializer(deserializerNamingStrategy, serializerNamingStrategy);
            }
            else
            {
                serializer = (FunctionMonkey.Abstractions.ISerializer)
                             ServiceProvider.GetService(functionDefinition.CommandDeserializerType);
            }

            return(serializer);
        }
Ejemplo n.º 12
0
 public string GetJsonTemplate(AbstractFunctionDefinition functionDefinition)
 {
     return(GetTemplate(functionDefinition, "json"));
 }
 public ServiceBusQueueOutputBinding(AbstractFunctionDefinition associatedFunctionDefinition, string connectionStringSettingName) : base(associatedFunctionDefinition, connectionStringSettingName)
 {
 }
Ejemplo n.º 14
0
 public string GetCSharpTemplate(AbstractFunctionDefinition functionDefinition)
 {
     return(GetTemplate(functionDefinition, "csharp"));
 }
 public StorageBlobOutputBinding(AbstractFunctionDefinition associatedFunctionDefinition) : base(associatedFunctionDefinition)
 {
 }
Ejemplo n.º 16
0
 public ServiceBusFunctionOptionBuilder(IServiceBusFunctionBuilder underlyingBuilder,
                                        AbstractFunctionDefinition functionDefinition)
 {
     _underlyingBuilder  = underlyingBuilder;
     _functionDefinition = functionDefinition;
 }
Ejemplo n.º 17
0
 public FunctionOptions(AbstractFunctionDefinition functionDefinition)
 {
     _functionDefinition = functionDefinition;
 }
Ejemplo n.º 18
0
 public StorageBlobOutput(AbstractFunctionDefinition associatedFunctionDefinition, string connectionStringSettingName) : base(associatedFunctionDefinition, connectionStringSettingName)
 {
 }
 public TimerFunctionOptionsBuilder(ConnectionStringSettingNames connectionStringSettingNames, IFunctionBuilder functionBuilder, AbstractFunctionDefinition functionDefinition)
 {
     _connectionStringSettingNames = connectionStringSettingNames;
     _functionBuilder    = functionBuilder;
     _functionDefinition = functionDefinition;
 }
Ejemplo n.º 20
0
 protected AbstractOutputBinding(AbstractFunctionDefinition associatedFunctionDefinition)
 {
     _associatedFunctionDefinition = associatedFunctionDefinition;
 }
Ejemplo n.º 21
0
 protected AbstractConnectionStringOutputBinding(AbstractFunctionDefinition associatedFunctionDefinition, string connectionStringSettingName) : base(associatedFunctionDefinition)
 {
     ConnectionStringSettingName = connectionStringSettingName;
 }
 public EventHubOutputBinding(AbstractFunctionDefinition associatedFunctionDefinition, string connectionStringSettingName) : base(associatedFunctionDefinition, connectionStringSettingName)
 {
 }
 public StorageFunctionOptionBuilder(IStorageFunctionBuilder underlyingBuilder,
                                     AbstractFunctionDefinition definition)
 {
     _underlyingBuilder = underlyingBuilder;
     _definition        = definition;
 }
Ejemplo n.º 24
0
 public OutputBindingBuilder(ConnectionStringSettingNames connectionStringSettingNames, TParentBuilder parentBuilder, AbstractFunctionDefinition functionDefinition)
 {
     _connectionStringSettingNames = connectionStringSettingNames;
     _parentBuilder      = parentBuilder;
     _functionDefinition = functionDefinition;
 }
Ejemplo n.º 25
0
 public StorageTableOutputBinding(AbstractFunctionDefinition associatedFunctionDefinition, string connectionStringSettingName) : base(associatedFunctionDefinition, connectionStringSettingName)
 {
 }