public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } _context.Attach(Destination).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!DestinationExists(Destination.ID)) { return(NotFound()); } else { throw; } } return(RedirectToPage("./Index")); }
public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } AcquiredItem originalItem = await _context.AcquiredItem.FirstOrDefaultAsync(m => m.ID == AcquiredItem.ID); if (originalItem != null && Request.Form.Files.Count == 0) { AcquiredItem.Attachment = originalItem.Attachment; AcquiredItem.AttachmentFileName = originalItem.AttachmentFileName; AcquiredItem.AttachmentContentType = originalItem.AttachmentContentType; } _context.Entry(originalItem).State = EntityState.Detached; // detach from original item so you can attach to new one if (Request.Form.Files.Count > 0) { Stream s = Request.Form.Files[0].OpenReadStream(); if (s.Length < 20 * 1024 * 1024) { byte[] buffer = new byte[s.Length]; s.Read(buffer, 0, (int)s.Length); s.Close(); AcquiredItem.Attachment = buffer; AcquiredItem.AttachmentFileName = Request.Form.Files[0].FileName; AcquiredItem.AttachmentContentType = Request.Form.Files[0].ContentType; } else { s.Close(); ModelState.AddModelError(string.Empty, "The attachment is too large. The maximum size is 20MB."); return(Page()); } } _context.Attach(AcquiredItem).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!AcquiredItemExists(AcquiredItem.ID)) { return(NotFound()); } else { throw; } } return(RedirectToPage("../Assessments/Details", new { id = AcquiredItem.AssessmentID })); }