public ActionResult PostManagement(int page = 1)
        {
            SortBuilder sortBuilder = new SortBuilder()
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = 10,
                TotalRecord = 0
            };
            Expression <Func <Post, bool> > expression = PredicateBuilder.True <Post>();

            expression = expression.And <Post>((Post x) => x.CreatedBy.Equals(this.HttpContext.User.Identity.Name));
            IEnumerable <Post> posts = this._postService.FindAndSort(expression, sortBuilder, paging);

            if (posts.IsAny <Post>())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, (int i) => base.Url.Action("PostManagement", "Account", new { page = i }));
                ((dynamic)base.ViewBag).PageInfo  = pageInfo;
                ((dynamic)base.ViewBag).CountItem = pageInfo.TotalItems;
            }
            return(base.View(posts));
        }
Beispiel #2
0
        public SearchResult <T> Search(SearchParameters parameters)
        {
            int?start = null;
            int?rows  = null;

            if (parameters.PageIndex > 0)
            {
                start = (parameters.PageIndex - 1) * parameters.PageSize;
                rows  = parameters.PageSize;
            }

            var queryOptions = new QueryOptions
            {
                FilterQueries = FilterBuilder.BuildFilterQueries(parameters),
                Rows          = rows,
                Start         = start,
                OrderBy       = SortBuilder.GetSelectedSort(parameters),
            };

            try
            {
                var matchingResults = _solr.Query(QueryBuilder.BuildQuery(parameters), queryOptions);
                return(new SearchResult <T>
                {
                    MatchingResults = matchingResults,
                    TotalResults = matchingResults.NumFound
                });
            }
            catch (SolrConnectionException exception)
            {
                // log exception and return empty result
                Console.WriteLine($"Url: {exception.Url}    Message: {exception.Message}");
                return(new SearchResult <T>());
            }
        }
Beispiel #3
0
        public async Task <ActionResult> Index(int page = 1, string keywords = "")
        {
            ((dynamic)this.ViewBag).Keywords = keywords;
            SortingPagingBuilder sortingPagingBuilder = new SortingPagingBuilder()
            {
                Keywords = keywords
            };
            SortBuilder sortBuilder = new SortBuilder()
            {
                ColumnName  = "UserName",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };

            sortingPagingBuilder.Sorts = sortBuilder;
            SortingPagingBuilder sortingPagingBuilder1 = sortingPagingBuilder;
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = this._pageSize,
                TotalRecord = 0
            };
            Paging paging1 = paging;
            IEnumerable <App.Domain.Entities.Account.User> users = await this._userService.PagedList(sortingPagingBuilder1, paging1);

            if (users != null && users.Any())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging1.TotalRecord, (int i) => this.Url.Action("Index", new { page = i, keywords = keywords }));
                ((dynamic)this.ViewBag).PageInfo = pageInfo;
            }
            return(this.View(users));
        }
Beispiel #4
0
        public ActionResult GetAccesssoriesHome(int page, string id)
        {
            Expression <Func <Post, bool> > expression = PredicateBuilder.True <Post>();

            expression = expression.And <Post>((Post x) => x.Status == 1);
            expression = expression.And <Post>((Post x) => x.VirtualCategoryId.Contains(id));
            expression = expression.And <Post>((Post x) => x.ProductHot);
            SortBuilder sortBuilder = new SortBuilder()
            {
                ColumnName  = "UpdatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = 4,
                TotalRecord = 0
            };
            IEnumerable <Post> posts = this._postService.FindAndSort(expression, sortBuilder, paging);

            if (!posts.IsAny <Post>())
            {
                return(base.Json(new { success = true, data = "" }, JsonRequestBehavior.AllowGet));
            }
            return(base.Json(new { data = this.RenderRazorViewToString("_SlideProductHome", posts), success = true }, JsonRequestBehavior.AllowGet));
        }
Beispiel #5
0
        public ActionResult PostManagement(int page = 1)
        {
            var sortBuilder = new SortBuilder
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = 10,
                TotalRecord = 0
            };
            var expression = PredicateBuilder.True <Post>();

            expression = expression.And(x => x.CreatedBy.Equals(HttpContext.User.Identity.Name));
            var posts = _postService.FindAndSort(expression, sortBuilder, paging);

            if (posts.IsAny())
            {
                var pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, i => Url.Action("PostManagement", "Account", new { page = i }));
                ViewBag.PageInfo  = pageInfo;
                ViewBag.CountItem = pageInfo.TotalItems;
            }
            return(View(posts));
        }
