Пример #1
0
        /// <summary>
        /// Adds a nav.
        /// </summary>
        /// <param name="slug"></param>
        /// <param name="name"></param>
        /// <param name="description"></param>
        public static Nav AddNav(string slug, string name, string description, int appId)
        {
            var nav = new Nav
            {
                Slug = Nav.FormatNavSlug(slug), // TODO: format NavSlug in AddNav
                Name = WebHelper.HtmlEncode(name),
                Description = WebHelper.HtmlEncode(description),
                DateCreated = DateTime.UtcNow,
                AppId = appId,
            };

            var validator = new NavValidator();
            ValidationResult results = validator.Validate(nav);
            if (!results.IsValid)
            {
                throw new  Exception(results.Errors[0].ErrorMessage);
            }

            Provider.AddNav(nav);
            SiteCache.Remove(AdminManager._GetCacheKey_Nav(nav.Slug));

            return nav;
        }
Пример #2
0
        /// <summary>
        /// Updates a nav by its slug.
        /// </summary>
        /// <param name="navSlug">The slug of the existing nav you are updating.</param>
        /// <param name="name">new name</param>
        /// <param name="slug">new slug</param>
        /// <param name="description">new description</param>
        /// <remarks>
        /// Should I allow navSlug to be updated after creation?  Right now yes.
        /// </remarks>
        public static void UpdateNav(string navSlug, string name, string slug, string description)
        {
            var nav = new Nav
            {
                NavId = GetNavId(navSlug),
                Slug = Nav.FormatNavSlug(slug), // TODO: format NavSlug in UpdateNav
                Name = WebHelper.HtmlEncode(name),
                Description = WebHelper.HtmlEncode(description),
            };

            var validator = new NavValidator();
            ValidationResult results = validator.Validate(nav);
            if (!results.IsValid)
            {
                throw new Exception(results.Errors[0].ErrorMessage);
            }

            SiteCache.Remove(AdminManager._GetCacheKey_Nav(navSlug));
            Provider.UpdateNav(nav);
        }