コード例 #1
0
        /// <summary>
        /// Renders a category list for the site settings dialog.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>
        /// Rendered category list.
        /// </returns>
        public ActionResult Categories(SearchableGridOptions request)
        {
            request.SetDefaultPaging();
            var model = GetCommand<GetCategoryListCommand>().ExecuteCommand(request);

            return View(model);
        }
コード例 #2
0
        /// <summary>
        /// Gets the media history.
        /// </summary>
        /// <param name="mediaId">The media id.</param>
        /// <param name="gridOptions">The grid options.</param>
        /// <returns>Media history items.</returns>
        public IList<Media> GetMediaHistory(Guid mediaId, SearchableGridOptions gridOptions)
        {
            var medias = repository
                .AsQueryable<Media>()
                .Where(media => !media.IsDeleted && (media.Id == mediaId || (media.Original != null && media.Original.Id == mediaId)));

            switch (gridOptions.Column)
            {
                case "PublishedOn":
                    medias = gridOptions.Direction == SortDirection.Ascending
                        ? medias.OrderBy(media => media.PublishedOn)
                        : medias.OrderByDescending(media => media.PublishedOn);
                    break;
                case "PublishedByUser":
                    medias = gridOptions.Direction == SortDirection.Ascending
                        ? medias.OrderBy(media => media.ModifiedByUser)
                        : medias.OrderByDescending(media => media.ModifiedByUser);
                    break;
                case "ArchivedOn":
                    System.Linq.Expressions.Expression<Func<Media, DateTime?>> archivedOnExpression =
                        m => m.Original != null
                            ? m.ModifiedOn
                            : (DateTime?)null;
                    medias = gridOptions.Direction == SortDirection.Ascending
                        ? medias.OrderBy(archivedOnExpression)
                        : medias.OrderByDescending(archivedOnExpression);
                    break;
                case "DisplayedFor":
                    medias = medias.ToList().AsQueryable(); // Note: NHibernate does not support sorting on TimeSpan.
                    System.Linq.Expressions.Expression<Func<Media, TimeSpan?>> displayedForExpression =
                        m => m.Original != null
                            ? m.ModifiedOn - m.PublishedOn
                            : (TimeSpan?)null;
                    medias = gridOptions.Direction == SortDirection.Ascending
                        ? medias.OrderBy(displayedForExpression)
                        : medias.OrderByDescending(displayedForExpression);
                    break;
                case "StatusName":
                    System.Linq.Expressions.Expression<Func<Media, string>> statusNameExpression =
                        m => m.Original != null
                            ? MediaGlobalization.MediaHistory_Status_Archived
                            : MediaGlobalization.MediaHistory_Status_Active;
                    medias = gridOptions.Direction == SortDirection.Ascending
                        ? medias.OrderBy(statusNameExpression)
                        : medias.OrderByDescending(statusNameExpression);
                    break;
                default:
                    medias = medias.OrderBy(media => media.Original).ThenByDescending(o => o.CreatedOn);
                    break;
            }

            var searchQuery = (gridOptions.SearchQuery ?? string.Empty).ToLower();
            medias = medias
                .ToList()
                .Where(media => ContainsSearchQuery(media, searchQuery))
                .AsQueryable()
                .AddPaging(gridOptions);

            return medias.ToList();
        }
コード例 #3
0
ファイル: RoleController.cs プロジェクト: navid60/BetterCMS
        public ActionResult RolesList(SearchableGridOptions request)
        {
            request.SetDefaultPaging();
            var model = GetCommand<GetRolesCommand>().ExecuteCommand(request);

            return WireJson(model != null, model);
        }
コード例 #4
0
        /// <summary>
        /// User list for Site Settings.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>User list view.</returns>
        public ActionResult Index(SearchableGridOptions request)
        {
            request.SetDefaultPaging();
            var model = GetCommand<GetUsersCommand>().ExecuteCommand(request);

            return View(model);
        }
コード例 #5
0
ファイル: AuthorController.cs プロジェクト: wezmag/BetterCMS
        /// <summary>
        /// Lists the template.
        /// </summary>
        /// <returns>Json result.</returns>
        public ActionResult ListTemplate()
        {
            var view = RenderView("Partial/ListTemplate", null);
            var request = new SearchableGridOptions();
            request.SetDefaultPaging();

            var authors = GetCommand<GetAuthorListCommand>().ExecuteCommand(request);

            return ComboWireJson(authors != null, view, authors, JsonRequestBehavior.AllowGet);
        }
コード例 #6
0
        public ActionResult ListTemplate()
        {
            var view = RenderView("List", null);
            var request = new SearchableGridOptions();
            request.SetDefaultPaging();

            var subscribers = GetCommand<GetSubscriberListCommand>().ExecuteCommand(request);

            return ComboWireJson(subscribers != null, view, subscribers, JsonRequestBehavior.AllowGet);
        }
コード例 #7
0
        public ActionResult WidgetUsages(string widgetId, SearchableGridOptions options)
        {
            options.SetDefaultPaging();

            var request = new GetWidgetUsagesCommandRequest
                          {
                              Options = options,
                              WidgetId = widgetId.ToGuidOrDefault()
                          };

            var model = GetCommand<GetWidgetUsagesCommand>().ExecuteCommand(request);
            var view = RenderView("Partial/WidgetUsagesTemplate", null);

            return ComboWireJson(model != null, view, model, JsonRequestBehavior.AllowGet);
        }