Beispiel #6
0
        public ActionResult PostHomeNew(int page, string id)
        {
            var expression = PredicateBuilder.True <Post>();

            expression = expression.And(x => x.Status == (int)Status.Enable);
            expression = expression.And(x => x.VirtualCategoryId.Contains(id));
            expression = expression.And(x => x.ProductHot);
            var sortBuilder = new SortBuilder
            {
                ColumnName  = "UpdatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = 4,
                TotalRecord = 0
            };
            var posts = _postService.FindAndSort(expression, sortBuilder, paging);

            if (!posts.IsAny())
            {
                return(Json(new { success = true, data = string.Empty }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                data = this.RenderRazorViewToString("_SlideProductHome",
                                                    from x in posts
                                                    orderby x.OrderDisplay descending
                                                    select x),
                success = true
            }, JsonRequestBehavior.AllowGet));
        }
Beispiel #7
0
        /// <summary>
        /// Get the names of all of the triggers in the given state that have
        /// misfired - according to the given timestamp.  No more than count will
        /// be returned.
        /// </summary>
        /// <param name="nextFireTime"></param>
        /// <param name="maxResults"></param>
        /// <param name="results"></param>
        /// <returns></returns>
        public bool HasMisfiredTriggers(DateTime nextFireTime, int maxResults, out List <TriggerKey> results)
        {
            var cursor = Collection.Find(
                trigger => trigger.Id.InstanceName == InstanceName &&
                trigger.MisfireInstruction != MisfireInstruction.IgnoreMisfirePolicy &&
                trigger.NextFireTime < nextFireTime &&
                trigger.State == Models.TriggerState.Waiting)
                         .Project(trigger => trigger.Id.GetTriggerKey())
                         .Sort(SortBuilder.Combine(
                                   SortBuilder.Ascending(trigger => trigger.NextFireTime),
                                   SortBuilder.Descending(trigger => trigger.Priority)
                                   )).ToCursor();

            results = new List <TriggerKey>();

            var hasReachedLimit = false;

            while (cursor.MoveNext() && !hasReachedLimit)
            {
                foreach (var triggerKey in cursor.Current)
                {
                    if (results.Count == maxResults)
                    {
                        hasReachedLimit = true;
                    }
                    else
                    {
                        results.Add(triggerKey);
                    }
                }
            }
            return(hasReachedLimit);
        }
Beispiel #8
0
        public async Task <ActionResult> Index(int page = 1, string keywords = "")
        {
            ViewBag.Keywords = keywords;
            var sortingPagingBuilder = new SortingPagingBuilder
            {
                Keywords = keywords
            };
            var sortBuilder = new SortBuilder
            {
                ColumnName  = "Name",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };

            sortingPagingBuilder.Sorts = sortBuilder;
            var sortingPagingBuilder1 = sortingPagingBuilder;
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = PageSize,
                TotalRecord = 0
            };
            var paging1 = paging;
            var roles   = await _roleService.PagedList(sortingPagingBuilder1, paging1);

            if (roles != null && roles.Any())
            {
                var pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging1.TotalRecord, i => Url.Action("Index", new { page = i, keywords }));
                ViewBag.PageInfo = pageInfo;
            }
            return(View(roles));
        }
Beispiel #9
0
        public ActionResult GetCustomerCareCategory(string virtualCategoryId, int page, string title)
        {
            SortBuilder sortBuilder = new SortBuilder()
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = base._pageSize,
                TotalRecord = 0
            };
            IEnumerable <News> news = this._newsService.FindAndSort((News x) => !x.Video && x.Status == 1 && x.VirtualCategoryId.Contains(virtualCategoryId), sortBuilder, paging);

            if (news.IsAny <News>())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, (int i) => base.Url.Action("GetContent", "Menu", new { page = i }));
                ((dynamic)base.ViewBag).PageInfo  = pageInfo;
                ((dynamic)base.ViewBag).CountItem = pageInfo.TotalItems;
            }
            ((dynamic)base.ViewBag).Title             = title;
            ((dynamic)base.ViewBag).virtualCategoryId = virtualCategoryId;
            return(base.PartialView(news));
        }
