Beispiel #1
0
        public async Task <IActionResult> SearchCalculations(string specificationId,
                                                             CalculationType calculationType,
                                                             PublishStatus?status,
                                                             string searchTerm,
                                                             int?page)
        {
            Guard.IsNullOrWhiteSpace(specificationId, nameof(specificationId));

            Dictionary <string, string[]> filters = new Dictionary <string, string[]>
            {
                { "specificationId", new [] { specificationId } },
                { "calculationType", new [] { calculationType.ToString() } }
            };

            if (status.HasValue)
            {
                filters.Add("status", new [] { status.Value.ToString() });
            }

            return(await SearchCalculations(new SearchModel
            {
                SearchMode = Models.Search.SearchMode.All,
                FacetCount = 50,
                SearchTerm = searchTerm,
                Filters = filters,
                PageNumber = page.GetValueOrDefault(1),
                Top = 50
            }));
        }
        public async Task <GenreDetail> GetAsync(string genre, PublishStatus?contentPublicationFlags = null)
        {
            PublishedStatusEnumMapper statusMapper       = new PublishedStatusEnumMapper();
            DbPublishedStatus         contentStatusFlags = statusMapper.GetAllDbFlags();

            if (contentPublicationFlags.HasValue)
            {
                contentStatusFlags = statusMapper.Map(contentPublicationFlags.Value);
            }
            var dbGenre = await _context.Genres.SingleOrDefaultAsync(x => x.Name == genre);

            if (dbGenre != null)
            {
                var numAlbums = await _context.Genres.Where(g => g.Name == genre).SelectMany(x => x.AlbumGenres).CountAsync(x => x.Album.PublishStatus == DbPublishedStatus.PUBLISHED);

                var numArtists = await _context.Genres.Where(g => g.Name == genre).SelectMany(x => x.ArtistGenres).CountAsync(x => x.Artist.PublishStatus == DbPublishedStatus.PUBLISHED);

                GenreDetail result = new GenreDetail()
                {
                    Name         = dbGenre.Name,
                    TotalAlbums  = numAlbums,
                    TotalArtists = numArtists,
                    Created      = new DateTime(dbGenre.CreatedUtc.Ticks, DateTimeKind.Utc)
                };
                return(result);
            }
            else
            {
                return(null);
            }
        }
Beispiel #3
0
        public async Task <IActionResult> GetAdditionalCalculationsByProviderId(
            string specificationId,
            CalculationType calculationType,
            int pageNumber,
            [FromQuery] string searchTerm,
            [FromQuery] string status,
            [FromRoute] string providerId)
        {
            Guard.ArgumentNotNull(specificationId, nameof(specificationId));

            PublishStatus?publishStatus = null;

            if (!string.IsNullOrEmpty(status) && status != "All")
            {
                publishStatus = (PublishStatus)Enum.Parse(typeof(PublishStatus), status);
            }

            ApiResponse <SearchResults <CalculationSearchResult> > result =
                await _calcClient.SearchCalculationsForSpecification(specificationId,
                                                                     calculationType, publishStatus, searchTerm, pageNumber);

            ApiResponse <ProviderResultResponse> providerResultResponse =
                await _resultsApiClient.GetProviderResults(providerId, specificationId);

            IActionResult providerResultResponseErrorResult = providerResultResponse.IsSuccessOrReturnFailureResult("GetProviderResults");

            if (providerResultResponseErrorResult != null)
            {
                return(providerResultResponseErrorResult);
            }

            if (result.StatusCode == HttpStatusCode.OK)
            {
                var calcSearchResults = result.Content;

                IEnumerable <AdditionalCalculationSearchResultViewModel> additionalCalcs =
                    calcSearchResults.Results.Select(c =>
                                                     new AdditionalCalculationSearchResultViewModel
                {
                    Id              = c.Id,
                    Name            = c.Name,
                    ValueType       = c.ValueType,
                    Value           = providerResultResponse.Content.CalculationResults.FirstOrDefault(calcResult => calcResult.Calculation.Id == c.Id)?.Value,
                    LastUpdatedDate = c.LastUpdatedDate
                });

                var calcs = new SearchResults <AdditionalCalculationSearchResultViewModel>
                {
                    TotalCount      = calcSearchResults.TotalCount,
                    Results         = additionalCalcs,
                    Facets          = calcSearchResults.Facets,
                    TotalErrorCount = calcSearchResults.TotalErrorCount,
                };

                return(Ok(calcs));
            }

            return(BadRequest(result.Content));
        }
