Ejemplo n.º 1
0
        public async Task <IActionResult> GetAllProjectsAsync([FromQuery] GetProjectsFilters filters)
        {
            var userId = Guid.Parse(User.FindFirst(ClaimTypes.NameIdentifier)?.Value);
            var query  = new GetProjectsQuery(userId, filters);
            var result = await _mediator.Send(query);

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

            var projectsResource = _mapper.Map <IEnumerable <Project>, IEnumerable <ProjectResource> >(result.Projects);

            return(Ok(projectsResource));
        }
        public async Task <IEnumerable <Project> > ListAsync(Guid userId, GetProjectsFilters filters = null)
        {
            ConfigDbSet();
            var filter = new List <FilterDefinition <Project> >();

            if (filters.Ids != null && filters.Ids.Length > 0)
            {
                var ids = filters.Ids.Select(id => Guid.Parse(id));
                filter.Add(Builders <Project> .Filter.In(p => p.Id, ids));
            }

            filter.Add(Builders <Project> .Filter.Eq(p => p.UserId, userId));

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

            var list = DbSet.Find(rootFilter).SortBy(p => p.CreatedAt);

            return(await list.ToListAsync());
        }
Ejemplo n.º 3
0
        public async Task <ProjectsResponse> GetProjectsAsync(Guid userId, GetProjectsFilters filters = null)
        {
            var isUserExist = await _authRepository.UserExists(userId);

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

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

                return(new ProjectsResponse(result));
            }
            catch (Exception ex)
            {
                // Do some logging stuff
                return(new ProjectsResponse($"An error occurred when getting list of notes: {ex.Message}"));
            }
        }
Ejemplo n.º 4
0
 public GetProjectsQuery(Guid userId, GetProjectsFilters filters)
 {
     UserId = userId;
     Filter = filters;
 }