예제 #1
0
        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)));
        }