/// <summary>Downloads the image from the site</summary>
 /// <param name="id">ID of the image</param>
 /// <returns>Fiew view</returns>
 public FileContentResult Download(int id)
 {
     IdentityDocumentImage identityDocumentImage;
     using (var context = new DatabaseContext())
     {
         identityDocumentImage = context.IdentityDocumentImages.First(x => x.Id == id);
     }
     var storage = new IdentityDocumentImageStorage();
     var bytes = storage.Download(id);
     return File(bytes, "image/" + identityDocumentImage.Format, identityDocumentImage.FileName);
 }
        public ActionResult Upload(IdentityDocumentImage identityDocumentImage, HttpPostedFileBase file)
        {
            if (file != null && file.ContentLength > 0)
            {
                using (var context = new DatabaseContext())
                {
                    var identityDocumentImages = context.IdentityDocumentImages
                        .Where(x => x.IdentityDocumentId == identityDocumentImage.IdentityDocumentId).ToList();
                    var sequenceNumber = (byte)(identityDocumentImages.Count == 0 ? 1
                        : identityDocumentImages.Max(x => x.SequenceNumber) + 1);
                    identityDocumentImage.SequenceNumber = sequenceNumber;
                    var bytes = identityDocumentImage.Initialize(file.InputStream, file.ContentLength, file.FileName);

                    context.IdentityDocumentImages.Add(identityDocumentImage);
                    context.SaveChanges();

                    var storage = new IdentityDocumentImageStorage();
                    storage.Upload(identityDocumentImage.Id, bytes);
                }
            }
            return RedirectToAction("WithImages", "IdentityDocument", new { id = identityDocumentImage.IdentityDocumentId });
        }
 /// <summary>Constructor establishes the connection</summary>
 /// <param name="sourceFolder">The folder keeping images</param>
 public BlobPersister(string sourceFolder)
 {
     _sourceFolder = sourceFolder;
     _identityDocumentImageStorage = new IdentityDocumentImageStorage();
     _archiveDocumentImageStorage = new ArchiveDocumentImageStorage();
 }