Beispiel #10
0
        public List <TriggerKey> GetTriggersToAcquire(DateTimeOffset noLaterThan, DateTimeOffset noEarlierThan,
                                                      int maxCount)
        {
            if (maxCount < 1)
            {
                maxCount = 1;
            }

            var noLaterThanDateTime   = noLaterThan.UtcDateTime;
            var noEarlierThanDateTime = noEarlierThan.UtcDateTime;

            return(Collection.Find(trigger => trigger.Id.InstanceName == InstanceName &&
                                   trigger.State == Models.TriggerState.Waiting &&
                                   trigger.NextFireTime <= noLaterThanDateTime &&
                                   (trigger.MisfireInstruction == -1 ||
                                    (trigger.MisfireInstruction != -1 &&
                                     trigger.NextFireTime >= noEarlierThanDateTime)))
                   .Sort(SortBuilder.Combine(
                             SortBuilder.Ascending(trigger => trigger.NextFireTime),
                             SortBuilder.Descending(trigger => trigger.Priority)
                             ))
                   .Limit(maxCount)
                   .Project(trigger => trigger.Id.GetTriggerKey())
                   .ToList());
        }
Beispiel #11
0
        public ActionResult GetCustomerCareCategory(string virtualCategoryId, int page, string title)
        {
            var sortBuilder = new SortBuilder
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = CommonHelper.PageSize,
                TotalRecord = 0
            };
            var news = _newsService.FindAndSort(x => !x.Video && x.Status == 1 && x.VirtualCategoryId.Contains(virtualCategoryId), sortBuilder, paging);

            if (news.IsAny())
            {
                var pageInfo = new Helper.PageInfo(CommonHelper.PageSize, page, paging.TotalRecord, i => Url.Action("GetContent", "Menu", new { page = i }));
                ViewBag.PageInfo  = pageInfo;
                ViewBag.CountItem = pageInfo.TotalItems;
            }

            ViewBag.Title             = title;
            ViewBag.virtualCategoryId = virtualCategoryId;

            return(PartialView(news));
        }
Beispiel #12
0
        public QueryBuilder <T> Sorting(Expression <Func <T, object> > sort, bool desc)
        {
            if (sort == null)
            {
                sort = x => x.Id;
            }

            if (Sort == null)
            {
                if (desc)
                {
                    Sort = SortBuilder.Descending(sort);
                }
                else
                {
                    Sort = SortBuilder.Ascending(sort);
                }
            }
            else
            {
                if (desc)
                {
                    Sort = Sort.Descending(sort);
                }
                else
                {
                    Sort = Sort.Ascending(sort);
                }
            }

            return(this);
        }
Beispiel #13
0
        public ActionResponse <IEnumerable <TEntity> > Find <TValue>(string fieldName, TValue value, MatchingStrategy strategy, int limit = 100)
        {
            FilterDefinition <TEntity> filter;

            switch (strategy)
            {
            case MatchingStrategy.LessThan:
                filter = FilterBuilder.Lt(fieldName, value);
                break;

            case MatchingStrategy.GreaterThan:
                filter = FilterBuilder.Gt(fieldName, value);
                break;

            default:
                filter = FilterBuilder.Eq(fieldName, value);
                break;
            }

            var hits = Collection.Find(filter).Sort(SortBuilder.Descending(fieldName)).Limit(limit);

            return(new ActionResponse <IEnumerable <TEntity> >
            {
                Code = AppStatusCode.Ok,
                Data = hits.ToList()
            });
        }
Beispiel #14
0
        public void AppendSort(string sort)
        {
            if (string.IsNullOrWhiteSpace(sort))
            {
                return;
            }

            SortBuilder.Add(sort);
        }
Beispiel #15
0
 public IEnumerable <T> Fetch <T, T1, T2, T3, T4>(
     string table,
     string fields,
     Func <T, T1, T2, T3, T4, T> func,
     ConditionBuilder condition,
     SortBuilder sort)
 {
     return(ToDo(conn => conn.Fetch(table, fields, func, condition, sort)));
 }
Beispiel #16
0
 public T FirstOrDefault <T, T1, T2, T3, T4>(
     string table,
     string fields,
     Func <T, T1, T2, T3, T4, T> func,
     ConditionBuilder condition,
     SortBuilder sort) where T : BaseEntity <TPrimaryKey>
 {
     return(ToDo(conn => conn.FirstOrDefault <T, T1, T2, T3, T4, TPrimaryKey>(table, fields, func, condition, sort)));
 }
Beispiel #17
0
        public Task <Show> FindLastShow()
        {
            var sort = SortBuilder.Descending(x => x.ExternalId);

            return(this.Collection
                   .Find(x => true)
                   .Limit(1)
                   .Sort(sort)
                   .FirstOrDefaultAsync());
        }
        public TBuilder SortWith(
            Action <SortBuilder <TRequest, TEntity> > build)
        {
            var builder = new SortBuilder <TRequest, TEntity>();

            build(builder);

            Sorter = builder.Build();

            return((TBuilder)this);
        }
