Esempio n. 1
0
        public dynamic filterBonusByBox(BonusFilter bonusFilter)
        {
            var data = from user in context.Users

                       join file in context.Files
                       on user.usid equals file.usid
                       join dis in context.Bonus
                       on file.fileid equals dis.fileid
                       where file.cbid == bonusFilter.cbid
                       select new
            {
                user.madv,
                file.fileid,
                file.hotendangdung,
                file.avatar,
                file.ngayvaodangct,
                dis.daycreate,
                dis.noidung
            };

            if (bonusFilter.filter == null)
            {
                bonusFilter.filter = "";
            }
            var filterby = bonusFilter.filter.Trim().ToLowerInvariant();

            return(data.AsQueryable()
                   .Where(n =>
                          n.madv.ToLowerInvariant().Contains(filterby) ||
                          n.hotendangdung.ToLowerInvariant().Contains(filterby) ||
                          n.noidung.ToLowerInvariant().Contains(filterby)));
        }
Esempio n. 2
0
        public dynamic getBonusByCbid(BonusFilter bonusFilter)
        {
            DateTime startday = DateTime.ParseExact(bonusFilter.startday, "dd/MM/yyyy", CultureInfo.InvariantCulture);
            DateTime endday   = DateTime.ParseExact(bonusFilter.endday, "dd/MM/yyyy", CultureInfo.InvariantCulture);

            var data = from user in context.Users
                       join file in context.Files
                       on user.usid equals file.usid
                       join bonus in context.Bonus
                       on file.fileid equals bonus.fileid
                       where bonus.daycreate >= startday && bonus.daycreate <= endday &&
                       file.cbid == bonusFilter.cbid
                       select new
            {
                user.madv,
                file.hotendangdung,
                file.ngaythangnamsinh,
                file.avatar,
                file.ngayvaodangct,
                bonus.daycreate,
                bonus.noidung,
                bonus.bnid,
                bonus.accept
            };

            return(data);
        }
Esempio n. 3
0
        public async Task <IEnumerable <Bonus> > GetBonusesAsync(BonusFilter bonusFilter, CancellationToken cancellationToken)
        {
            FilterDefinition <Bonus> filter =
                Builders <Bonus> .Filter.Eq(new ExpressionFieldDefinition <Bonus, bool>(x => x.IsDeleted), false);

            List <SortDefinition <Bonus> > sortBy = new List <SortDefinition <Bonus> >();

            if (bonusFilter?.IsActive != null)
            {
                filter &= Builders <Bonus> .Filter.Eq(new ExpressionFieldDefinition <Bonus, bool>(x => x.IsActive),
                                                      (bool)bonusFilter?.IsActive);
            }

            if (!String.IsNullOrEmpty(bonusFilter?.Title))
            {
                filter &= Builders <Bonus> .Filter.Regex(new ExpressionFieldDefinition <Bonus, string>(x => x.Title), new BsonRegularExpression(bonusFilter?.Title));
            }

            if (!String.IsNullOrEmpty(bonusFilter?.Type))
            {
                filter &= Builders <Bonus> .Filter.Eq(x => x.Type, bonusFilter.Type);
            }

            if (!String.IsNullOrEmpty(bonusFilter?.City))
            {
                filter &= Builders <Bonus> .Filter.ElemMatch(x => x.Locations, y => y.City == bonusFilter.City);
            }

            if (bonusFilter?.CompanyId != null & bonusFilter?.CompanyId != Guid.Empty)
            {
                filter &= Builders <Bonus> .Filter.Eq(x => x.CompanyId, bonusFilter.CompanyId);
            }

            if (bonusFilter?.Tags != null && bonusFilter?.Tags.Count > 0)
            {
                filter &= Builders <Bonus> .Filter.AnyIn(b => b.Tags, bonusFilter?.Tags);
            }

            if (bonusFilter?.DateStart != null && bonusFilter?.DateStart != DateTime.MinValue)
            {
                filter &= Builders <Bonus> .Filter.Gte(x => x.DateStart, bonusFilter?.DateStart) |
                          Builders <Bonus> .Filter.Gte(x => x.DateEnd, bonusFilter?.DateStart);
            }

            if (bonusFilter?.DateEnd != null && bonusFilter?.DateEnd != DateTime.MinValue)
            {
                filter &= Builders <Bonus> .Filter.Lte(x => x.DateStart, bonusFilter?.DateEnd) |
                          Builders <Bonus> .Filter.Lte(x => x.DateEnd, bonusFilter?.DateEnd);
            }

            if ((bonusFilter?.LastCount ?? 0) != 0)
            {
                sortBy.Add(Builders <Bonus> .Sort.Descending("CreatedDate"));
            }
            sortBy.Add(Builders <Bonus> .Sort.Ascending(bonusFilter?.SortBy ?? "Title"));

            return(await GetCollection().Find(filter).Sort(Builders <Bonus> .Sort.Combine(sortBy)).Limit(bonusFilter?.LastCount ?? 0).ToListAsync(cancellationToken));
        }
