public void GetNotesAsyncTest_FiltersTagIdsFieldEqualsToNotesTagsIds_WorkProperly() { noteFilterRequest = new NoteFilterRequest(); (noteFilterRequest.TagIds as List <long>)?.AddRange(new long[] { 1, 2, 3 }); Assert.That(_noteService.GetNotesAsync(1, noteFilterRequest).Result.Result.Count, Is.EqualTo(3)); }
public void GetNotesAsyncTest_FiltersSearchFieldEqualsToNotesName_WorkProperly() { noteFilterRequest = new NoteFilterRequest() { Search = "note_name1" }; Assert.That(_noteService.GetNotesAsync(1, noteFilterRequest).Result.Result.Count, Is.EqualTo(1)); }
public void GetNotesAsyncTest_FiltersToDateFieldIsLaterThanNotesCreateDate_WorkProperly() { noteFilterRequest = new NoteFilterRequest() { ToDate = DateTime.Now.Date.AddDays(1) }; Assert.That(_noteService.GetNotesAsync(1, noteFilterRequest).Result.Result.Count, Is.EqualTo(3)); }
private IQueryable <Note> FilterNotes(IQueryable <Note> query, NoteFilterRequest noteFilterRequest) { if (noteFilterRequest.FromDate.HasValue) { query = query.Where(x => x.CreateDate >= noteFilterRequest.FromDate.Value); } if (noteFilterRequest.ToDate.HasValue) { query = query.Where(x => x.CreateDate <= noteFilterRequest.ToDate.Value); } if (!string.IsNullOrWhiteSpace(noteFilterRequest.Search)) { query = query.Where(x => x.Name.ToLower().Contains(noteFilterRequest.Search.ToLower())); } if (noteFilterRequest.TagIds.Any()) { query = query.Where(x => x.NoteTags.Any(tag => noteFilterRequest.TagIds.Any(t => t == tag.Tag.Id))); } return(query); }
public async Task <ServerResponse <List <NoteResponse> > > GetNotesAsync(NoteFilterRequest noteFilterRequest) { return(await _noteService.GetNotesAsync(AccountId, noteFilterRequest)); }
public async Task <AOResult <List <NoteResponse> > > GetNotesAsync(int accountId, NoteFilterRequest noteFilterRequest) { return(await BaseInvokeAsync(async() => { var query = _myHelperDbContext.Notes .Include(x => x.NoteTags) .ThenInclude(e => e.Tag) .Where(x => x.AppUserId == accountId) .AsQueryable(); query = FilterNotes(query, noteFilterRequest); query = FetchItems(query, noteFilterRequest); return AOBuilder.SetSuccess(await query.ToAsyncEnumerable().Select(x => _mapper.Map <Note, NoteResponse>(x)).ToList()); })); }
public async Task <ServerResponse <List <NoteResponse> > > GetNotesAsync(long accountId, NoteFilterRequest noteFilterRequest) { return(await BaseInvokeAsync(async() => { var query = DbContext.Notes .AsQueryable() .Include(x => x.NoteTags) .ThenInclude(e => e.Tag) .Where(x => x.AppUserId == accountId); query = FilterNotes(query, noteFilterRequest); query = query.OrderByDescending(x => x.Id); query = FetchItems(query, noteFilterRequest); return ServerResponseBuilder.Build(await query.ToAsyncEnumerable() .Select(x => Mapper.Map <Note, NoteResponse>(x)).ToListAsync()); })); }