public void Write(TextWriter writer, Type type) { WriteTypeKind(writer, type); writer.Write(" \""); _typeNameWriter.Write(writer, type); writer.Write("\" as "); _escapedTypeNameWriter.Write(writer, type); writer.WriteLine(" {"); WriteMembers( writer, () => _queryType.GetFields(type), i => _fieldWriter.Write(writer, i)); WriteMembers( writer, () => _queryType.GetProperties(type), i => _propertyWriter.Write(writer, i)); WriteMembers( writer, () => _queryType.GetMethods(type), i => _methodWriter.Write(writer, i)); WriteMembers( writer, () => _queryType.GetEvents(type), i => _eventWriter.Write(writer, i)); writer.WriteLine("}"); }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger <Startup> logger) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } logger.LogInformation("Service is starting..."); app.UseRouting(); var eventReader = new CloudEventReader(logger); var configReader = new ConfigReader(logger); var bucketExpected = configReader.Read("BUCKET"); IEventWriter eventWriter = configReader.ReadEventWriter(CloudEventSource, CloudEventType); IBucketEventDataReader bucketEventDataReader = configReader.ReadEventDataReader(); app.UseEndpoints(endpoints => { endpoints.MapPost("/", async context => { logger.LogInformation("Reading event"); var cloudEvent = await eventReader.Read(context); logger.LogInformation("Getting Bucket"); var(bucket, name) = bucketEventDataReader.Read(cloudEvent); // This is only needed in Cloud Run (Managed) when the // events are not filtered by bucket yet. if (bucket != bucketExpected) { logger.LogInformation($"Input bucket '{bucket}' does not match with expected bucket '{bucketExpected}'"); return; } var storageUrl = $"gs://{bucket}/{name}"; logger.LogInformation($"Storage url: {storageUrl}"); var safe = await IsPictureSafe(storageUrl); logger.LogInformation($"Is the picture safe? {safe}"); if (!safe) { return; } var replyData = JsonConvert.SerializeObject(new { bucket = bucket, name = name }); await eventWriter.Write(replyData, context); }); }); }
public void Write(TextWriter writer, Type type, IQueryType queryType) { WriteTypeKind(writer, type); writer.Write(' '); _typeNameWriter.Write(writer, type); if (type.BaseType != null) { writer.Write(" : "); _typeNameWriter.Write(writer, type.BaseType); } var implementedInterfaces = queryType.GetInterfaces(type).ToArray(); if (implementedInterfaces.Length > 0) { writer.Write(" implements "); writer.Write(string.Join(',', implementedInterfaces.Select(_typeNameConverter.ToString))); } writer.WriteLine(" {"); WriteMembers("Fields", writer, () => queryType.GetFields(type), i => _fieldWriter.Write(writer, i)); WriteMembers("Properties", writer, () => queryType.GetProperties(type), i => _propertyWriter.Write(writer, i)); WriteMembers("Methods", writer, () => queryType.GetMethods(type), i => _methodWriter.Write(writer, i)); WriteMembers("Events", writer, () => queryType.GetEvents(type), i => _eventWriter.Write(writer, i)); writer.WriteLine("}"); }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger <Startup> logger) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } logger.LogInformation("Service is starting..."); app.UseRouting(); var eventReader = new CloudEventReader(logger); var configReader = new ConfigReader(logger); var projectId = configReader.Read("PROJECT_ID"); IEventWriter eventWriter = configReader.ReadEventWriter(CloudEventSource, CloudEventType); app.UseEndpoints(endpoints => { endpoints.MapPost("/", async context => { var client = await BigQueryClient.CreateAsync(projectId); var cloudEvent = await eventReader.Read(context); var country = ReadCountry(cloudEvent); _tableId = country.Replace(" ", "").ToLowerInvariant(); var results = await RunQuery(client, country, logger); logger.LogInformation("Executed query"); var replyData = JsonConvert.SerializeObject(new { datasetId = DatasetId, tableId = _tableId, country = country }); await eventWriter.Write(replyData, context); }); }); }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger <Startup> logger) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } logger.LogInformation("Service is starting..."); app.UseRouting(); var eventReader = new CloudEventReader(logger); var configReader = new ConfigReader(logger, CloudEventSource, CloudEventType); var outputBucket = configReader.Read("BUCKET"); IEventWriter eventWriter = configReader.ReadEventWriter(); app.UseEndpoints(endpoints => { endpoints.MapPost("/", async context => { try { var(bucket, name) = await eventReader.ReadCloudStorageData(context); using (var inputStream = new MemoryStream()) { var client = await StorageClient.CreateAsync(); await client.DownloadObjectAsync(bucket, name, inputStream); logger.LogInformation($"Downloaded '{name}' from bucket '{bucket}'"); using (var outputStream = new MemoryStream()) { inputStream.Position = 0; // Reset to read using (Image image = Image.Load(inputStream)) { image.Mutate(x => x .Resize(ThumbWidth, ThumbHeight) ); logger.LogInformation($"Resized image '{name}' to {ThumbWidth}x{ThumbHeight}"); image.SaveAsPng(outputStream); } var outputObjectName = $"{Path.GetFileNameWithoutExtension(name)}-{ThumbWidth}x{ThumbHeight}.png"; await client.UploadObjectAsync(outputBucket, outputObjectName, "image/png", outputStream); logger.LogInformation($"Uploaded '{outputObjectName}' to bucket '{outputBucket}'"); var replyData = new { bucket = outputBucket, name = outputObjectName }; await eventWriter.Write(replyData, context); } } } catch (Exception e) { logger.LogError($"Error processing: " + e.Message); throw e; } }); }); }