예제 #1
0
        public BaseResponse <GetGuitarListResponse, object> GetGuitar(GetGuitarFiltersRequest request)
        {
            var method   = HttpMethod.Get;
            var endpoint = $"guitars";

            return(this.RestClient.SendRequest <GetGuitarListResponse, object>(method, endpoint, query: request?.GetQuery()));
        }
        public GetGuitarListResponse GetAll(GetGuitarFiltersRequest filters)
        {
            var query = this.Guitars;

            if (!string.IsNullOrEmpty(filters.Model))
            {
                query = query.Where(g => !string.IsNullOrWhiteSpace(g.Model) &&
                                    g.Model.ToLower().Contains(filters.Model?.ToLower()));
            }

            if (!string.IsNullOrEmpty(filters.Color))
            {
                query = query.Where(g => !string.IsNullOrWhiteSpace(g.Color) &&
                                    g.Color.ToLower().Contains(filters.Color?.ToLower()));
            }

            int totalItems = query?.ToList()?.Count() ?? 0;

            int countToSkip = ((filters.Page - 1) * filters.Size);

            query = query.Skip(countToSkip).Take(filters.Size);

            var guitars = HydrateGetGuitarListResponse(query);

            return(new GetGuitarListResponse(guitars, filters.Page, filters.Size, totalItems));
        }
예제 #3
0
 public IActionResult Get([FromQuery] GetGuitarFiltersRequest request)
 {
     return(Ok(_service.GetAll(request)));
 }