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));
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
 public async Task <ServerResponse <List <NoteResponse> > > GetNotesAsync(NoteFilterRequest noteFilterRequest)
 {
     return(await _noteService.GetNotesAsync(AccountId, noteFilterRequest));
 }
Beispiel #6
0
        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());
            }));
        }
Beispiel #7
0
        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());
            }));
        }