Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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();
            }
        }