public async Task <PagedList <NotificationBaseViewModel> > GetAsync([FromQuery] NotificationPagedListRequest request, CancellationToken cancellationToken) { var phoneNumber = User.FindFirst(ClaimTypes.NameIdentifier).Value; request.PhoneNumber = phoneNumber; return(await this.mediator.Send(request, cancellationToken)); }
public async Task <PagedList <NotificationBaseViewModel> > Handle(NotificationPagedListRequest request, CancellationToken cancellationToken) { var list = await this.db.Notifications .Include(x => x.User) .Select(x => new NotificationBaseViewModel(x)).ToListAsync(); var viewModelProperties = this.GetAllPropertyNameOfViewModel(); var sortPropertyName = !string.IsNullOrEmpty(request.SortName) ? request.SortName.ToLower() : string.Empty; var matchedPropertyName = viewModelProperties.FirstOrDefault(x => x == sortPropertyName); if (string.IsNullOrEmpty(matchedPropertyName)) { matchedPropertyName = "CreatedOn"; } var viewModelType = typeof(NotificationBaseViewModel); var sortProperty = viewModelType.GetProperty(matchedPropertyName); list = request.IsDesc ? list.OrderByDescending(x => sortProperty.GetValue(x, null)).ToList() : list.OrderBy(x => sortProperty.GetValue(x, null)).ToList(); return(new PagedList <NotificationBaseViewModel>(list, request.Offset ?? CommonConstants.Config.DEFAULT_SKIP, request.Limit ?? CommonConstants.Config.DEFAULT_TAKE)); }
public async Task <PagedList <NotificationBaseViewModel> > GetAll([FromQuery] NotificationPagedListRequest request, CancellationToken cancellationToken) { return(await this.mediator.Send(request, cancellationToken)); }