public HomeAnnounceWithPhotoAndUserSpecification(HomeAnnounceParams queryParams) : base(x => ( string.IsNullOrEmpty(queryParams.Search) || x.Header.ToLower().Contains(queryParams.Search) || x.Description.ToLower().Contains(queryParams.Search) || x.User.FirstName.ToLower().Contains(queryParams.Search) || x.User.LastName.ToLower().Contains(queryParams.Search) ) && (!queryParams.ScreenId.HasValue || x.HomeAnnounceSubScreens.Any(y => y.ScreenId == queryParams.ScreenId)) && (!queryParams.SubScreenId.HasValue || x.HomeAnnounceSubScreens.Any(y => y.SubScreenId == queryParams.SubScreenId)) && (!queryParams.Reject.HasValue || x.Reject == queryParams.Reject) && (!queryParams.IsNew.HasValue || x.IsNew == queryParams.IsNew) && (!queryParams.IsPublish.HasValue || x.IsPublish == queryParams.IsPublish) ) { AddInclude(x => x.User); AddInclude(x => x.User.Department); AddInclude(x => x.User.Campus); AddInclude(x => x.User.Degree); AddInclude(x => x.NumberOfRoom); AddInclude(x => x.Heatingtype); AddInclude(x => x.FlatOfHome); AddInclude(x => x.BuildingAge); AddInclude(x => x.HomeAnnouncePhotos); AddInclude(x => x.HomeAnnounceSubScreens); AddOrderByDscending(x => x.IsNew); ApplyPaging(queryParams.PageSize * (queryParams.PageIndex - 1), queryParams.PageSize); }
public HomeAnnounceByUserIdSpecification(HomeAnnounceParams queryParams, int userId) : base(x => x.UserId == userId) { AddInclude(x => x.User); AddInclude(x => x.User.Department); AddInclude(x => x.User.Campus); AddInclude(x => x.User.Degree); AddInclude(x => x.NumberOfRoom); AddInclude(x => x.Heatingtype); AddInclude(x => x.BuildingAge); AddInclude(x => x.FlatOfHome); AddInclude(x => x.HomeAnnouncePhotos); AddOrderByDscending(x => x.Created); ApplyPaging(queryParams.PageSize * (queryParams.PageIndex - 1), queryParams.PageSize); }
public HomeAnnounceWithFilterForCountSpecification(HomeAnnounceParams queryParams) : base(x => ( string.IsNullOrEmpty(queryParams.Search) || x.Header.ToLower().Contains(queryParams.Search) || x.Description.ToLower().Contains(queryParams.Search) || x.User.FirstName.ToLower().Contains(queryParams.Search) || x.User.LastName.ToLower().Contains(queryParams.Search) ) && (!queryParams.ScreenId.HasValue || x.HomeAnnounceSubScreens.Any(y => y.ScreenId == queryParams.ScreenId)) && (!queryParams.SubScreenId.HasValue || x.HomeAnnounceSubScreens.Any(y => y.SubScreenId == queryParams.SubScreenId)) && (!queryParams.Reject.HasValue || x.Reject == queryParams.Reject) && (!queryParams.IsNew.HasValue || x.IsNew == queryParams.IsNew) && (!queryParams.IsPublish.HasValue || x.IsPublish == queryParams.IsPublish) ) { }
//[SecuredOperation("Sudo,HomeAnnounces.List,HomeAnnounces.All", Priority = 1)] public async Task <Pagination <HomeAnnounceForReturnDto> > GetListAsync(HomeAnnounceParams queryParams) { var spec = new HomeAnnounceWithPhotoAndUserSpecification(queryParams); var listFromRepo = await homeAnnounceDal.ListEntityWithSpecAsync(spec); var countSpec = new HomeAnnounceWithFilterForCountSpecification(queryParams); var totalItem = await homeAnnounceDal.CountAsync(countSpec); var data = mapper.Map <List <HomeAnnounce>, List <HomeAnnounceForReturnDto> >(listFromRepo); return(new Pagination <HomeAnnounceForReturnDto> ( queryParams.PageIndex, queryParams.PageSize, totalItem, data )); }
public async Task <Pagination <HomeAnnounceForUserDto> > GetHomeAnnounceByUserIdAsync(HomeAnnounceParams queryParams, int userId) { var claimId = int.Parse(httpContextAccessor.HttpContext.User?.Claims?.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value); if (claimId != userId) { throw new RestException(HttpStatusCode.BadRequest, new { AlreadyExist = Messages.OperationDenied }); } var userFromRepo = await userDal.GetAsync(x => x.Id == userId); if (userFromRepo == null) { throw new RestException(HttpStatusCode.BadRequest, new { AlreadyExist = Messages.UserNotFound }); } var spec = new HomeAnnounceByUserIdSpecification(queryParams, userId); var homeAnnounces = await homeAnnounceDal.ListEntityWithSpecAsync(spec); var countSpec = new HomeAnnounceByUserIdSpecification(userId); var totalItem = await homeAnnounceDal.CountAsync(countSpec); var data = mapper.Map <List <HomeAnnounce>, List <HomeAnnounceForUserDto> >(homeAnnounces); return(new Pagination <HomeAnnounceForUserDto> ( queryParams.PageIndex, queryParams.PageSize, totalItem, data )); }
public async Task <ActionResult <Pagination <HomeAnnounceForReturnDto> > > List([FromQuery] HomeAnnounceParams queryParams) { return(await homeAnnounceService.GetListAsync(queryParams)); }
public async Task <ActionResult <Pagination <HomeAnnounceForUserDto> > > HomeAnnounces([FromQuery] HomeAnnounceParams queryParams, int userId) { return(await publicAnnounceservice.GetHomeAnnounceByUserIdAsync(queryParams, userId)); }