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))); }
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); }
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)); }
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))); }
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); }
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)); }