/// <summary>
        /// Gets the list of layout entities.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>
        /// The list of layout entities
        /// </returns>
        /// <exception cref="CmsApiException"></exception>
        public DataListResponse<Layout> GetLayouts(GetLayoutsRequest request = null)
        {
            try
            {
                var result = Repository
                        .AsQueryable<Layout>()
                        .ApplyFiltersWithChildren(request);
                
                var query = result.Item1;
                var totalCount = result.Item2;

                query = query
                        .AddOrder(request)
                        .FetchMany(l => l.LayoutRegions)
                        .ThenFetch(l => l.Region);

                return query.ToDataListResponse(totalCount);
            }
            catch (Exception inner)
            {
                const string message = "Failed to get layouts list.";
                Logger.Error(message, inner);
                throw new CmsApiException(message, inner);
            }
        }
Exemple #2
0
        public GetLayoutsResponse Get(GetLayoutsRequest request)
        {
            request.Data.SetDefaultOrder("Name");

            var listResponse = repository
                               .AsQueryable <Module.Root.Models.Layout>()
                               .Select(layout => new LayoutModel
            {
                Id             = layout.Id,
                Version        = layout.Version,
                CreatedBy      = layout.CreatedByUser,
                CreatedOn      = layout.CreatedOn,
                LastModifiedBy = layout.ModifiedByUser,
                LastModifiedOn = layout.ModifiedOn,

                Name       = layout.Name,
                LayoutPath = layout.LayoutPath,
                PreviewUrl = layout.PreviewUrl
            })
                               .ToDataListResponse(request);

            return(new GetLayoutsResponse
            {
                Data = listResponse
            });
        }
Exemple #3
0
        public GetLayoutsResponse Get(GetLayoutsRequest request)
        {
            request.Data.SetDefaultOrder("Name");

            var listResponse = repository
                .AsQueryable<Module.Root.Models.Layout>()
                .Select(layout => new LayoutModel
                    {
                        Id = layout.Id,
                        Version = layout.Version,
                        CreatedBy = layout.CreatedByUser,
                        CreatedOn = layout.CreatedOn,
                        LastModifiedBy = layout.ModifiedByUser,
                        LastModifiedOn = layout.ModifiedOn,

                        Name = layout.Name,
                        LayoutPath = layout.LayoutPath,
                        PreviewUrl = layout.PreviewUrl
                    })
                .ToDataListResponse(request);

            return new GetLayoutsResponse
                       {
                           Data = listResponse
                       };
        }
        /// <summary>
        /// Gets the list of layout entities.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>
        /// The list of layout entities
        /// </returns>
        /// <exception cref="CmsApiException"></exception>
        public DataListResponse <Layout> GetLayouts(GetLayoutsRequest request = null)
        {
            try
            {
                var result = Repository
                             .AsQueryable <Layout>()
                             .ApplyFiltersWithChildren(request);

                var query      = result.Item1;
                var totalCount = result.Item2;

                query = query
                        .AddOrder(request)
                        .FetchMany(l => l.LayoutRegions)
                        .ThenFetch(l => l.Region);

                return(query.ToDataListResponse(totalCount));
            }
            catch (Exception inner)
            {
                const string message = "Failed to get layouts list.";
                Logger.Error(message, inner);
                throw new CmsApiException(message, inner);
            }
        }
Exemple #5
0
        public void Should_Return_Filtered_Ordered_Paged_Layouts_List_Successfully()
        {
            var fakeLayouts = CreateLayouts().ToList();
            var repositoryMock = MockRepository(fakeLayouts);

            using (var service = new PagesApiContext(Container.BeginLifetimeScope(), repositoryMock.Object))
            {
                var request = new GetLayoutsRequest(t => t.Name.Contains("Layout"), null, true);
                request.AddPaging(1, 2);
                var layouts = service.GetLayouts(request);

                Assert.IsNotNull(layouts);
                Assert.AreEqual(layouts.Items.Count, 1);
                Assert.AreEqual(layouts.TotalCount, 3);

                var fakeLayout = fakeLayouts.First(t => t.Name == "Layout2");
                var layout = layouts.Items[0];
                Assert.IsNotNull(layout);
                Assert.AreEqual(fakeLayout.Id, layout.Id);
            }
        }
        public ActionResult TestApi()
        {
            /*PagesApiContext.Events.PageCreated += EventsOnPageCreated;

            PagesApiContext.Events.OnPageCreated(new PageProperties());

            ApiContext.Events.HostStart += Core_HostStart;*/

            var message = string.Empty;

            DataListResponse<BlogPost> results;
            using (var api = CmsContext.CreateApiContextOf<BlogsApiContext>())
            {
                using (var papi = CmsContext.CreateApiContextOf<PagesApiContext>())
                {
                    var request = new GetLayoutsRequest();
                    var result = papi.GetLayouts(request);

                    /*var aRequest = new GetContentHistoryRequest(new Guid("AE04E233-4E88-4A9F-87BC-A1CC00F2C173"));
                    var aresults = papi.GetContentHistory(aRequest);

                    if (aresults.Items.Count > 0)
                    {
                        message = string.Format("{0}<br />Total count:{2},  Item titles: {1}", message, string.Join("; ", aresults.Items.Select(t => t.Name)), aresults.TotalCount);
                    }

                    aRequest = new GetContentHistoryRequest(new Guid("AE04E233-4E88-4A9F-87BC-A1CC00F2C173"), a => a.Name.ToLower().Contains("poop"), o => o.Name, orderDescending: true);
                    aresults = papi.GetContentHistory(aRequest);

                    if (aresults.Items.Count > 0)
                    {
                        message = string.Format("{0}<br />Total count:{2},  Item titles: {1}", message, string.Join("; ", aresults.Items.Select(t => t.Name)), aresults.TotalCount);
                    }*/

                    /*var request = new GetDataRequest<Layout>(3, 2, orderDescending:true, order:t =>t.Name);
                    results = pagesApi.GetLayouts(request);*/

                    /*var request = new GetDataRequest<LayoutRegion>(orderDescending: true, order: t => t.Region.RegionIdentifier);
                    request.AddPaging(2, 2);*/

                    /*var request = new GetBlogPostsRequest(b => b.ExpirationDate.HasValue, includePrivate: true, includeUnpublished: true, itemsCount: 3);
                    results = api.GetBlogPosts(request);

                    if (results.Items.Count > 0)
                    {
                        message = string.Format(
                            "{0}<br />Total count:{2},  Item titles: {1}", message, string.Join("; ", results.Items.Select(t => t.Title)), results.TotalCount);
                    }

                    request = new GetBlogPostsRequest(order: b => b.Title, orderDescending: true, includePrivate: true, includeUnpublished: true);
                    request.AddPaging(3, 3);
                    results = api.GetBlogPosts(request);

                    if (results.Items.Count > 0)
                    {
                        message = string.Format(
                            "{0}<br />Total count:{2}, Item titles: {1}", message, string.Join("; ", results.Items.Select(t => t.Title)), results.TotalCount);
                    }

                    request = new GetBlogPostsRequest(
                        order: b => b.Title, orderDescending: true, itemsCount: 5, startItemNumber: 3, includeUnpublished: true, includePrivate: true);
                    results = api.GetBlogPosts(request);*/
                }
            }

            return Content(message);
        }