Beispiel #4
0
 /// <summary>
 /// Initializes a new instance of the MDEntityProperties class.
 /// </summary>
 /// <param name="originObjectId">Entity object id maintained by the
 /// caller.</param>
 /// <param name="objectId">Entity object id maintained by SyMS.</param>
 /// <param name="objectVersion">Entity object version maintained by
 /// SyMS.</param>
 /// <param name="publishStatus">Possible values include:
 /// 'PUBLISHED'</param>
 /// <param name="properties">Property bag</param>
 public MDEntityProperties(string originObjectId = default(string), string objectId = default(string), long?objectVersion = default(long?), PublishStatus?publishStatus = default(PublishStatus?), System.Collections.Generic.IDictionary <string, JToken> properties = default(System.Collections.Generic.IDictionary <string, JToken>))
 {
     OriginObjectId = originObjectId;
     ObjectId       = objectId;
     ObjectVersion  = objectVersion;
     PublishStatus  = publishStatus;
     Properties     = properties;
 }
 public async Task <IActionResult> SearchCalculationsForSpecification([FromRoute] string specificationId,
                                                                      [FromRoute] CalculationType calculationType,
                                                                      [FromQuery] PublishStatus?status,
                                                                      [FromQuery] string searchTerm,
                                                                      [FromQuery] int?page)
 {
     return(Ok(await _calculationSearchService.PerformSearch(specificationId,
                                                             calculationType,
                                                             status,
                                                             searchTerm,
                                                             page)));
 }
        public async Task <CalculationSearchResultViewModel> PerformSearch(string specificationId,
                                                                           CalculationType calculationType,
                                                                           PublishStatus?status,
                                                                           string searchTerm,
                                                                           int?page)
        {
            ApiResponse <SearchResults <CalculationSearchResult> > calculationsResult = await _calculationsApiClient.SearchCalculationsForSpecification(specificationId,
                                                                                                                                                        calculationType,
                                                                                                                                                        status,
                                                                                                                                                        searchTerm,
                                                                                                                                                        page);

            return(BuildResults(calculationsResult, page.GetValueOrDefault(1), 50));
        }
Beispiel #7
0
 public async Task SearchCalculationsForSpecification(string specificationId,
                                                      CalculationType calculationType,
                                                      PublishStatus?status,
                                                      string searchTerm,
                                                      int?page,
                                                      string expectedUri)
 {
     await AssertGetRequest(expectedUri,
                            new SearchResults <CalculationSearchResult>(),
                            () => _client.SearchCalculationsForSpecification(specificationId,
                                                                             calculationType,
                                                                             status,
                                                                             searchTerm,
                                                                             page));
 }
        public async Task <GenreList> ListAsync(PublishStatus?contentPublicationFlags = null)
        {
            PublishedStatusEnumMapper statusMapper       = new PublishedStatusEnumMapper();
            DbPublishedStatus         contentStatusFlags = statusMapper.GetAllDbFlags();

            if (contentPublicationFlags.HasValue)
            {
                contentStatusFlags = statusMapper.Map(contentPublicationFlags.Value);
            }
            List <GenreDetail> genres = await _context.Genres.Select(g => new GenreDetail {
                Name         = g.Name,
                Created      = new DateTime(g.CreatedUtc.Ticks, DateTimeKind.Utc),
                TotalAlbums  = g.AlbumGenres.Count(x => (x.Album.PublishStatus & contentStatusFlags) != 0),
                TotalArtists = g.ArtistGenres.Count(x => (x.Artist.PublishStatus & contentStatusFlags) != 0)
            }).ToListAsync();

            GenreList result = new GenreList()
            {
                Genres = genres
            };

            return(result);
        }