コード例 #8
0
ファイル: TagsController.cs プロジェクト: pmaciulis/BetterCMS
 /// <summary>
 /// Renders a tag list for the site settings dialog.
 /// </summary>
 /// <param name="request">The request.</param>
 /// <returns>
 /// Rendered tag list.
 /// </returns>
 public ActionResult ListTags(SearchableGridOptions request)
 {
     var model = GetCommand<GetTagListCommand>().ExecuteCommand(request);
     return View(model);
 }
コード例 #9
0
ファイル: WidgetsController.cs プロジェクト: eiu165/BetterCMS
        public ActionResult Widgets(SearchableGridOptions request)
        {
            var model = GetCommand<GetSiteSettingsWidgetsCommand>().ExecuteCommand(request);

            // TODO: add servercontrolwidgetvalidation command and check if server controls exists in the server.

            /*if (model.ValidationMessages != null && model.ValidationMessages.Count > 0)
            {
                Messages.AddWarn(model.ValidationMessages.ToArray());
            }
            */

            return View(model);
        }
コード例 #10
0
        /// <summary>
        /// Renders a templates list for the site settings dialog.
        /// </summary>
        /// <returns>Rendered templates list.</returns>
        public ActionResult Templates(SearchableGridOptions request)
        {
            request.SetDefaultPaging();
            var model = GetCommand<GetSiteSettingsTemplatesCommand>().ExecuteCommand(request);

            return View(model);
        }
コード例 #11
0
ファイル: AuthorController.cs プロジェクト: eiu165/BetterCMS
 /// <summary>
 /// Lists the authors.
 /// </summary>
 /// <param name="request">The request.</param>
 /// <returns>Json result.</returns>
 public ActionResult AuthorsList(SearchableGridOptions request)
 {
     var model = GetCommand<GetAuthorListCommand>().ExecuteCommand(request);
     return WireJson(model != null, model);
 }
コード例 #12
0
        public void Should_Find_Page_And_Return_ViewModel_Successfully()
        {
            // DEBUG START
            var request = new SearchableGridOptions
                {
                    SearchQuery = "a",
                    PageNumber = 2,
                    PageSize = 3,
                    Column = "PageUrl",
                    Direction = SortDirection.Descending
                };
            var sessionFactory = this.Container.Resolve<ISessionFactoryProvider>();
            // DEBUG END

            SearchableGridViewModel<SiteSettingRedirectViewModel> model;

            using (var session = sessionFactory.OpenSession())
            {
                BetterCms.Module.Pages.Models.Redirect alias = null;
                SiteSettingRedirectViewModel modelAlias = null;

                IQueryOver<BetterCms.Module.Pages.Models.Redirect, BetterCms.Module.Pages.Models.Redirect> query = session.QueryOver(() => alias);

                // Filter
                if (!string.IsNullOrWhiteSpace(request.SearchQuery))
                {
                    var searchQuery = string.Format("%{0}%", request.SearchQuery);
                    query = query
                        .Where(
                            Restrictions.InsensitiveLike(Projections.Property(() => alias.PageUrl), searchQuery) ||
                            Restrictions.InsensitiveLike(Projections.Property(() => alias.RedirectUrl), searchQuery));
                }

                // Select fields
                query = query
                    .SelectList(select => select
                        .Select(() => alias.Id).WithAlias(() => modelAlias.Id)
                        .Select(() => alias.PageUrl).WithAlias(() => modelAlias.PageUrl)
                        .Select(() => alias.RedirectUrl).WithAlias(() => modelAlias.RedirectUrl)
                        .Select(() => alias.Version).WithAlias(() => modelAlias.Version))
                    .TransformUsing(Transformers.AliasToBean<SiteSettingRedirectViewModel>());

                // Count
                var count = query.RowCount();

                // Sorting and paging
                query.AddSortingAndPaging(request);

                // Get results
                var redirects = query.List<SiteSettingRedirectViewModel>();

                model = new SearchableGridViewModel<SiteSettingRedirectViewModel>
                {
                    GridOptions = request,
                    Items = new CustomPagination<SiteSettingRedirectViewModel>(redirects, request.PageNumber, request.PageSize, count)
                };
            }

            // DEBUG START
            Assert.IsNotNull(model);
            // DEBUG END
        }
コード例 #13
0
ファイル: BlogController.cs プロジェクト: eiu165/BetterCMS
 public ActionResult Index(SearchableGridOptions request)
 {
     var model = GetCommand<GetBlogPostListCommand>().ExecuteCommand(request ?? new SearchableGridOptions());
     return View(model);
 }
コード例 #14
0
ファイル: RoleController.cs プロジェクト: tkirda/BetterCMS
 /// <summary>
 /// Roles list for Site Settings.
 /// </summary>
 /// <param name="request">The request.</param>
 /// <returns>Role list view.</returns>
 public ActionResult RolesListView(SearchableGridOptions request)
 {
     var roleList = GetCommand<GetRolesCommand>().ExecuteCommand(request);
     var model = new SiteSettingRoleListViewModel(roleList, new SearchableGridOptions(), roleList.Count);
     return View(model);
 }
コード例 #15
0
ファイル: UserController.cs プロジェクト: eiu165/BetterCMS
 /// <summary>
 /// User list for Site Settings.
 /// </summary>
 /// <param name="request">The request.</param>
 /// <returns>User list view.</returns>
 public ActionResult Index(SearchableGridOptions request)
 {
     var users = GetCommand<GetUsersCommand>().ExecuteCommand(request);
     var model = new SearchableGridViewModel<UserItemViewModel>(users, new SearchableGridOptions(), users.Count);
     return View(model);
 }