public async Task <IActionResult> GetAllNotesAsync([FromQuery] GetNotesFilters filters)
        {
            var userId = Guid.Parse(User.FindFirst(ClaimTypes.NameIdentifier)?.Value);
            var query  = new GetNotesQuery(userId, filters);
            var result = await _mediator.Send(query);

            if (!result.Success)
            {
                return(BadRequest(new ErrorResource(result.Message)));
            }

            var notesResource = _mapper.Map <IEnumerable <Note>, IEnumerable <NoteResource> >(result.Notes);

            return(Ok(notesResource));
        }
示例#2
0
        public async Task <NotesResponse> GetNotesAsync(Guid userId, GetNotesFilters filters = null)
        {
            var isUserExist = await _authRepository.UserExists(userId);

            if (!isUserExist)
            {
                return(new NotesResponse("Invalid user."));
            }

            try
            {
                var result = await _noteRepository.ListAsync(userId, filters);

                return(new NotesResponse(result));
            }
            catch (Exception ex)
            {
                // Do some logging stuff
                return(new NotesResponse($"An error occurred when getting list of notes: {ex.Message}"));
            }
        }
示例#3
0
        public async Task <IEnumerable <Note> > ListAsync(Guid userId, GetNotesFilters filters = null)
        {
            ConfigDbSet();
            var filter = new List <FilterDefinition <Note> >
            {
                Builders <Note> .Filter.Eq(n => n.UserId, userId)
            };

            if (!string.IsNullOrEmpty(filters?.Date))
            {
                var startDateFilter = DateTime.Parse(filters.Date);
                var endDateFilter   = startDateFilter.AddDays(1);

                filter.Add(Builders <Note> .Filter.Gte(n => n.Date, startDateFilter));
                filter.Add(Builders <Note> .Filter.Lte(n => n.Date, endDateFilter));
            }

            var rootFilter = Builders <Note> .Filter.And(filter);

            var result = DbSet.Find(rootFilter).SortByDescending(n => n.Date);

            return(await result.ToListAsync());
        }
 public GetNotesQuery(Guid userId, GetNotesFilters filters)
 {
     UserId = userId;
     Filter = filters;
 }