Esempio n. 4
0
        public async Task <List <BonusDto> > FindBonusesAsync(BonusFilter bonusFilter, CancellationToken cancellationToken)
        {
            var sortBy = bonusFilter?.SortBy ?? "Title";

            if (sortBy != null & typeof(Bonus).GetProperty(sortBy) == null)
            {
                throw new ArgumentException(Resources.PropertyDoesNotExist);
            }

            var result = await _bonusRepository.GetBonusesAsync(bonusFilter, cancellationToken);

            return(_mapper.Map <List <BonusDto> >(result));
        }
        public DataRespond filteBonusByBox(BonusFilter bonusFilter)
        {
            DataRespond data = new DataRespond();

            try
            {
                data.success = true;
                data.data    = m_adBonusResponsitory.filterBonusByBox(bonusFilter);
                data.message = "filter success";
            }
            catch (Exception e)
            {
                data.message = e.Message;
                data.error   = e;
                data.success = false;
            }
            return(data);
        }
 public async Task <ActionResult <ResultDto <IEnumerable <BonusDto> > > > FindBonusesAsync([FromQuery] BonusFilter bonusFilter)
 {
     return(Ok(await _BonusService.FindBonusesAsync(bonusFilter)));
 }
 public async Task <ActionResult <ResultDto <IEnumerable <BonusDto> > > > GetBonusStatisticAsync([FromQuery] BonusFilter bonusFilter)
 {
     return(Ok(await _BonusService.GetBonusStatisticAsync(bonusFilter)));
 }
Esempio n. 8
0
        private (FilterDefinition <Bonus>, SortDefinition <Bonus>) GetBonusFilterCombined(BonusFilter bonusFilter)
        {
            FilterDefinition <Bonus> filter =
                Builders <Bonus> .Filter.Eq(new ExpressionFieldDefinition <Bonus, bool>(x => x.IsDeleted), false);

            if (bonusFilter?.IsActive != null)
            {
                filter &= Builders <Bonus> .Filter.Eq(new ExpressionFieldDefinition <Bonus, bool>(x => x.IsActive),
                                                      (bool)bonusFilter?.IsActive);
            }

            if (!String.IsNullOrEmpty(bonusFilter?.Title))
            {
                filter &= Builders <Bonus> .Filter.Regex(new ExpressionFieldDefinition <Bonus, string>(x => x.Title), new BsonRegularExpression(bonusFilter?.Title));
            }

            if (!String.IsNullOrEmpty(bonusFilter?.Type))
            {
                filter &= Builders <Bonus> .Filter.Eq(x => x.Type, bonusFilter.Type);
            }

            if (!String.IsNullOrEmpty(bonusFilter?.City))
            {
                filter &= Builders <Bonus> .Filter.ElemMatch(x => x.Locations, y => y.City == bonusFilter.City);
            }

            if (bonusFilter?.CompanyId != null & bonusFilter?.CompanyId != Guid.Empty)
            {
                filter &= Builders <Bonus> .Filter.Eq(x => x.CompanyId, bonusFilter.CompanyId);
            }

            if (bonusFilter?.Tags != null && bonusFilter?.Tags.Count > 0)
            {
                filter &= Builders <Bonus> .Filter.AnyIn(b => b.Tags, bonusFilter?.Tags);
            }

            if (bonusFilter?.DateStart != null && bonusFilter?.DateStart != DateTime.MinValue)
            {
                filter &= Builders <Bonus> .Filter.Gte(x => x.DateStart, bonusFilter?.DateStart) |
                          Builders <Bonus> .Filter.Gte(x => x.DateEnd, bonusFilter?.DateStart);
            }

            if (bonusFilter?.DateEnd != null && bonusFilter?.DateEnd != DateTime.MinValue)
            {
                filter &= Builders <Bonus> .Filter.Lte(x => x.DateStart, bonusFilter?.DateEnd) |
                          Builders <Bonus> .Filter.Lte(x => x.DateEnd, bonusFilter?.DateEnd);
            }

            var sortBy = Builders <Bonus> .Sort.Ascending(bonusFilter?.SortBy);

            if ((bonusFilter?.LastCount ?? 0) != 0)
            {
                sortBy = Builders <Bonus> .Sort.Descending(new ExpressionFieldDefinition <Bonus, DateTime>(x => x.CreatedDate));
            }

            return(filter, sortBy);
        }
Esempio n. 9
0
        public async Task <IEnumerable <Bonus> > GetBonusStatisticAsync(BonusFilter bonusFilter, CancellationToken cancellationToken)
        {
            var(filter, sortingField) = GetBonusFilterCombined(bonusFilter);

            return(await GetCollection().Find(filter).Sort(sortingField).Limit(bonusFilter?.LastCount ?? 0).ToListAsync(cancellationToken));
        }