public IActionResult Create(int id)
        {
            var claim = new FoundItemClaimViewModel {
                FoundItemId = id
            };

            //ViewBag.StateList = await claimRepository.GetAllStates();

            return(View(claim));
        }
        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));
        }