public ActionResult Edit(int id) { var model = new ArtefactsCreateViewModel() { Artefact = _context.Artefacts.FirstOrDefault(x => x.Id == id), }; return(View(model)); }
public ActionResult Create() { var model = new ArtefactsCreateViewModel() { Artefact = new Artefact(), Donors = _context.Donors .Include(x => x.User) .Select(x => new SelectListItem() { Text = x.User.Email, Value = x.Id.ToString() }).ToList() }; return(View(model)); }
public async Task <ActionResult> Edit(ArtefactsCreateViewModel model) { S3Helper s3 = new S3Helper(); s3.DeleteFile(model.Artefact.Filename); try { if (model.Artefact.AccessionNumber != null) { // set date model.Artefact.DateAccessioned = DateTime.Now; // if completed correctly if (model.Artefact.AdlibReference != null) { model.Artefact.IsCompleted = true; } } if (model.Image != null) { // change image in storage string fileName = "artefact-" + DateTime.Now.ToString("yyyyMMddTHH:mm:ssZ"); model.Artefact.Filename = fileName; var imageUrl = s3.GetFilePath(fileName); model.Artefact.ImageUrl = imageUrl; s3.UploadFile(model.Image, fileName); } // update last edited by var user = await _userManager.GetUserAsync(this.User); model.Artefact.UserLastEditedById = user.Id; _context.Artefacts.Update(model.Artefact); _context.SaveChanges(); return(RedirectToAction(nameof(Index))); } catch { return(View(model)); } }
public async Task <ActionResult> Create(ArtefactsCreateViewModel model) { S3Helper S3 = new S3Helper(); var file = model.Image; var rawFileName = model.Image.FileName; int position = rawFileName.LastIndexOf("."); String fileExt = rawFileName.Substring(position, rawFileName.Length - position); string fileName = "artefact-" + DateTime.Now.ToString("yyyyMMddTHH:mm:ssZ") + fileExt; string imageUrl = S3.GetFilePath(fileName); try { var user = await _userManager.GetUserAsync(this.User); if (model.Artefact.AccessionNumber == null || model.Artefact.AdlibReference == null) { // mark that accession must be completed model.Artefact.IsCompleted = false; } else { // complete accession model.Artefact.DateAccessioned = DateTime.Now; model.Artefact.IsCompleted = true; } model.Artefact.ImageUrl = imageUrl; model.Artefact.IsArchived = false; model.Artefact.Filename = fileName; _context.Artefacts.Add(model.Artefact); _context.SaveChanges(); var donorArtefact = new DonorArtefact() { ArtefactId = model.Artefact.Id }; if (User.IsInRole("Donor")) // what if user is both a Donor and a Volunteer/Staff/Admin? { // set currently logged in Donor donorArtefact.DonorId = _context.Donors.FirstOrDefault(x => x.UserId == user.Id).Id; } else { // set posted Donor donorArtefact.DonorId = model.DonorId; } _context.DonorArtefacts.Add(donorArtefact); _context.SaveChanges(); S3.UploadFile(model.Image, fileName); return(RedirectToAction(nameof(Index))); } catch { return(View(model)); } }