public async Task <IActionResult> NameChangeRequest(NameChangeRequestViewModel model) { if (model.fileBase != null && model.fileBase.Length <= 25000000) { var allowedExtensions = new[] { ".pdf", ".png", ".docx", ".xlsx", ".jpg" }; if (!allowedExtensions.Contains(Path.GetExtension(model.fileBase.FileName).ToLower())) { TempData["AlertWarningMsg"] = "Attachment not added to travel. Invalid File Format. File must be .pdf, .png, .docx, .xlsx, .jpg"; } else { byte[] bytes; model.Attachement = new NameChangeAttachements(); using (var memoryStream = new MemoryStream()) { await model.fileBase.CopyToAsync(memoryStream); bytes = memoryStream.ToArray(); } model.Attachement.FileName = Path.GetFileName(model.fileBase.FileName); model.Attachement.FileType = model.fileBase.ContentType; model.Attachement.File = bytes; NameChangeRequest nameChange = new NameChangeRequest { oldFirstName = model.oldFirstName, oldMiddleName = model.oldMiddleName, oldLastName = model.oldLastName, newFirstName = model.newFirstName, newMiddleName = model.newMiddleName, newLastName = model.newLastName, UserId = _userManager.GetUserId(User) }; await _context.NameChangeRequests.AddAsync(nameChange); await _context.SaveChangesAsync(); NameChangeAttachements attachement = new NameChangeAttachements { NameChangeId = nameChange.Id, FileName = model.Attachement.FileName, FileType = model.Attachement.FileType, File = model.Attachement.File, Status = true }; await _context.NameChangeAttachements.AddAsync(attachement); await _context.SaveChangesAsync(); } StatusMessage = "Your request has been submitted for review."; return(RedirectToAction(nameof(NameChangeRequest))); } else { return(View()); } }
public async Task <IActionResult> NameChangeRequest() { var user = await _userManager.GetUserAsync(User); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); } NameChangeRequestViewModel model = new NameChangeRequestViewModel { oldFirstName = user.FirstName, oldMiddleName = user.MiddleName, oldLastName = user.LastName }; return(View(model)); }