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")); }