Beispiel #9
0
        public async Task <IActionResult> GetCalculationsForSpecification(string specificationId,
                                                                          CalculationType calculationType, int pageNumber, [FromQuery] string searchTerm, [FromQuery] string status)
        {
            Guard.ArgumentNotNull(specificationId, nameof(specificationId));

            PublishStatus?publishStatus = null;

            if (!string.IsNullOrEmpty(status) && status != "All")
            {
                publishStatus = (PublishStatus)Enum.Parse(typeof(PublishStatus), status);
            }

            ApiResponse <SearchResults <CalculationSearchResult> > result =
                await _calcClient.SearchCalculationsForSpecification(specificationId,
                                                                     calculationType, publishStatus, searchTerm, pageNumber);

            if (result.StatusCode == HttpStatusCode.OK)
            {
                return(Ok(result.Content));
            }

            return(BadRequest(result.Content));
        }
        public async Task <IActionResult> Index([FromQuery] int page = 0, PublishStatus?status = null)
        {
            ArtistIndexViewModel model = new ArtistIndexViewModel();

            page = Math.Max(page, 0);
            PublishStatus flags = PublishStatus.PUBLISHED | PublishStatus.UNPUBLISHED;

            if (status.HasValue)
            {
                flags = status.Value;
            }
            var result = await _artistRepo.ListAsync(page, _pageSize, flags);

            model.PageIndex  = result.PageIndex;
            model.PageSize   = result.PageSize;
            model.TotalPages = (int)Math.Ceiling(((double)result.TotalItems / (double)result.PageSize));

            ArtistViewModelMapper mapper = new ArtistViewModelMapper();

            model.Items.AddRange(result.Items.Select(i => mapper.Map(i)));

            return(View(model));
        }
        public ApiCalculationMetadataBuilder WithPublishStatus(PublishStatus publishStatus)
        {
            _publishStatus = publishStatus;

            return(this);
        }
Beispiel #12
0
 public async Task <IActionResult> SearchCalculationsForSpecification([FromRoute] string specificationId,
                                                                      [FromRoute] CalculationType calculationType,
                                                                      [FromQuery] PublishStatus?status,
                                                                      [FromQuery] string searchTerm,
                                                                      [FromQuery] int?page) =>
 await _calcsSearchService.SearchCalculations(specificationId, calculationType, status, searchTerm, page);
Beispiel #13
0
 /// <summary>
 /// Initializes a new instance of the ViewEntityProperties class.
 /// </summary>
 /// <param name="originObjectId">Entity object id maintained by the
 /// caller.</param>
 /// <param name="objectId">Entity object id maintained by SyMS.</param>
 /// <param name="objectVersion">Entity object version maintained by
 /// SyMS.</param>
 /// <param name="publishStatus">Possible values include:
 /// 'PUBLISHED'</param>
 /// <param name="properties">Property bag</param>
 /// <param name="viewOriginalText">View original text.</param>
 /// <param name="viewExpandedText">View expanded text.</param>
 /// <param name="temporary">Temporary.</param>
 /// <param name="isRewriteEnabled">Is rewrite enabled.</param>
 public ViewEntityProperties(TableNamespace namespaceProperty, StorageDescriptor storageDescriptor, string originObjectId = default(string), string objectId = default(string), long?objectVersion = default(long?), PublishStatus?publishStatus = default(PublishStatus?), System.Collections.Generic.IDictionary <string, JToken> properties = default(System.Collections.Generic.IDictionary <string, JToken>), TablePartitioning partitioning = default(TablePartitioning), string viewOriginalText = default(string), string viewExpandedText = default(string), bool?temporary = default(bool?), bool?isRewriteEnabled = default(bool?))
     : base(originObjectId, objectId, objectVersion, publishStatus, properties)
 {
     NamespaceProperty = namespaceProperty;
     Partitioning      = partitioning;
     StorageDescriptor = storageDescriptor;
     ViewOriginalText  = viewOriginalText;
     ViewExpandedText  = viewExpandedText;
     Temporary         = temporary;
     IsRewriteEnabled  = isRewriteEnabled;
 }
