Beispiel #1
0
        public static bool mainActivity([ActivityTrigger] BlobInfo info,
                                        ILogger log,
                                        [Blob("test1/{info.filename}", FileAccess.Read, Connection = "AzureWebJobsStorage")] Stream InStream,
                                        [Blob("test1/output-{info.filename}", FileAccess.Write, Connection = "AzureWebJobsStorage")] Stream OutStream
                                        )
        {
            // Create Pipe and JSON blob stream
            IEnumerable <Row> humans = JsonReaderExtensions.convertToJsonIterable(InStream);
            // IEnumerable<Pipe> pipeline = JsonReaderExtensions.convertToJsonIterable(info.pipeline);


            Func <Row, object> mapFunction = value =>
            {
                var obj = new
                {
                    name     = value.name,
                    age      = value.age + 10,
                    eyeColor = value.eyeColor
                };
                return(obj);
            };

            Func <dynamic, bool> filterPredicate = value =>
            {
                return(value.eyeColor == "green");
            };

            Func <IEnumerable, IEnumerable> pipeline = Activities.pipelineMaker(
                Activities.mapMaker <Row, dynamic>(mapFunction),
                Activities.eachMaker(),
                Activities.filterMaker(filterPredicate)
                );

            // Prepare Output stream writer
            using (JsonTextWriter wr = JsonReaderExtensions.InitJsonOutStream(OutStream))
            {
                wr.WriteStartArray();
                foreach (var h in pipeline(humans))
                {
                    wr.SerialiseJsonToStream <dynamic>(h);
                }
                wr.WriteEndArray();
            }
            return(true);
        }