// GET: Employees/Verify/5 public async Task <IActionResult> Verify(int?id) { if (id == null) { return(NotFound()); } var employee = await _employees.FindByIdAsync(id.Value); if (employee == null) { return(NotFound()); } // Populate Photo View Model var photoData = new EmployeePhotoViewModel(employee, _storageService); var validPhoto = await _employees.ValidatePhotoAsync(employee); photoData.MapFacesForValidation(validPhoto.Faces); if (!validPhoto.IsValidEmployeePhoto) { ViewBag.ErrorMessage = "There was an error with the photo."; } ViewBag.KnownPhotoData = photoData; ViewBag.ToVerifyPhotoData = new EmployeePhotoViewModel(); return(View(employee)); }
// GET: Employees/Edit/5 public async Task <IActionResult> Edit(int?id, bool highlightFaces = false) { if (id == null) { return(NotFound()); } var employee = await _employees.FindByIdAsync(id.Value); if (employee == null) { return(NotFound()); } // Populate Photo View Model var photoData = new EmployeePhotoViewModel(employee, _storageService); if (highlightFaces == true) { // Check Faces var validPhoto = await _employees.ValidatePhotoAsync(employee); photoData.MapFacesForValidation(validPhoto.Faces); if (!validPhoto.IsValidEmployeePhoto) { ViewBag.ErrorMessage = "There was an error with the photo."; } } ViewBag.PhotoData = photoData; return(View(employee)); }
public async Task <IActionResult> VerifySubmit(int id, IFormFile photo) { var employee = await _employees.FindByIdAsync(id); // Populate Known Photo View Model var photoData = new EmployeePhotoViewModel(employee, _storageService); var validPhoto = await _employees.ValidatePhotoAsync(employee); photoData.MapFacesForValidation(validPhoto.Faces); if (!validPhoto.IsValidEmployeePhoto) { ViewBag.ErrorMessage = "There was an error with the photo."; } ViewBag.KnownPhotoData = photoData; // Upload the Verification Photo to Blob Storage var uniqueVerifyPath = "verify/" + System.Guid.NewGuid().ToString() + Path.GetExtension(photo.FileName); var photoUploadData = await _storageService.WriteEmployeePhoto(employee.Id, uniqueVerifyPath, photo); var verifyFullUrl = _storageService.FullPhotoUrl(employee.Id, uniqueVerifyPath); // Run Verification var verifyData = await _employees.VerifyPhotoAsync(employee, verifyFullUrl); // Populate Photo Data for Verification Matches var verifyPhotoData = new EmployeePhotoViewModel(employee, _storageService); verifyPhotoData.Url = verifyFullUrl; verifyPhotoData.OriginalImageHeight = photoUploadData.ImageHeight; verifyPhotoData.OriginalImageWidth = photoUploadData.ImageWidth; verifyPhotoData.MapFacesForVerification(verifyData); ViewBag.ToVerifyPhotoData = verifyPhotoData; ViewBag.IsMatch = false; if (verifyData.Where(y => y.IsMatch == true).Count() > 0) { ViewBag.IsMatch = true; } return(View(employee)); }
private void EmployeePhoto_OnUnloaded(object sender, RoutedEventArgs e) { EmployeePhotoViewModel.CleanUp(); }
public async Task <IActionResult> Edit(int id, [Bind("Id,FirstName,LastName,Department,PhotoFileName,RowVersion")] Employee employee, IFormFile photo) { if (id != employee.Id) { return(NotFound()); } // Populate Model for Photo var photoData = new EmployeePhotoViewModel(employee, _storageService); if (ModelState.IsValid) { if (await _employees.UpdateAsync(employee)) { if (photo != null) { // Upload Photo File to Blob Storage Here var photoFileName = Path.GetFileName(photo.FileName); var photoUploadData = await _storageService.WriteEmployeePhoto(employee.Id, photoFileName, photo); if (photoUploadData.Success) { var employeeToUpdate = await _employees.FindByIdAsync(employee.Id); employeeToUpdate.PhotoHeight = photoUploadData.ImageHeight; employeeToUpdate.PhotoWidth = photoUploadData.ImageWidth; employeeToUpdate.PhotoFileName = photoFileName; await _employees.UpdateAsync(employeeToUpdate); // Update ViewModel with new photo information photoData = new EmployeePhotoViewModel(employeeToUpdate, _storageService); /*photoData.Url = _storageService.FullPhotoUrl(employee.Id, employee.PhotoFileName); * photoData.AltText = employee.FirstName + " " + employee.LastName; * photoData.OriginalImageHeight = photoUploadData.ImageHeight; * photoData.OriginalImageWidth = photoUploadData.ImageWidth;*/ } // Check Faces var validPhoto = await _employees.ValidatePhotoAsync(employee); photoData.MapFacesForValidation(validPhoto.Faces); if (!validPhoto.IsValidEmployeePhoto) { ViewBag.ErrorMessage = "There was an error with the photo."; } else { ViewBag.SuccessMessage = "Changes Saved"; } ViewBag.PhotoData = photoData; return(View(employee)); } return(RedirectToAction(nameof(Index))); } else { ViewBag.ErrorMessage = "An error occurred while updating the employee."; ViewBag.PhotoData = photoData; return(View(employee)); } } ViewBag.PhotoData = photoData; return(View(employee)); }