Beispiel #19
0
        public Task <List <Show> > FindShows(int offset, int limit)
        {
            var sort = SortBuilder.Ascending(x => x.ExternalId);

            return(this.Collection
                   .Find(x => true)
                   .Limit(limit)
                   .Skip(offset * limit)
                   .Sort(sort)
                   .ToListAsync());
        }
Beispiel #20
0
        /// <summary>
        /// Sugere uma tecnologia com base em uma palavra chave
        /// </summary>
        /// <param name="text">palavra chave</param>
        /// <returns></returns>
        public async Task <List <Techie> > SugestTechie(string text)
        {
            var filter = FilterBuilder.Regex(a => a.Name, BsonRegularExpression.Create(new Regex(text, RegexOptions.IgnoreCase)))
                         & FilterBuilder.Exists(a => a.DeletedAt, false);
            var sort = SortBuilder.Ascending(a => a.Name);

            return(await Collection
                   .Find(filter)
                   .Sort(sort)
                   .Limit(5)
                   .ToListAsync());
        }
Beispiel #21
0
 public IEnumerable <T> PageList <T>(
     int pageIndex,
     int pageSize,
     ConditionBuilder condition,
     SortBuilder sort,
     out int total)
 {
     using (var conn = new SqlConnection(_connectionString))
     {
         return(conn.PageList <T>(condition, sort, pageIndex, pageSize, out total));
     }
 }
        public async Task <List <Publication> > ListPublications()
        {
            var filter     = FilterBuilder.Exists(a => a.DeletedAt, false);
            var sort       = SortBuilder.Descending(a => a.DateCreation);
            var projection = ProjectionBuilder.Slice(a => a.Comments, 0, 3);


            return(await Collection
                   .Find(filter)
                   .Sort(sort)
                   .Project <Publication>(projection)
                   .ToListAsync());
        }
Beispiel #23
0
        public static List <T> Fetch <T, T1, T2, T3, T4>(this SqlConnection conn,
                                                         string table,
                                                         string fields,
                                                         Func <T, T1, T2, T3, T4, T> func,
                                                         ConditionBuilder condition,
                                                         SortBuilder sort, SqlTransaction trans = null)
        {
            condition = condition ?? ConditionBuilder.New();
            sort      = sort ?? new SortBuilder();

            var sql = $"SELECT {fields} FROM [{table}] WHERE {condition.ToCondition()} ORDER BY {sort.ToOrderBy()}";

            return(conn.Query(sql, func, condition.ToParameters(), trans).ToList());
        }
Beispiel #24
0
 public IEnumerable <T> PageList <T, T1, T2, T3, T4>(
     int pageIndex,
     int pageSize,
     string table,
     string fields,
     Func <T, T1, T2, T3, T4, T> func,
     ConditionBuilder condition,
     SortBuilder sort,
     out int total)
 {
     using (var conn = new SqlConnection(_connectionString))
     {
         return(conn.PageList(table, fields, func, condition, sort, pageIndex, pageSize, out total));
     }
 }
        /// <summary>
        /// Lista todas as publicações
        /// </summary>
        /// <returns>Lista de publicações</returns>
        public async Task <List <Publication> > ListPublications(int page)
        {
            var filter     = FilterBuilder.Exists(a => a.DeletedAt, false);
            var sort       = SortBuilder.Descending(a => a.DateCreation);
            var projection = ProjectionBuilder.Slice(a => a.Comments, 0, 3);


            return(await Collection
                   .Find(filter)
                   .Sort(sort)
                   .Skip((page - 1) * UtilBO.QUANTIDADE_PAGINAS)
                   .Limit(UtilBO.QUANTIDADE_PAGINAS)
                   .Project <Publication>(projection)
                   .ToListAsync());
        }
