コード例 #1
0
        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();
        }
コード例 #2
0
ファイル: PageService.cs プロジェクト: chidongyh2/WebsiteAPI
        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.")));
        }
コード例 #3
0
 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;
 }
コード例 #4
0
        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));
        }
コード例 #7
0
        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));
        }
コード例 #8
0
        // 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));
        }
コード例 #9
0
        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);
            }
        }
コード例 #10
0
        // 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));
        }
コード例 #12
0
        public async Task <IActionResult> Update([FromBody] PageMeta pageMeta)
        {
            var result = await _pageService.Update(pageMeta);

            if (result.Code <= 0)
            {
                return(BadRequest(result));
            }

            return(Ok(result));
        }
コード例 #13
0
        public MvcContext(IWebContext context)
        {
            _context   = context;
            _thisUtils = new MvcContextUtils(this);

            if (context is IMockContext)
            {
                _isMock = true;
            }

            _pageMeta = new PageMeta(this);
        }
コード例 #14
0
        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));
        }
コード例 #15
0
        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();
        }
コード例 #16
0
        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");
        }
コード例 #17
0
        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));
            }
        }
コード例 #18
0
        /// <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);
        }
コード例 #19
0
        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));
        }
コード例 #20
0
        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();
        }
コード例 #21
0
        /// <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);
        }
コード例 #22
0
        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);
                }
            }
        }
コード例 #23
0
        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);
            //}
        }
コード例 #24
0
 public bool Delete(PageMeta pageMeta)
 {
     return(_unitOfWork.PageMetaRepository.Delete(pageMeta));
 }
コード例 #25
0
 public bool Update(PageMeta pageMeta)
 {
     return(_unitOfWork.PageMetaRepository.Update(pageMeta));
 }
コード例 #26
0
 public PageMeta Create(PageMeta pageMeta)
 {
     return(_unitOfWork.PageMetaRepository.Insert(pageMeta));
 }
コード例 #27
0
 // The default constructor now initializes de values:
 public IndexViewModel()
 {
     PageMeta = new PageMeta();
     Q        = new Q();
     T        = new T();
 }
コード例 #28
0
        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;
                }
            }
        }
コード例 #29
0
        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);
        }
コード例 #30
0
        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));
                }
            }
        }