Beispiel #14
0
 /// <summary>
 /// Initializes a new instance of the SchemaProperties class.
 /// </summary>
 /// <param name="originObjectId">Entity object id maintained by the
 /// caller.</param>
 /// <param name="objectId">Entity object id maintained by SyMS.</param>
 /// <param name="objectVersion">Entity object version maintained by
 /// SyMS.</param>
 /// <param name="publishStatus">Possible values include:
 /// 'PUBLISHED'</param>
 /// <param name="properties">Property bag</param>
 public SchemaProperties(NamespaceModel namespaceProperty, string originObjectId = default(string), string objectId = default(string), long?objectVersion = default(long?), PublishStatus?publishStatus = default(PublishStatus?), System.Collections.Generic.IDictionary <string, JToken> properties = default(System.Collections.Generic.IDictionary <string, JToken>))
     : base(originObjectId, objectId, objectVersion, publishStatus, properties)
 {
     NamespaceProperty = namespaceProperty;
 }
Beispiel #15
0
 /// <summary>
 /// Initializes a new instance of the DatabaseProperties class.
 /// </summary>
 /// <param name="originObjectId">Entity object id maintained by the
 /// caller.</param>
 /// <param name="objectId">Entity object id maintained by SyMS.</param>
 /// <param name="objectVersion">Entity object version maintained by
 /// SyMS.</param>
 /// <param name="publishStatus">Possible values include:
 /// 'PUBLISHED'</param>
 /// <param name="properties">Property bag</param>
 /// <param name="description">Description of the database.</param>
 public DatabaseProperties(DataSource source, string originObjectId = default(string), string objectId = default(string), long?objectVersion = default(long?), PublishStatus?publishStatus = default(PublishStatus?), System.Collections.Generic.IDictionary <string, JToken> properties = default(System.Collections.Generic.IDictionary <string, JToken>), string description = default(string))
     : base(originObjectId, objectId, objectVersion, publishStatus, properties)
 {
     Source      = source;
     Description = description;
 }
Beispiel #16
0
        /// <summary>
        ///
        /// </summary>
        public async Task <IEnumerable <PostOutput> > SearchAsync(int page, int recordsPerPage, string term, bool isTrashed, PublishStatus?publishStatus, SortOrder sortOrder)
        {
            var posts = await _postRepository.SearchAsync(page : page, recordsPerPage : recordsPerPage, term : term, isTrashed : isTrashed, publishStatus : publishStatus, sortOrder : sortOrder);

            return(posts.Select(post => new PostOutput
            {
                Id = post.Id,
                Title = post.Title,
                Content = post.Content,
                Author = post.Author,
                PostLevel = post.PostLevel,
                MetaDescription = post.MetaDescription,
                MetaKeyWords = post.MetaKeyWords,
                PublishDateTime = post.PublishDateTime,
                PublishStatus = post.PublishStatus,
                MetaRobots = post.MetaRobots,
                UrlTitle = post.UrlTitle,
                UserId = post.UserId,
                Categoories = GetPostTaxonomies(post.CategoryIds),
                Tags = GetPostTaxonomies(post.CategoryIds),
                IsTrashed = post.IsTrashed,
            }).ToList());
        }
Beispiel #17
0
        /// <summary>
        ///
        /// </summary>
        public IEnumerable <Post> Search(int page, int recordsPerPage, string term, bool isTrashed, PublishStatus?publishStatus, SortOrder sortOrder, out int pageSize, out int TotalItemCount)
        {
            var queryable = _posts.AsQueryable();

            #region براساس وضعیت زباله

            queryable = queryable.Where(p => p.IsTrashed == isTrashed);

            #endregion

            #region براساس متن

            if (!string.IsNullOrEmpty(term))
            {
                queryable = queryable.Where(p => p.Title.Contains(term));
            }

            #endregion

            #region براساس وضعیت انتشار

            if (publishStatus.HasValue)
            {
                queryable = queryable.Where(p => p.PublishStatus == publishStatus);
            }

            #endregion

            #region مرتب سازی

            queryable = sortOrder == SortOrder.Asc ? queryable.OrderBy(p => p.Id) : queryable.OrderByDescending(p => p.Id);


            #endregion

            #region دریافت تعداد کل صفحات

            TotalItemCount = queryable.CountAsync().Result;
            pageSize       = (int)Math.Ceiling((double)TotalItemCount / recordsPerPage);

            page = page > pageSize || page < 1 ? 1 : page;

            #endregion

            #region دریافت تعداد رکوردهای مورد تیاز


            var skiped = (page - 1) * recordsPerPage;
            queryable = queryable.Skip(skiped).Take(recordsPerPage);


            #endregion



            return(queryable.ToList());
        }
