public async Task PersistImage(string id) { var handler = new MongoDbFileHandler(_mongoConnectionString); var image = await handler.GetMessageObject <DtoImage>(id); using (var sourceStream = File.Open($"{Guid.NewGuid()}{Path.GetExtension(image.FileName)}", FileMode.OpenOrCreate)) { sourceStream.Seek(0, SeekOrigin.End); await sourceStream.WriteAsync(image.Data, 0, image.Data.Length); } }
private async Task WorkImage(ImageProcessingJob job) { var fileHandler = new MongoDbFileHandler(_imageDbConnectionString); var sourcefile = await fileHandler.GetMessageObject <DtoImage>(job.Id); var outputfile = AddOverlay(sourcefile, job.Overlay, job.Resolution); var id = await fileHandler.SaveMessageObject(outputfile); foreach (var successor in job.Successors) { successor.Id = id; await _bus.PublishAsync(successor.GetType(), successor); } }
private async Task UploadImage(ImageUploadJob job) { var handler = new MongoDbFileHandler(_mongoConnectionString); var image = await handler.GetMessageObject <DtoImage>(job.Id); using (var client = new HttpClient()) using (var content = new MultipartFormDataContent()) { content.Add(new StringContent(job.User), "User"); content.Add(new StringContent(job.Message), "Message"); content.Add(new StringContent("devspace2016"), "APIKEY"); content.Add(new ByteArrayContent(image.Data), "Image", image.FileName); await client.PostAsync(_externalAppUrl, content); } }
public async Task PersistImage(string imageId, Guid userId, string sourceId, string message, int resolution) { var handler = new MongoDbFileHandler(_mongoConnectionString); var image = await handler.GetMessageObject <DtoImage>(imageId); var store = DocumentStore.For(_dbConnectionString); using (var session = store.LightweightSession()) { var user = await session.Query <User>().Where(x => x.Id == userId).FirstAsync(); var processingJob = await session.Query <ProcessingJob>().Where(x => x.UserId == user.Id && x.SourceId == sourceId).FirstOrDefaultAsync(); if (processingJob == null) { processingJob = new ProcessingJob { Timestamp = DateTime.Now, Message = message, UserId = user.Id, SourceId = sourceId, Images = new List <Image>(), Filename = image.FileName }; } var dbImage = new Image { Data = image.Data, Id = Guid.NewGuid(), Resolution = resolution }; processingJob.Images.Add(dbImage); session.Store(processingJob); session.SaveChanges(); } }