public ActionResult Create(StaticContentViewModel model, string returnUrl) { ActionResult action; try { if (!ModelState.IsValid) { var messages = Join(Environment.NewLine, ModelState.Values.SelectMany(v => v.Errors) .Select(v => v.ErrorMessage + " " + v.Exception)); ModelState.AddModelError("", messages); return(View(model)); } var titleNonAccent = model.Title.NonAccent(); var bySeoUrl = _staticContentService.GetBySeoUrl(titleNonAccent, false); model.SeoUrl = model.Title.NonAccent(); if (bySeoUrl.Any(x => x.Id != model.Id)) { var staticContentViewModel = model; staticContentViewModel.SeoUrl = Concat(staticContentViewModel.SeoUrl, "-", bySeoUrl.Count()); } if (model.Image != null && model.Image.ContentLength > 0) { var folderName = Utils.FolderName(model.Title); var fileExtension = Path.GetExtension(model.Image.FileName); var fileNameOriginal = Path.GetFileNameWithoutExtension(model.Image.FileName); var fileName = fileNameOriginal.FileNameFormat(fileExtension); _imagePlugin.CropAndResizeImage(model.Image, $"{Contains.StaticContentFolder}{folderName}/", fileName, ImageSize.StaticContentWithBigSize, ImageSize.StaticContentHeightBigSize, true); model.ImagePath = $"{Contains.StaticContentFolder}{folderName}/{fileName}"; //var fileName = Path.GetFileName(model.Image.FileName); //var extension = Path.GetExtension(model.Image.FileName); //fileName = fileName.FileNameFormat(extension); //var str = Path.Combine(Server.MapPath(Concat("~/", Contains.StaticContentFolder)), fileName); //model.Image.SaveAs(str); //model.ImagePath = Concat(Contains.StaticContentFolder, fileName); } if (model.MenuId > 0) { var menuLink = _menuLinkService.GetById(model.MenuId, false); model.MenuLink = Mapper.Map <MenuLink, MenuLinkViewModel>(menuLink); model.VirtualCategoryId = menuLink.VirtualId; } var modelMap = Mapper.Map <StaticContentViewModel, StaticContent>(model); _staticContentService.Create(modelMap); //Update Localized foreach (var localized in model.Locales) { _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.Title, localized.Title, localized.LanguageId); _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.ShortDesc, localized.ShortDesc, localized.LanguageId); _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.Description, localized.Description, localized.LanguageId); _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.SeoUrl, localized.Title.NonAccent(), localized.LanguageId); _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.MetaTitle, localized.MetaTitle, localized.LanguageId); _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.MetaKeywords, localized.MetaKeywords, localized.LanguageId); _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.MetaDescription, localized.MetaDescription, localized.LanguageId); } Response.Cookies.Add(new HttpCookie("system_message", Format(MessageUI.CreateSuccess, FormUI.StaticContent))); if (!Url.IsLocalUrl(returnUrl) || returnUrl.Length <= 1 || !returnUrl.StartsWith("/") || returnUrl.StartsWith("//") || returnUrl.StartsWith("/\\")) { action = RedirectToAction("Index"); } else { action = Redirect(returnUrl); } } catch (Exception ex) { ExtentionUtils.Log(Concat("StaticContent.Create: ", ex.Message)); ModelState.AddModelError("", ex.Message); return(View(model)); } return(action); }
public ActionResult Create(StaticContentViewModel model, string returnUrl) { ActionResult action; try { if (!ModelState.IsValid) { var messages = Join(Environment.NewLine, ModelState.Values.SelectMany(v => v.Errors) .Select(v => v.ErrorMessage + " " + v.Exception)); ModelState.AddModelError("", messages); return(View(model)); } var titleNonAccent = model.Title.NonAccent(); var bySeoUrl = _staticContentService.GetBySeoUrls(titleNonAccent, isCache: false); model.SeoUrl = model.Title.NonAccent(); if (bySeoUrl.Any(x => x.Id != model.Id)) { var staticContentViewModel = model; staticContentViewModel.SeoUrl = Concat(staticContentViewModel.SeoUrl, "-", bySeoUrl.Count()); } ImageHandler(model); if (model.MenuId > 0) { var menuLink = _menuLinkService.GetMenu(model.MenuId, false); model.MenuLink = Mapper.Map <MenuLink, MenuLinkViewModel>(menuLink); model.VirtualCategoryId = menuLink.VirtualId; } var modelMap = Mapper.Map <StaticContentViewModel, StaticContent>(model); _staticContentService.Create(modelMap); //Update Localized foreach (var localized in model.Locales) { _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.Title, localized.Title, localized.LanguageId); _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.ShortDesc, localized.ShortDesc, localized.LanguageId); _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.Description, localized.Description, localized.LanguageId); _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.SeoUrl, localized.Title.NonAccent(), localized.LanguageId); _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.MetaTitle, localized.MetaTitle, localized.LanguageId); _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.MetaKeywords, localized.MetaKeywords, localized.LanguageId); _localizedPropertyService.SaveLocalizedValue(modelMap, x => x.MetaDescription, localized.MetaDescription, localized.LanguageId); } Response.Cookies.Add(new HttpCookie("system_message", Format(MessageUI.CreateSuccess, FormUI.StaticContent))); if (!Url.IsLocalUrl(returnUrl) || returnUrl.Length <= 1 || !returnUrl.StartsWith("/") || returnUrl.StartsWith("//") || returnUrl.StartsWith("/\\")) { action = RedirectToAction("Index"); } else { action = Redirect(returnUrl); } } catch (Exception ex) { LogText.Log(Concat("StaticContent.Create: ", ex.Message)); ModelState.AddModelError("", ex.Message); return(View(model)); } return(action); }