Beispiel #18
0
        /// <summary>
        ///
        /// </summary>
        public async Task <IEnumerable <Post> > SearchAsync(int page, int recordsPerPage, string term, string taxonomyId, TaxonomyType?taxonomyType, PublishStatus?publishStatus, SortOrder sortOrder)
        {
            var queryable = _posts.AsQueryable();

            #region By IsTrashed

            queryable = queryable.Where(p => p.IsTrashed == false);

            #endregion

            #region By term

            if (!string.IsNullOrEmpty(term))
            {
                queryable = queryable.Where(p => p.Title.Contains(term));
            }

            #endregion

            #region By publishStatus

            if (publishStatus.HasValue)
            {
                queryable = queryable.Where(p => p.PublishStatus == publishStatus);
            }

            #endregion

            #region By taxonomyId & taxonomyType

            if (taxonomyType.HasValue)
            {
                switch (taxonomyType.Value)
                {
                case TaxonomyType.Category:
                    queryable = queryable.Where(p => p.CategoryIds.Contains(taxonomyId));

                    break;

                case TaxonomyType.Tag:
                    queryable = queryable.Where(p => p.TagIds.Contains(taxonomyId));
                    break;
                }
            }

            #endregion

            #region By publishStatus

            if (publishStatus.HasValue)
            {
                queryable = queryable.Where(p => p.PublishStatus == publishStatus);
            }

            #endregion

            #region By publishStatus

            if (publishStatus.HasValue)
            {
                queryable = queryable.Where(p => p.PublishStatus == publishStatus);
            }

            #endregion

            #region SortOrder

            queryable = sortOrder == SortOrder.Asc ? queryable.OrderBy(p => p.Id) : queryable.OrderByDescending(p => p.Id);


            #endregion

            #region Skip Take

            var skiped = page * recordsPerPage;


            queryable = queryable.Skip(skiped).Take(recordsPerPage);


            #endregion

            return(await queryable.ToListAsync());
        }
Beispiel #19
0
 /// <summary>
 /// Initializes a new instance of the RelationshipProperties class.
 /// </summary>
 /// <param name="fromTableName">From Table Name</param>
 /// <param name="toTableName">To Table Name</param>
 /// <param name="columnRelationshipInformations">List of Column
 /// Relationships.</param>
 /// <param name="originObjectId">Entity object id maintained by the
 /// caller.</param>
 /// <param name="objectId">Entity object id maintained by SyMS.</param>
 /// <param name="objectVersion">Entity object version maintained by
 /// SyMS.</param>
 /// <param name="publishStatus">Possible values include:
 /// 'PUBLISHED'</param>
 /// <param name="properties">Property bag</param>
 /// <param name="fromTableId">From Table Id</param>
 /// <param name="toTableId">To Table Id</param>
 /// <param name="relationshipType">Possible values include:
 /// 'ONETOONE', 'ONETOMANY', 'MANYTOONE', 'MANYTOMANY'</param>
 public RelationshipProperties(NamespaceModel namespaceProperty, string fromTableName, string toTableName, System.Collections.Generic.IList <ColumnRelationshipInformation> columnRelationshipInformations, string originObjectId = default(string), string objectId = default(string), long?objectVersion = default(long?), PublishStatus?publishStatus = default(PublishStatus?), System.Collections.Generic.IDictionary <string, JToken> properties = default(System.Collections.Generic.IDictionary <string, JToken>), string fromTableId = default(string), string toTableId = default(string), RelationshipType?relationshipType = default(RelationshipType?))
     : base(originObjectId, objectId, objectVersion, publishStatus, properties)
 {
     NamespaceProperty = namespaceProperty;
     FromTableId       = fromTableId;
     FromTableName     = fromTableName;
     ToTableId         = toTableId;
     ToTableName       = toTableName;
     RelationshipType  = relationshipType;
     ColumnRelationshipInformations = columnRelationshipInformations;
 }
