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>Creates POC object from its properties</summary> /// <returns>POC object</returns> private static IdentityDocumentImage ParseEntity(string folderName, string sequenceNumber, string identityDocumentId) { var identityDocumentImage = new IdentityDocumentImage(); byte number; if (!byte.TryParse(sequenceNumber, out number)) throw new Exception("Incorrect ID during instantiating of Identity Document Image"); identityDocumentImage.SequenceNumber = number; int identityDocumentNo; if (!int.TryParse(identityDocumentId, out identityDocumentNo)) throw new Exception("Incorrect Identity Document ID during instantiating of Identity Document Image with ID = " + identityDocumentImage.SequenceNumber); identityDocumentImage.IdentityDocumentId = identityDocumentNo; var imagePath = string.Format(Constants.Blobs.IdentityDocumentImageFormat, folderName, identityDocumentNo, number); var fileInfo = new FileInfo(imagePath); using (var stream = File.OpenRead(imagePath)) { identityDocumentImage.Initialize(stream, (int) fileInfo.Length, fileInfo.Name); } return identityDocumentImage; }