コード例 #1
0
        public async Task AddPhoto(IFormFile photo, string criminalId)
        {
            var asyncSessionCriminals = _store.OpenAsyncSession("CriminalFinder.Criminals");

            var criminal = await asyncSessionCriminals.LoadAsync <Criminal>(criminalId);

            var timestamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();

            if (await asyncSessionCriminals.Query <Photo>().AnyAsync(x => x.PhotoOwner.Id == criminalId))
            {
                var oldPhoto = await asyncSessionCriminals.LoadAsync <Photo>("Photo_" + criminalId);

                asyncSessionCriminals.Delete(oldPhoto);
                await asyncSessionCriminals.SaveChangesAsync();
            }
            var photoDeatils = new Photo
            {
                PhotoOwner  = criminal,
                Description = "Zdjęcie " + criminal.FirstName + " " + criminal.LastName,
                Tags        = new[] { "Zdjęcie", "Podejrzany", "Przestępca" },
                FaceModel   = _faceRecognitionService.GetFaceAttributesFromPhoto(photo)
            };

            await asyncSessionCriminals.StoreAsync(photoDeatils, "Photo_" + criminalId);

            asyncSessionCriminals.Advanced.Attachments.Store("Photo_" + criminalId, "photo_" + timestamp.ToString() + ".jpg", photo.OpenReadStream(), photo.ContentType);
            await asyncSessionCriminals.SaveChangesAsync();
        }