Beispiel #20
0
        public async Task <ApiResponse <SearchResults <CalculationSearchResult> > > SearchCalculationsForSpecification(string specificationId,
                                                                                                                       CalculationType calculationType,
                                                                                                                       PublishStatus?status,
                                                                                                                       string searchTerm = null,
                                                                                                                       int?page          = null)
        {
            Guard.IsNullOrWhiteSpace(specificationId, nameof(specificationId));

            string url            = $"specifications/{specificationId}/calculations/calculationType/{calculationType}";
            bool   hasQueryString = false;

            if (!string.IsNullOrWhiteSpace(searchTerm))
            {
                hasQueryString = true;

                url = $"{url}?searchTerm={ WebUtility.UrlEncode(searchTerm)}";
            }

            if (page.HasValue)
            {
                url = hasQueryString ? $"{url}&page={page}" : $"{url}?page={page}";

                hasQueryString = true;
            }

            if (status.HasValue)
            {
                url = hasQueryString ? $"{url}&status={status}" : $"{url}?status={status}";
            }

            return(await GetAsync <SearchResults <CalculationSearchResult> >(url));
        }
 public Task <ApiResponse <SearchResults <CalculationSearchResult> > > SearchCalculationsForSpecification(string specificationId, Common.ApiClient.Calcs.Models.CalculationType calculationType, PublishStatus?status, string searchTerm = null, int?page = null)
 {
     throw new NotImplementedException();
 }
Beispiel #22
0
 /// <summary>
 /// Initializes a new instance of the PartitionInfoProperties class.
 /// </summary>
 /// <param name="partitionKeyValues">Partition key values.</param>
 /// <param name="originObjectId">Entity object id maintained by the
 /// caller.</param>
 /// <param name="objectId">Entity object id maintained by SyMS.</param>
 /// <param name="objectVersion">Entity object version maintained by
 /// SyMS.</param>
 /// <param name="publishStatus">Possible values include:
 /// 'PUBLISHED'</param>
 /// <param name="properties">Property bag</param>
 public PartitionInfoProperties(PartitionInfoNamespace namespaceProperty, StorageDescriptor storageDescriptor, System.Collections.Generic.IList <object> partitionKeyValues, string originObjectId = default(string), string objectId = default(string), long?objectVersion = default(long?), PublishStatus?publishStatus = default(PublishStatus?), System.Collections.Generic.IDictionary <string, JToken> properties = default(System.Collections.Generic.IDictionary <string, JToken>))
     : base(originObjectId, objectId, objectVersion, publishStatus, properties)
 {
     NamespaceProperty  = namespaceProperty;
     StorageDescriptor  = storageDescriptor;
     PartitionKeyValues = partitionKeyValues;
 }
Beispiel #23
0
        /// <summary>
        ///
        /// </summary>
        public IEnumerable <PostOutput> Search(int page, int recordsPerPage, string term, bool isTrashed, PublishStatus?publishStatus, SortOrder sortOrder, out int pageSize, out int TotalItemCount)
        {
            var posts = _postRepository.Search(page: page, recordsPerPage: recordsPerPage, term: term, isTrashed: isTrashed, publishStatus: publishStatus, sortOrder: sortOrder, pageSize: out pageSize, TotalItemCount: out TotalItemCount);

            return(posts.Select(post =>
                                _mapperService.BindToOutputModel(

                                    post: post,
                                    tags: GetPostTaxonomies(post.TagIds),
                                    categories: GetPostTaxonomies(post.CategoryIds),
                                    user: _userRepository.Get(post.UserId)

                                    )).ToList());
        }