Beispiel #26
0
        public ActionResult SearchResult(string catUrl, string parameters, int page)
        {
            HttpCookie httpCookie = base.HttpContext.Request.Cookies.Get("system_search");

            if (!base.Request.Cookies.ExistsCokiee("system_search"))
            {
                return(base.View());
            }
            Expression <Func <Post, bool> > expression = PredicateBuilder.True <Post>();
            SortBuilder sortBuilder = new SortBuilder()
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = base._pageSize,
                TotalRecord = 0
            };
            SeachConditions seachCondition = JsonConvert.DeserializeObject <SeachConditions>(base.Server.UrlDecode(httpCookie.Value));

            expression = expression.And <Post>((Post x) => (int?)x.MenuId == seachCondition.CategoryId);
            MenuLink byId = this._menuLinkService.GetById(seachCondition.CategoryId.Value);

            ((dynamic)base.ViewBag).KeyWords    = byId.MetaKeywords;
            ((dynamic)base.ViewBag).SiteUrl     = base.Url.Action("GetContent", "Menu", new { catUrl = catUrl, parameters = parameters, page = page, area = "" });
            ((dynamic)base.ViewBag).Description = byId.MetaDescription;
            ((dynamic)base.ViewBag).Image       = base.Url.Content(string.Concat("~/", byId.ImageUrl));
            ((dynamic)base.ViewBag).VirtualId   = byId.CurrentVirtualId;
            string menuName = byId.MenuName;

            if (!string.IsNullOrEmpty(seachCondition.Keywords))
            {
                expression = expression.And <Post>((Post x) => x.Title.Contains(seachCondition.Keywords) || x.Description.Contains(seachCondition.Keywords));
            }
            IEnumerable <Post> posts = this._postService.FindAndSort(expression, sortBuilder, paging);

            ((dynamic)base.ViewBag).PageNumber = page;
            ((dynamic)base.ViewBag).Title      = menuName;
            if (posts.IsAny <Post>())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, (int i) => base.Url.Action("GetContent", "Menu", new { page = i }));
                ((dynamic)base.ViewBag).PageInfo  = pageInfo;
                ((dynamic)base.ViewBag).CountItem = pageInfo.TotalItems;
            }
            return(base.View("GetPostByCategory", posts));
        }
Beispiel #27
0
        public static T FirstOrDefault <T, TPrimaryKey>(
            this SqlConnection conn,
            string table,
            string fields,
            ConditionBuilder condition,
            SortBuilder sort,
            SqlTransaction trans = null)
            where T : IBaseEntity <TPrimaryKey>
        {
            condition = condition ?? ConditionBuilder.New();
            sort      = sort ?? new SortBuilder();

            var sql = SqlServerSqlBuilder.LoadByCondition(table, fields, condition.ToCondition(), sort.ToOrderBy());

            return(conn.QueryFirstOrDefault <T>(sql, condition.ToParameters()));
        }
Beispiel #28
0
        public List <EpisodeHistory> GetBySeason(int seriesId, int seasonNumber, EpisodeHistoryEventType?eventType)
        {
            SortBuilder <EpisodeHistory> query = Query
                                                 .Join <EpisodeHistory, Episode>(JoinType.Inner, h => h.Episode, (h, e) => h.EpisodeId == e.Id)
                                                 .Join <EpisodeHistory, Series>(JoinType.Inner, h => h.Series, (h, s) => h.SeriesId == s.Id)
                                                 .Where(h => h.SeriesId == seriesId)
                                                 .AndWhere(h => h.Episode.SeasonNumber == seasonNumber);

            if (eventType.HasValue)
            {
                query.AndWhere(h => h.EventType == eventType);
            }

            query.OrderByDescending(h => h.Date);

            return(query);
        }
        public virtual IQueryable <T> ApplySorts(IQueryable <T> query)
        {
            if (SortBuilder != null)
            {
                var orderBy = SortBuilder.Build();
                if (orderBy != null)
                {
                    var sortedQuery = orderBy(query);
                    if (sortedQuery != null)
                    {
                        query = sortedQuery;
                    }
                }
            }

            return(query);
        }
Beispiel #30
0
        public ActionResult SearchResult(string catUrl, string parameters, int page)
        {
            var httpCookie = HttpContext.Request.Cookies.Get("system_search");

            if (!Request.Cookies.ExistsCokiee("system_search"))
            {
                return(View());
            }

            var expression  = PredicateBuilder.True <Post>();
            var sortBuilder = new SortBuilder
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = PageSize,
                TotalRecord = 0
            };

            var seachCondition = JsonConvert.DeserializeObject <SeachConditions>(Server.UrlDecode(httpCookie.Value));

            if (!string.IsNullOrEmpty(seachCondition.Keywords))
            {
                expression = expression.And(x =>
                                            x.SeoUrl.Contains(seachCondition.Keywords) || x.Title.Contains(seachCondition.Keywords) ||
                                            x.Description.Contains(seachCondition.Keywords));
            }

            var posts = _postService.FindAndSort(expression, sortBuilder, paging);

            if (posts.IsAny())
            {
                var pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord,
                                                   i => Url.Action("GetContent", "Menu", new { page = i }));
                ViewBag.PageInfo  = pageInfo;
                ViewBag.CountItem = pageInfo.TotalItems;
            }

            ViewBag.PageNumber = page;
            ViewBag.Title      = "Tìm kiếm";

            return(View(posts));
        }