コード例 #1
0
        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));
        }
コード例 #2
0
 public void Update(FoundItemClaim entity)
 {
     context.Entry(entity).State = EntityState.Modified;
 }
コード例 #3
0
 public void Delete(FoundItemClaim entity)
 {
     context.Remove(entity);
 }
コード例 #4
0
 public void Create(FoundItemClaim entity)
 {
     context.FoundItemClaims.Add(entity);
 }
コード例 #5
0
        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));
        }