async public Task <IActionResult> EditItem(string categoryslug, string itemslug, string cancelItem, EditItemViewModel model) { // Cancel Item if (!string.IsNullOrEmpty(cancelItem)) { var itemId = HttpContext.Request.Form["ItemId"]; _projectEngine.UpdateItemStatus(new Guid(itemId), StatusTypes.Declined); return(RedirectToRoute("projects")); } SetPageContent("createItem"); if (ModelState.IsValid) { var questions = _projectEngine.GetCategoryQuestions(categoryslug); foreach (var question in questions) { if (question.CategoryQuestionTypeId == 3) { var values = HttpContext.Request.Form[Converter.String.ToValidControlId(question.Label)]; question.Value = string.Join("|", values); } else { question.Value = HttpContext.Request.Form[Converter.String.ToValidControlId(question.Label)]; } } var itemId = HttpContext.Request.Form["ItemId"]; var title = HttpContext.Request.Form["Title"]; var description = HttpContext.Request.Form["Description"]; var provinceId = HttpContext.Request.Form["ProvinceId"]; var districtId = HttpContext.Request.Form["DistrictId"]; var whenTypeId = HttpContext.Request.Form["WhenTypeId"]; var whenDateId = HttpContext.Request.Form["WhenDateId"]; var whenTimeId = HttpContext.Request.Form["WhenTimeId"]; var price = HttpContext.Request.Form["Price"]; decimal decimalPrice = 0; decimal?PriceValue = null; if (decimal.TryParse(price, out decimalPrice)) { PriceValue = decimalPrice; } if (model.UnknownPrice) { PriceValue = null; } var galleryImages = Request.Form.Files.GetFiles("galleryImage"); var result = _projectEngine.EditItem(_userManager.GetUserId(User), new Guid(itemId), categoryslug, title, description, provinceId, districtId, whenTypeId, whenDateId, whenTimeId, questions, PriceValue, galleryImages); switch (result.Type) { case TransactionType.Error: ModelState.AddModelError("", result.Message); return(View(await getEditItemViewModel(categoryslug))); case TransactionType.Success: return(RedirectToRoute("projects")); } } SetValidationErrorMessage(); return(View(await getEditItemViewModel(categoryslug))); }