Exemple #1
0
        public async Task <IActionResult> Edit(PageModel <CategoryModel> pageModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    CategoryModel newCategoryModel = null;

                    TempData["MessageType"] = MessageOptions.Success;
                    TempData["Message"]     = Text.Save_done;

                    if (pageModel.DataModel.Id == 0)
                    {
                        newCategoryModel = await categoryLogic.AddAsync
                                           (
                            pageModel.DataModel,
                            configuration["MediaFolderPath"],
                            configuration["PrefixCategoryImageName"]
                                           );

                        return(RedirectToAction("Create", new { pageModel.ReturnUrl }));
                    }
                    else
                    {
                        newCategoryModel = await categoryLogic.SetAsync
                                           (
                            pageModel.DataModel,
                            configuration["MediaFolderPath"],
                            configuration["PrefixCategoryImageName"]
                                           );
                    }
                }
                else
                {
                    pageModel.DataModel.SetCategoryParentModels
                    (
                        await categoryLogic.NoDocumentAsync(configuration["MediaFolderPath"]),
                        pageModel.DataModel.CategoryParentId
                    );
                    TempData["MessageType"] = MessageOptions.Warning;
                    TempData["Message"]     = "<ul>";
                    foreach (var v in ModelState.Values)
                    {
                        foreach (var vv in v.Errors)
                        {
                            TempData["Message"] += $"<li>{(!string.IsNullOrEmpty(vv.ErrorMessage) ? vv.ErrorMessage : vv.Exception.Message)}</li>";
                        }
                    }
                    TempData["Message"] += "</ul>";
                    return(View(pageModel));
                }
            }
            catch (KeyNotFoundException)
            {
                TempData["MessageType"] = MessageOptions.Warning;
                TempData["Message"]     = Text.Data_not_exists_or_deleted;
            }
            catch (Exception ex)
            {
                loggerFactory.CreateLogger(ex.GetType()).LogError($"{ex}\n\n");
                TempData["MessageType"] = MessageOptions.Warning;
                TempData["Message"]     = Text.An_error_occured;
            }
            if (!string.IsNullOrEmpty(pageModel.ReturnUrl))
            {
                return(Redirect(pageModel.ReturnUrl));
            }
            return(RedirectToAction("Index"));
        }