public async Task <IActionResult> Edit(int id, FoundItemClaim model, IFormFile file = null) { if (id != model.Id) { return(NotFound()); } var foundItemClaim = await claimRepository.GetFoundItemClaimById(id); Image image = null; if (ModelState.IsValid) { if (file != null) { if (!utility.IsSizeAllowed(file)) { ModelState.AddModelError("Photo", "Your file is too large, maximum allowed size is: 5MB"); return(View(file)); } if (!utility.IsImageExtensionAllowed(file)) { ModelState.AddModelError("Photo", "Please only file of type:.jpg, .jpeg, .gif, .png, .bmp are allowed"); return(View(file)); } var photoPath = utility.SaveImageToFolder(file); image = new Image { ImagePath = photoPath }; foundItemClaim.Image = image; } try { foundItemClaim.DateLost = model.DateLost; foundItemClaim.Description = model.Description; foundItemClaim.WhereItemWasLost = model.WhereItemWasLost; foundItemClaim.Color = model.Color; foundItemClaim.ModifiedOn = DateTime.UtcNow; foundItemClaim.IsEditedCount += 1; claimRepository.Update(foundItemClaim); claimRepository.Save(); } catch (DbUpdateConcurrencyException) { if (!FoundItemClaimExists(foundItemClaim.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(foundItemClaim)); }
public void Update(FoundItemClaim entity) { context.Entry(entity).State = EntityState.Modified; }
public void Delete(FoundItemClaim entity) { context.Remove(entity); }
public void Create(FoundItemClaim entity) { context.FoundItemClaims.Add(entity); }
public async Task <IActionResult> Create(FoundItemClaimViewModel model) { var user = await userManager.GetUserAsync(HttpContext.User); var foundItem = await foundItemRepository.GetFoundItemById(model.FoundItemId); if (user == null || user == foundItem.FoundItemUser) { ModelState.AddModelError("", "You Cant Claim an Item you Logged"); return(View()); } if (ModelState.IsValid) { foreach (var clam in foundItem.FoundItemClaims) { if (user == clam.ApplicationUser) { ModelState.AddModelError("", "You Cant claim an Item twice"); return(View()); } } Image image = null; if (model.Image != null) { if (!utility.IsSizeAllowed(model.Image)) { ModelState.AddModelError("Photo", "Your file is too large, maximum allowed size is: 5MB"); return(View(model)); } if (!utility.IsImageExtensionAllowed(model.Image)) { ModelState.AddModelError("Photo", "Please only file of type:.jpg, .jpeg, .gif, .png, .bmp are allowed"); return(View(model)); } var photoPath = utility.SaveImageToFolder(model.Image); image = new Image { ImagePath = photoPath }; } user.PhoneNumber = user.PhoneNumber ?? model.PhoneNumber; var claim = new FoundItemClaim { ApplicationUser = user, FoundItemId = model.FoundItemId, Description = model.Description, DateLost = model.DateLost, WhereItemWasLost = model.WhereItemWasLost, Image = image, }; claimRepository.Create(claim); claimRepository.Save(); var ConfirmEmail = Url.Action("Claims", "FoundItem", new { area = User, id = foundItem.Id }, Request.Scheme); var message = new Dictionary <string, string> { { "UName", $"{foundItem.FoundItemUser.FirstName}" }, { "FName", $"{user.FirstName}" }, { "ClaimLink", $"{ConfirmEmail}" } }; await emailNotifier.SendEmailAsync(foundItem.FoundItemUser.Email, "New Claim", message, "foundItemClaim"); return(RedirectToAction(nameof(Index))); } return(View(model)); }