public async Task <GetWidgetsResponseDto> GetWidgetsAsync(GetWidgetsRequestDto request, CancellationToken cancellationToken) { IEnumerable <WidgetDto> widgets; if (request.Query == null) { lock (m_lock) widgets = m_widgets.Values.ToList(); } else if (request.Query.Length == 0) { widgets = new WidgetDto[0]; } else { lock (m_lock) widgets = m_widgets.Values.Where(x => x.Name.Contains(request.Query)).ToList(); } if (request.MinPrice != null) { widgets = m_widgets.Values.Where(x => x.Price >= request.MinPrice); } int total = widgets.Count(); Func <WidgetDto, string> keySelector; if (request.Sort == WidgetField.Name) { keySelector = x => x.Name; } else { keySelector = x => x.Id; } widgets = request.Desc.GetValueOrDefault() ? widgets.OrderByDescending(keySelector) : widgets.OrderBy(keySelector); if (request.Limit != null) { widgets = widgets.Take(Math.Max(0, request.Limit ?? 10)); } return(new GetWidgetsResponseDto { Widgets = widgets.ToList(), Total = total }); }
public Task <ServiceResult <GetWidgetsResponseDto> > GetWidgetsAsync(GetWidgetsRequestDto request, CancellationToken cancellationToken = default) => TrySendRequestAsync(ConformanceApiHttpMapping.GetWidgetsMapping, request, cancellationToken);
/// <summary> /// Gets widgets. /// </summary> public Task <ServiceResult <GetWidgetsResponseDto> > GetWidgetsAsync(GetWidgetsRequestDto request, CancellationToken cancellationToken) { return(TrySendRequestAsync(ExampleApiHttpMapping.GetWidgetsMapping, request, cancellationToken)); }
/// <inheritdoc /> public Task <ServiceResult <GetWidgetsResponseDto> > GetWidgetsAsync(GetWidgetsRequestDto request, CancellationToken cancellationToken = default) => Task.FromResult(Execute <GetWidgetsResponseDto>(request));