protected async Task CreatedUpdatedPageMetaAsync(QNZContext db, PageMeta pm) { var origin = await db.PageMetas.FirstOrDefaultAsync(d => d.ModuleType == pm.ModuleType && d.ObjectId == pm.ObjectId); if (origin != null) { if (string.IsNullOrEmpty(pm.Title) && string.IsNullOrEmpty(pm.Keywords) && string.IsNullOrEmpty(pm.Description)) { db.Remove(origin); } else { origin.Title = pm.Title; origin.Keywords = pm.Keywords; origin.Description = pm.Description; db.Entry(origin).State = EntityState.Modified; } } else { if (!string.IsNullOrEmpty(pm.Title) || !string.IsNullOrEmpty(pm.Keywords) || !string.IsNullOrEmpty(pm.Description)) { db.Add(pm); } } await db.SaveChangesAsync(); }
public async Task <ActionResultResponse> Update(PageMeta pageMeta) { if (pageMeta.PageTranslations == null || !pageMeta.PageTranslations.Any()) { return(new ActionResultResponse(-2, _resourceService.GetString("Please add at least one language."))); } var pageInfo = await _pageRepository.GetInfo(pageMeta.Id); if (pageInfo == null) { return(new ActionResultResponse(-1, _resourceService.GetString("Page not found."))); } var oldIdPath = pageInfo.IdPath; if (pageMeta.ParentId.HasValue && pageMeta.ParentId != pageInfo.ParentId) { var parentInfo = await _pageRepository.GetInfo(pageMeta.ParentId.Value); if (parentInfo == null) { return(new ActionResultResponse(-3, _resourceService.GetString("Parent page does not exists."))); } pageInfo.ParentId = parentInfo.Id; pageInfo.IdPath = $"{parentInfo.IdPath}.{pageInfo.Id}"; } if (!pageMeta.ParentId.HasValue) { pageInfo.ParentId = null; pageInfo.IdPath = pageInfo.Id.ToString(); } pageInfo.BgColor = pageMeta.BgColor; pageInfo.Icon = pageMeta.Icon; pageInfo.IsActive = pageMeta.IsActive; pageInfo.Order = pageMeta.Order; pageInfo.ParentId = pageMeta.ParentId; pageInfo.Url = pageMeta.Url; var resultUpdatePage = await _pageRepository.Update(pageInfo); if (resultUpdatePage < 0) { return(new ActionResultResponse(resultUpdatePage, _sharedResourceService.GetString("Something went wrong. Please contact with administrator."))); } #region update children idPath await _pageRepository.UpdateIdPath(oldIdPath, pageInfo.IdPath); #endregion foreach (var pageTranslation in pageMeta.PageTranslations) { var pageTran = new PageTranslation(pageInfo.Id, pageTranslation.LanguageId, pageTranslation.Name, pageTranslation.Description); await _pageTranslationService.Save(pageTran); } return(new ActionResultResponse(1, _resourceService.GetString("Update page successful."))); }
public void setPageMeta(PageMeta p) { ctx.Page.Title = p.Title; ctx.Page.Description = p.Description; ctx.Page.Keywords = p.Keywords; ctx.Page.RssLink = p.RssLink; }
public JsonResult Add(LinkCategoryIM vm) { if (!ModelState.IsValid) { AR.Setfailure(GetModelErrorMessage()); return(Json(AR, JsonRequestBehavior.DenyGet)); } var newCategory = _mapper.Map <LinkCategoryIM, LinkCategory>(vm); var result = _categoryServices.Create(newCategory); if (result != null) { var pageMeta = new PageMeta() { ObjectId = result.ToString(), Title = string.IsNullOrEmpty(vm.SEOTitle) ? vm.Title : vm.SEOTitle, Keyword = string.IsNullOrEmpty(vm.Keywords) ? vm.Title : vm.Keywords.Replace(',', ','), Description = vm.SEODescription, ModelType = ModelType.LINKCATEGORY }; _pageMetaServices.Create(pageMeta); } int count; var pageSize = SettingsManager.Link.PageSize; var list = _categoryServices.GetPagedElements(0, pageSize, string.Empty, out count); AR.Data = RenderPartialViewToString("_CategoryList", list); AR.SetSuccess(String.Format(Messages.AlertCreateSuccess, EntityNames.LinkCategory)); return(Json(AR, JsonRequestBehavior.DenyGet)); }
// GET: videos/archivelist public IActionResult archivelist() { /* ***************************************/ // Process Page Meta & BreaCrumb /* ***************************************/ var _meta = PageMeta.returnPageMeta(new PageQuery() { controller = ControllerContext.ActionDescriptor.ControllerName, index = ControllerContext.ActionDescriptor.ActionName }); /* List Initialization */ var ListEntity = new ArchiveListModelView() { Type = 0, // represent videos Path = "videos/", HeadingTitle = _meta.title, isAll = true, BreadItems = _meta.BreadItems }; /**********************************************/ // Page Meta Setup /**********************************************/ ViewBag.title = _meta.title; ViewBag.description = _meta.description; return(View(ListEntity)); }
// GET: videos/categories public async Task <IActionResult> categories(int?pagenumber) { if (pagenumber == null) { pagenumber = 1; } /* ***************************************/ // Process Page Meta & BreaCrumb /* ***************************************/ var _meta = PageMeta.returnPageMeta(new PageQuery() { controller = ControllerContext.ActionDescriptor.ControllerName, index = ControllerContext.ActionDescriptor.ActionName, pagenumber = (int)pagenumber, }); /* List Initialization */ var ListEntity = new CategoryListViewModel_v2() { isListStatus = true, isListNav = false, QueryOptions = new CategoryEntity() { type = (int)CategoryBLL.Types.Videos, pagenumber = (int)pagenumber, ispublic = true, term = "", iscache = true, pagesize = 30, order = "title asc", }, ListObject = new ListItems() { ListType = ListType.Grid, ColWidth = "col-md-6 col-sm-12", }, Path = "videos/", // category url path DefaultUrl = Config.GetUrl("videos/categories"), PaginationUrl = Config.GetUrl("videos/categories/[p]"), NoRecordFoundText = SiteConfig.generalLocalizer["_no_records"].Value, HeadingTitle = _meta.title, BreadItems = _meta.BreadItems }; ListEntity.TotalRecords = await CategoryBLL.Count(_context, ListEntity.QueryOptions); if (ListEntity.TotalRecords > 0) { ListEntity.DataList = await CategoryBLL.LoadItems(_context, ListEntity.QueryOptions); } /**********************************************/ // Page Meta Setup /**********************************************/ ViewBag.title = _meta.title; ViewBag.description = _meta.description; return(View(ListEntity)); }
public JsonResult Add(ChronicleIM vm) { if (!ModelState.IsValid) { AR.Setfailure(GetModelErrorMessage()); return(Json(AR, JsonRequestBehavior.DenyGet)); } var chronicle = _mapper.Map <ChronicleIM, Chronicle>(vm); var result = _chronicleService.Create(chronicle); if (result != null) { var pageMeta = new PageMeta() { ObjectId = result.ToString(), Title = string.IsNullOrEmpty(vm.SEOTitle) ? vm.Title : vm.SEOTitle, Keyword = string.IsNullOrEmpty(vm.Keywords) ? vm.Title : vm.Keywords.Replace(',', ','), Description = vm.SEODescription, ModelType = ModelType.CHRONICLE }; _pageMetaServices.Create(pageMeta); } int count; int pageSize = SettingsManager.Chronicle.PageSize; var list = _chronicleService.GetPagedElements(0, pageSize, string.Empty, out count); List <ChronicleVM> chronicleList = _mapper.Map <List <Chronicle>, List <ChronicleVM> >(list); AR.Data = RenderPartialViewToString("_ChronicleList", chronicleList); AR.SetSuccess(String.Format(Messages.AlertCreateSuccess, EntityNames.Chronicle)); return(Json(AR, JsonRequestBehavior.DenyGet)); }
// GET: blogs/archivelist public IActionResult archivelist() { /* ***************************************/ // Process Page Meta & BreaCrumb /* ***************************************/ var _meta = PageMeta.returnPageMeta(new PageQuery() { controller = ControllerContext.ActionDescriptor.ControllerName, index = ControllerContext.ActionDescriptor.ActionName }); /* List Initialization */ var ListEntity = new ArchiveListModelView() { Type = ContentTypes.Blogs, Path = "blogs/", HeadingTitle = _meta.title, BreadItems = _meta.BreadItems, isAll = true }; // Page Title ViewBag.title = _meta.title; return(View(ListEntity)); }
private static void setPageMeta_FromCache(MvcContext ctx, String cacheKey) { PageMeta p = CacheManager.GetApplicationCache().Get(cacheKey + "_pageMeta") as PageMeta; if (p != null) { ctx.utils.setPageMeta(p); } }
// GET: blogs/search public async Task <IActionResult> search(string term) { if (term == null) { return(Redirect("/blogs")); } var _sanitize = new HtmlSanitizer(); term = _sanitize.Sanitize(UtilityBLL.ReplaceHyphinWithSpace(term)); /* ***************************************/ // Process Page Meta & BreaCrumb /* ***************************************/ var _meta = PageMeta.returnPageMeta(new PageQuery() { controller = ControllerContext.ActionDescriptor.ControllerName, index = ControllerContext.ActionDescriptor.ActionName, pagenumber = 1, matchterm = term }); if (Jugnoon.Settings.Configs.GeneralSettings.store_searches) { //********************************************* // User Search Tracking Script //******************************************** if (!TagsBLL.Validate_Tags(term.Trim()) && !term.Trim().Contains("@")) { // check if tag doesn't exist var count_tags = await TagsBLL.Count(_context, new TagEntity() { type = TagsBLL.Types.General, tag_type = TagsBLL.TagType.UserSearches, isenabled = EnabledTypes.Enabled }); if (count_tags == 0) { TagsBLL.Add(_context, term.Trim(), TagsBLL.Types.General, 0, TagsBLL.TagType.UserSearches, EnabledTypes.Enabled, term.Trim()); } } } /* List Initialization */ var ListEntity = new BlogListViewModel() { QueryOptions = new BlogEntity() { term = term, }, BreadItems = _meta.BreadItems }; return(View(ListEntity)); }
// GET: videos/labels public IActionResult labels(string term, int?pagenumber) { if (pagenumber == null) { pagenumber = 1; } /* ***************************************/ // Process Page Meta & BreaCrumb /* ***************************************/ var order = "normal"; if (term != null && term.Length > 0) { order = "search"; } var _meta = PageMeta.returnPageMeta(new PageQuery() { controller = ControllerContext.ActionDescriptor.ControllerName, index = ControllerContext.ActionDescriptor.ActionName, order = order, pagenumber = (int)pagenumber }); /* List Initialization */ var ListEntity = new TagListModelView() { pagenumber = (int)pagenumber, TotalRecords = 100, // display 100 tags per page Type = (int)TagsBLL.Types.Videos, // represent videos Path = "videos/", DefaultUrl = Config.GetUrl("videos/labels"), PaginationUrl = Config.GetUrl("videos/labels/[p]/"), NoRecordFoundText = SiteConfig.generalLocalizer["_no_records"].Value, Action = "/videos/labels", // for search tags HeadingTitle = _meta.title, BreadItems = _meta.BreadItems }; if (term != null && term.Length > 0) { ListEntity.Term = UtilityBLL.CleanSearchTerm(WebUtility.UrlDecode(term).Trim()); ListEntity.DefaultUrl = Config.GetUrl("videos/labels/search/" + term); ListEntity.PaginationUrl = Config.GetUrl("videos/labels/search/" + term + "/[p]"); } /**********************************************/ // Page Meta Setup /**********************************************/ ViewBag.title = _meta.title; ViewBag.description = _meta.description; return(View(ListEntity)); }
public async Task <IActionResult> Update([FromBody] PageMeta pageMeta) { var result = await _pageService.Update(pageMeta); if (result.Code <= 0) { return(BadRequest(result)); } return(Ok(result)); }
public MvcContext(IWebContext context) { _context = context; _thisUtils = new MvcContextUtils(this); if (context is IMockContext) { _isMock = true; } _pageMeta = new PageMeta(this); }
public async Task <JsonResult> EditMenu(NavIM menu) { if (ModelState.IsValid) { // Menu vMenu = _mapper.Map<Menu>(menu); var orgNav = await _context.Navigations.FindAsync(menu.Id); var im = _mapper.Map(menu, orgNav); im.UpdatedBy = User.Identity.Name; im.UpdatedDate = DateTime.Now; _context.Entry(im).State = EntityState.Modified; await _context.SaveChangesAsync(); var cacheKey = "NAVIGATION"; _cache.Invalidate(cacheKey); // _menuService.ResetSort(orgMenu.CategoryId); // var menus = _menuService.GetLevelMenusByCategoryId(vMenu.CategoryId); AR.Id = im.CategoryId; //// using a Model //string html = view.Render("Emails/Test", new Product("Apple")); //// using a Dictionary<string, object> //var viewData = new Dictionary<string, object>(); //viewData["Name"] = "123456"; //string html = view.Render("Emails/Test", viewData); //AR.Data = await _viewRenderService.RenderToStringAsync("_MenuList", menus); var pm = new PageMeta { Title = menu.SEOTitle, Description = menu.SEODescription, Keywords = menu.SEOKeywords, ModuleType = (short)ModuleType.MENU, ObjectId = menu.Url }; await CreatedUpdatedPageMetaAsync(_context, pm); AR.SetSuccess("已成功保存菜单"); return(Json(AR)); } AR.Setfailure("编辑菜单失败"); return(Json(AR)); }
public ViewModelBase(string assetsPrefix) { _currentHttpContext = new HttpContextWrapper(HttpContext.Current); AssetsPrefix = assetsPrefix; InlineHeadScript = new HtmlString(""); InlineHeadStyles = new HtmlString(""); BrowserCaps = _currentHttpContext.GetBrowserCaps(); Environment = new Environment(); PageMeta = new PageMeta(); AdvertMeta = new AdvertMeta(); TrackMeta = new TrackMeta(); OfferMeta = new OfferMeta(); OpenGraphMeta = new OpenGraphMeta(); }
public async Task <JsonResult> CreateMenu(NavIM menu) { if (ModelState.IsValid) { var vMenu = _mapper.Map <Navigation>(menu); if (menu.ParentId != null) { var parentMenu = await _context.Navigations.FindAsync(vMenu.ParentId.Value); vMenu.LayoutLevel = parentMenu.LayoutLevel + 1; } else { vMenu.LayoutLevel = 0; } vMenu.CreatedBy = User.Identity.Name; vMenu.CreatedDate = DateTime.Now; _context.Add(vMenu); await _context.SaveChangesAsync(); var pm = new PageMeta { Title = menu.SEOTitle, Description = menu.SEODescription, Keywords = menu.SEOKeywords, ModuleType = (short)ModuleType.MENU, ObjectId = vMenu.Url }; await CreatedUpdatedPageMetaAsync(_context, pm); // var menus = _menuService.GetLevelMenusByCategoryId(vMenu.CategoryId); AR.Id = menu.CategoryId; //AR.Data = ViewComponent("MenuList", new { categoryId = menu.CategoryId }); //await _viewRenderService.RenderToStringAsync("Admin/Menu/_MenuList", menus); var cacheKey = "NAVIGATION"; _cache.Invalidate(cacheKey); AR.SetSuccess("已成功新增菜单"); return(Json(AR)); } AR.Setfailure("编辑菜单失败"); return(Json(AR)); // return RedirectToAction("Index"); }
public JsonResult Create(PageIM page) { if (!ModelState.IsValid) { AR.Setfailure(GetModelErrorMessage()); return(Json(AR, JsonRequestBehavior.DenyGet)); } try { var newPage = _mapper.Map <PageIM, Page>(page); newPage.ViewCount = 0; newPage.SeoName = newPage.SeoName.ToLower(); var result = _db.Pages.Add(newPage); _db.SaveChanges(); if (result != null) { var pageMeta = new PageMeta() { ObjectId = result.ToString(), Title = string.IsNullOrEmpty(page.SEOTitle) ? page.Title : page.SEOTitle, Keyword = string.IsNullOrEmpty(page.Keywords) ? page.Title : page.Keywords.Replace(',', ','), Description = page.SEODescription, ModelType = (short)ModelType.PAGE }; _db.PageMetas.Add(pageMeta); _db.SaveChanges(); } int pageSize = SettingsManager.Page.PageSize; var list = _db.Pages.OrderByDescending(d => d.Id).Take(pageSize).ToList(); AR.Data = RenderPartialViewToString("_PageList", list); AR.SetSuccess(String.Format(Messages.AlertCreateSuccess, EntityNames.Page)); return(Json(AR, JsonRequestBehavior.DenyGet)); } catch (Exception er) { AR.Setfailure(er.Message); return(Json(AR, JsonRequestBehavior.DenyGet)); } }
/// <summary> /// Grabs and returns Meta tags from the page head /// </summary> /// <param name="htmlDocDocument"></param> /// <returns></returns> private static List <PageMeta> GetPageMetaInfo(HtmlDocument p_htmlDocDocument) { PageMeta pmMeta = null; List <PageMeta> lstMeta = new List <PageMeta>(); if (p_htmlDocDocument.DocumentNode.SelectNodes("//meta") != null) { foreach (HtmlNode hnItem in p_htmlDocDocument.DocumentNode.SelectNodes("//meta")) { pmMeta = new PageMeta(); pmMeta.Name = GetHtmlAttributeValue(hnItem.Attributes, "name"); pmMeta.Property = GetHtmlAttributeValue(hnItem.Attributes, "property"); pmMeta.Content = GetHtmlAttributeValue(hnItem.Attributes, "content"); lstMeta.Add(pmMeta); } } return(lstMeta); }
public async Task <IActionResult> Insert([FromBody] PageMeta pageMeta) { var result = await _mediator.Send(new InsertPageCommand( pageMeta.Id, pageMeta.Name, pageMeta.Description, CurrentUser.TenantId, pageMeta.IsActive, pageMeta.Icon, pageMeta.Order, pageMeta.ParentId, pageMeta.IsShowSidebar, pageMeta.Url)); if (result.Code <= 0) { return(BadRequest(result)); } return(Ok(result)); }
public async Task SetPageMetaAsync(IQNZDbContext db, short modelType, string objectId, string objectTitle, string title, string keywords, string description) { var pageMeta = await db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == modelType && d.ObjectId == objectId); if (pageMeta != null) { if (!string.IsNullOrEmpty(title) || !string.IsNullOrEmpty(keywords) || !string.IsNullOrEmpty(description)) { pageMeta.ObjectId = objectId; pageMeta.Title = string.IsNullOrEmpty(title) ? objectTitle : title; pageMeta.Keyword = string.IsNullOrEmpty(keywords) ? objectTitle : keywords.Replace(',', ','); pageMeta.Description = description; pageMeta.ModelType = modelType; db.Entry(pageMeta).State = EntityState.Modified; } else { db.PageMetas.Remove(pageMeta); } } else { if (!string.IsNullOrEmpty(title) || !string.IsNullOrEmpty(keywords) || !string.IsNullOrEmpty(description)) { pageMeta = new PageMeta() { ObjectId = objectId, Title = string.IsNullOrEmpty(title) ? objectTitle : title, Keyword = string.IsNullOrEmpty(keywords) ? objectTitle : keywords.Replace(',', ','), Description = description, ModelType = modelType }; db.PageMetas.Add(pageMeta); } } await db.SaveChangesAsync(); }
/// <summary> /// Extracts the meta tag info from the page using RegEx /// </summary> /// <param name="p_strPageHtmlContent"></param> /// <returns>Deprecated</returns> private static Dict <string, PageMeta> GetPageMetaInfo(string p_strPageHtmlContent) { Dict <string, PageMeta> dictReturnSet = new Dict <string, PageMeta>(); PageMeta pmMetaTag = new PageMeta(); // Try grabbing the meta info of the page into a dictionary string pattern = "<meta.+?(?:name=(?:\"|')(.*?)(?:\"|').*?)?(?:property=(?:\"|')(.*?)(?:\"|').*?)?(?:content=(?:\"|')(.*?)(?:\"|'))?/?>.*?</head>"; RegexOptions rxoOptions = RegexOptions.IgnoreCase | RegexOptions.Singleline; foreach (Match match in Regex.Matches(p_strPageHtmlContent, pattern, rxoOptions)) { pmMetaTag = new PageMeta(); pmMetaTag.Name = match.Groups[1].Value; pmMetaTag.Property = match.Groups[2].Value; pmMetaTag.Content = match.Groups[3].Value; if (!dictReturnSet.ContainsKey(match.Groups[1].Value)) { dictReturnSet.Add(match.Groups[1].Value, pmMetaTag); } } return(dictReturnSet); }
public void SetPageMeta(ModelType modelType, string objectId, string objectTitle, string title, string keywords, string description) { var pageMeta = this.GetPageMeta(ModelType.ARTICLE, objectId); if (pageMeta != null) { if (!string.IsNullOrEmpty(title) || !string.IsNullOrEmpty(keywords) || !string.IsNullOrEmpty(description)) { pageMeta.ObjectId = objectId; pageMeta.Title = string.IsNullOrEmpty(title) ? objectTitle : title; pageMeta.Keyword = string.IsNullOrEmpty(keywords) ? objectTitle : keywords.Replace(',', ','); pageMeta.Description = description; pageMeta.ModelType = ModelType.ARTICLE; Update(pageMeta); } else { this.Delete(pageMeta); } } else { if (!string.IsNullOrEmpty(title) || !string.IsNullOrEmpty(keywords) || !string.IsNullOrEmpty(description)) { pageMeta = new PageMeta() { ObjectId = objectId, Title = string.IsNullOrEmpty(title) ? objectTitle : title, Keyword = string.IsNullOrEmpty(keywords) ? objectTitle : keywords.Replace(',', ','), Description = description, ModelType = ModelType.ARTICLE }; this.Create(pageMeta); } } }
public async System.Threading.Tasks.Task <JsonResult> Edit(CaseIM vm) { if (!ModelState.IsValid) { AR.Setfailure(GetModelErrorMessage()); return(Json(AR, JsonRequestBehavior.DenyGet)); } //try //{ if (vm.Id > 0) { var editCase = await _db.Cases.FindAsync(vm.Id); editCase = _mapper.Map(vm, editCase); _db.Entry(editCase).State = EntityState.Modified; await _db.SaveChangesAsync(); var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == ModelType.CASE && d.ObjectId == editCase.Id.ToString()); pageMeta = pageMeta ?? new PageMeta(); pageMeta.ObjectId = vm.Id.ToString(); pageMeta.Title = string.IsNullOrEmpty(vm.Title) ? vm.Title : vm.Title; pageMeta.Keyword = string.IsNullOrEmpty(vm.Keywords) ? vm.Title : vm.Keywords.Replace(',', ','); pageMeta.Description = vm.SEODescription; pageMeta.ModelType = ModelType.CASE; if (pageMeta.Id > 0) { _db.Entry(pageMeta).State = EntityState.Modified; } else { _db.PageMetas.Add(pageMeta); } await _db.SaveChangesAsync(); AR.SetSuccess(String.Format(Messages.AlertUpdateSuccess, EntityNames.Case)); return(Json(AR, JsonRequestBehavior.DenyGet)); } else { var newCase = _mapper.Map <CaseIM, Case>(vm); newCase = _db.Cases.Add(newCase); var result = await _db.SaveChangesAsync(); if (result > 0) { if (!string.IsNullOrEmpty(vm.Keywords) || !string.IsNullOrEmpty(vm.SEODescription)) { var pm = new PageMeta { Title = vm.SEOTitle, Description = vm.SEODescription, Keyword = vm.Keywords, ModelType = ModelType.CASE, ObjectId = newCase.Id.ToString() }; _db.PageMetas.Add(pm); await _db.SaveChangesAsync(); } } AR.SetSuccess(String.Format(Messages.AlertCreateSuccess, EntityNames.Case)); return(Json(AR, JsonRequestBehavior.DenyGet)); } //} //catch (Exception er) //{ // AR.Setfailure(er.Message); // return Json(AR, JsonRequestBehavior.DenyGet); //} }
public bool Delete(PageMeta pageMeta) { return(_unitOfWork.PageMetaRepository.Delete(pageMeta)); }
public bool Update(PageMeta pageMeta) { return(_unitOfWork.PageMetaRepository.Update(pageMeta)); }
public PageMeta Create(PageMeta pageMeta) { return(_unitOfWork.PageMetaRepository.Insert(pageMeta)); }
// The default constructor now initializes de values: public IndexViewModel() { PageMeta = new PageMeta(); Q = new Q(); T = new T(); }
public async Task <IActionResult> Edit(PhotoIM article) { if (!ModelState.IsValid) { AR.Setfailure(GetModelErrorMessage()); return(Json(AR)); } try { var pm = new PageMeta { Title = article.SEOTitle, Description = article.SEODescription, Keywords = article.SEOKeywords, ModuleType = (short)ModuleType.ARTICLE }; if (article.Id > 0) { var model = await _context.Photos.FirstOrDefaultAsync(d => d.Id == article.Id); if (model == null) { AR.Setfailure(Messages.HttpNotFound); return(Json(AR)); } model = _mapper.Map(article, model); model.UpdatedBy = User.Identity.Name; model.UpdatedDate = DateTime.Now; _context.Entry(model).State = EntityState.Modified; await _context.SaveChangesAsync(); AR.SetSuccess(string.Format(Messages.AlertUpdateSuccess, EntityNames.Photo)); pm.ObjectId = model.Id.ToString(); } else { var model = _mapper.Map <Photo>(article); model.CreatedBy = User.Identity.Name; model.CreatedDate = DateTime.Now; //model.Body = WebUtility.HtmlEncode(page.Body); _context.Add(model); await _context.SaveChangesAsync(); pm.ObjectId = model.Id.ToString(); AR.SetSuccess(string.Format(Messages.AlertCreateSuccess, EntityNames.Photo)); } _cacheService.Invalidate("PHOTO"); _cacheService.Invalidate("ALBUM"); await CreatedUpdatedPageMetaAsync(_context, pm); return(Json(AR)); } catch (DbUpdateConcurrencyException) { if (!PhotoExists(article.Id)) { AR.Setfailure(Messages.HttpNotFound); return(Json(AR)); } else { throw; } } }
public async Task <JsonResult> Edit(AchievementCategoryIM vm) { if (!ModelState.IsValid) { AR.Setfailure(GetModelErrorMessage()); return(Json(AR, JsonRequestBehavior.DenyGet)); } try { if (vm.Id > 0) { var editCase = await _db.AchievementCategories.FindAsync(vm.Id); editCase = _mapper.Map(vm, editCase); editCase.UpdatedDate = DateTime.Now; editCase.UpdatedBy = Site.CurrentUserName; _db.Entry(editCase).State = EntityState.Modified; await _db.SaveChangesAsync(); var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == (short)ModelType.ACHIEVEMENTCATEGORY && d.ObjectId == editCase.Id.ToString()); pageMeta = pageMeta ?? new PageMeta(); pageMeta.ObjectId = vm.Id.ToString(); pageMeta.Title = string.IsNullOrEmpty(vm.Title) ? vm.Title : vm.Title; pageMeta.Keyword = string.IsNullOrEmpty(vm.Keywords) ? vm.Title : vm.Keywords.Replace(',', ','); pageMeta.Description = vm.SEODescription; pageMeta.ModelType = (short)ModelType.ACHIEVEMENTCATEGORY; if (pageMeta.Id > 0) { _db.Entry(pageMeta).State = EntityState.Modified; } else { _db.PageMetas.Add(pageMeta); } await _db.SaveChangesAsync(); AR.SetSuccess(String.Format(Messages.AlertUpdateSuccess, EntityNames.Case)); return(Json(AR, JsonRequestBehavior.DenyGet)); } else { var newCase = _mapper.Map <AchievementCategoryIM, AchievementCategory>(vm); newCase.CreatedDate = DateTime.Now; newCase.CreatedBy = Site.CurrentUserName; newCase = _db.AchievementCategories.Add(newCase); var result = await _db.SaveChangesAsync(); if (result > 0) { if (!string.IsNullOrEmpty(vm.Keywords) || !string.IsNullOrEmpty(vm.SEODescription)) { var pm = new PageMeta { Title = vm.SEOTitle, Description = vm.SEODescription, Keyword = vm.Keywords, ModelType = (short)ModelType.ACHIEVEMENTCATEGORY, ObjectId = newCase.Id.ToString() }; _db.PageMetas.Add(pm); await _db.SaveChangesAsync(); } } AR.SetSuccess(String.Format(Messages.AlertCreateSuccess, EntityNames.Case)); return(Json(AR, JsonRequestBehavior.DenyGet)); } } catch (Exception er) { AR.Setfailure(er.Message); return(Json(AR, JsonRequestBehavior.DenyGet)); } // if (!ModelState.IsValid) // { // AR.Setfailure(GetModelErrorMessage()); // return Json(AR, JsonRequestBehavior.DenyGet); // } // //var newCategory = _categoryServices.GetById(vm.Id); // //newCategory.Title = vm.Title; // //newCategory.SeoName = vm.SeoName; // //newCategory.Importance = vm.Importance; // //newCategory.Active = vm.Active; // //newCategory.UpdatedBy = Site.CurrentUserName; // //newCategory.UpdatedDate = DateTime.Now; // var model = _db.AchievementCategories.Find(vm.Id); // model = _mapper.Map(vm, model); // _db.Entry(model).State = EntityState.Modified; // // _db.SaveChanges(); // // _categoryServices.Update(newCategory); // var pageMeta = _db.PageMetas.FirstOrDefault(d => d.ModelType == (short)ModelType.ARTICLECATEGORY && d.ObjectId == vm.Id.ToString()); // //_pageMetaServices.GetPageMeta(ModelType.ARTICLECATEGORY, vm.Id.ToString()); // pageMeta = pageMeta ?? new PageMetaSet(); // pageMeta.ObjectId = vm.Id.ToString(); // pageMeta.Title = string.IsNullOrEmpty(vm.SEOTitle) ? vm.Title : vm.SEOTitle; // pageMeta.Keyword = string.IsNullOrEmpty(vm.Keywords) ? vm.Title : vm.Keywords.Replace(',', ','); // pageMeta.Description = vm.SEODescription; // pageMeta.ModelType = (short)ModelType.ARTICLECATEGORY; // if (pageMeta.Id > 0) // { // _db.Entry(pageMeta).State = EntityState.Modified; // //_pageMetaServices.Update(pageMeta); // } // else // { // _db.PageMetas.Add(pageMeta); // //_pageMetaServices.Create(pageMeta); // } // _db.SaveChanges(); //// var category = _mapper.Map<AchievementCategoryVM>(newCategory); // AR.Id = model.Id; // AR.Data = RenderPartialViewToString("_CategoryItem", model); // AR.SetSuccess(String.Format(Messages.AlertUpdateSuccess, EntityNames.Category)); // return Json(AR, JsonRequestBehavior.DenyGet); }
public async Task <IActionResult> Edit([Bind("Id,Title,ImageUrl,Alias,Description,Importance,Active,SEOTitle,SEOKeywords,SEODescription")] ArticleCategoryIM im, int id = 0) { if (!ModelState.IsValid) { AR.Setfailure(GetModelErrorMessage()); return(Json(AR)); } if (id == 0) { var model = _mapper.Map <ArticleCategory>(im); model.CreatedBy = User.Identity.Name; model.CreatedDate = DateTime.Now; _context.Add(model); await _context.SaveChangesAsync(); // return RedirectToAction(nameof(Index)); AR.SetSuccess(string.Format(Messages.AlertCreateSuccess, EntityNames.ArticleCategory)); return(Json(AR)); } if (id != im.Id) { AR.Setfailure("未发现此分类"); return(Json(AR)); } try { var model = await _context.ArticleCategories.FindAsync(id); model = _mapper.Map(im, model); model.UpdatedBy = User.Identity.Name; model.UpdatedDate = DateTime.Now; _context.Update(model); await _context.SaveChangesAsync(); var pm = new PageMeta { Title = im.SEOTitle, Description = im.SEODescription, Keywords = im.SEOKeywords, ModuleType = (short)ModuleType.ARTICLECATEGORY, ObjectId = im.Alias }; await CreatedUpdatedPageMetaAsync(_context, pm); AR.SetSuccess(string.Format(Messages.AlertUpdateSuccess, EntityNames.ArticleCategory)); return(Json(AR)); } catch (DbUpdateConcurrencyException) { if (!ArticleCategoryExists(im.Id)) { AR.Setfailure("未发现此分类"); return(Json(AR)); } else { AR.Setfailure(string.Format(Messages.AlertUpdateFailure, EntityNames.ArticleCategory)); return(Json(AR)); } } }