Beispiel #24
0
        /// <summary>
        ///
        /// </summary>
        public IEnumerable <Post> Search(int page, int recordsPerPage, string term, bool isTrashed, PublishStatus?publishStatus, SortOrder sortOrder, out int pageSize, out int TotalItemCount)
        {
            var queryable = _posts.AsQueryable();

            #region By isTrashed

            queryable = queryable.Where(p => p.IsTrashed == isTrashed);

            #endregion

            #region By term

            if (!string.IsNullOrEmpty(term))
            {
                queryable = queryable.Where(p => p.Title.Contains(term));
            }

            #endregion

            #region By publishStatus

            if (publishStatus.HasValue)
            {
                queryable = queryable.Where(p => p.PublishStatus == publishStatus);
            }

            #endregion

            #region SortOrder

            queryable = sortOrder == SortOrder.Asc ? queryable.OrderBy(p => p.Id) : queryable.OrderByDescending(p => p.Id);


            #endregion

            #region  Skip Take

            TotalItemCount = queryable.CountAsync().Result;
            pageSize       = (int)Math.Ceiling((double)TotalItemCount / recordsPerPage);

            page = page > pageSize || page < 1 ? 1 : page;


            var skiped = (page - 1) * recordsPerPage;
            queryable = queryable.Skip(skiped).Take(recordsPerPage);


            #endregion


            return(queryable.ToList());
        }
Beispiel #25
0
        /// <summary>
        ///
        /// </summary>
        public async Task <IEnumerable <PostOutput> > SearchAsync(int page, int recordsPerPage, string term, string taxonomyId, TaxonomyType?taxonomyType, PublishStatus?publishStatus, SortOrder sortOrder)
        {
            var posts = await _postRepository.SearchAsync(page : page, recordsPerPage : recordsPerPage, term : term, taxonomyId : taxonomyId, taxonomyType : taxonomyType, publishStatus : publishStatus, sortOrder : sortOrder);

            return(posts.Select(post =>
                                _mapperService.BindToOutputModel(

                                    post: post,
                                    tags: GetPostTaxonomies(post.TagIds),
                                    categories: GetPostTaxonomies(post.CategoryIds),
                                    user: _userRepository.Get(post.UserId)

                                    )).ToList());
        }
Beispiel #26
0
        public ActionResult Search(int page = 1, string term = "", bool isTrashed = false, PublishStatus?publishStatus = null, SortOrder sortOrder = SortOrder.Desc)
        {
            var posts = _postService.Search(page: page, recordsPerPage: recordsPerPage, term: term, isTrashed: isTrashed, publishStatus: publishStatus, sortOrder: sortOrder, pageSize: out pageSize, TotalItemCount: out TotalItemCount);

            #region ViewBags

            ViewBag.IsTrashed      = isTrashed;
            ViewBag.PageSize       = pageSize;
            ViewBag.CurrentPage    = page;
            ViewBag.TotalItemCount = TotalItemCount;


            #endregion

            return(PartialView("_PostList", posts));
        }
Beispiel #27
0
        /// <summary>
        ///
        /// </summary>
        public async Task <IEnumerable <Post> > SearchAsync(int page, int recordsPerPage, string term, bool isTrashed, PublishStatus?publishStatus, SortOrder sortOrder)
        {
            var queryable = _posts.AsQueryable();

            #region براساس وضعیت زباله

            queryable = queryable.Where(p => p.IsTrashed == isTrashed);

            #endregion

            #region براساس متن

            if (!string.IsNullOrEmpty(term))
            {
                queryable = queryable.Where(p => p.Title.Contains(term));
            }

            #endregion

            #region براساس وضعیت انتشار

            if (publishStatus.HasValue)
            {
                queryable = queryable.Where(p => p.PublishStatus == publishStatus);
            }

            #endregion

            #region مرتب سازی

            queryable = sortOrder == SortOrder.Asc ? queryable.OrderBy(p => p.Id) : queryable.OrderByDescending(p => p.Id);


            #endregion

            #region دریافت تعداد رکوردهای مورد تیاز

            var skiped = page * recordsPerPage;


            queryable = queryable.Skip(skiped).Take(recordsPerPage);


            #endregion

            return(await queryable.ToListAsync());
        }