public async Task <Result <SpotsGetResponse> > ReadSpots(SpotsGetRequest request) { var validate = await request.ValidateAsync(); if (!validate.IsValid) { var error = validate.Errors.FirstOrDefault(); return(Error <SpotsGetResponse>(error.ToMetaError())); } List <Spot> spots; try { spots = await _repository.Read(request.Status.ToStatusEnum(), request.Offset, request.Limit); } catch { return(Error <SpotsGetResponse>(Errors.SpotsReadingFromDatabaseError)); } if (spots?.Count == 0) { return(Error <SpotsGetResponse>(Errors.SpotsNotFoundError)); } return(Success(spots.ToSpotsGetResponse(request.Offset, request.Limit))); }
public static async Task <ValidationResult> ValidateAsync(this SpotsGetRequest request) { var validator = new SpotsGetRequestValidator(); return(await validator.ValidateAsync(request)); }
public async Task <IActionResult> GetPaging([FromQuery] SpotsGetRequest request) { var result = await _service.ReadSpots(request); return(HttpHelper.Convert(result)); }