public async Task <IActionResult> GetProfiles([FromQuery] GetProfiles.Query query) { if (query.Limit < Configurations.MinLimit || query.Limit > Configurations.MaxLimit) { return(await Error(HttpStatusCode.BadRequest, "limit", "Invalid limit parameter")); } if (query.Page <= 0) { return(await Error(HttpStatusCode.BadRequest, "page", "Invalid request parameters")); } var profileDto = await _mediator.Send(query); var rootObject = new ProfilesRootObject() { Profiles = profileDto }; var json = JsonFieldsSerializer.Serialize(rootObject, query.Fields); return(new RawJsonActionResult(json)); }
public async Task <IActionResult> GetProfileById(int id, string fields = "") { if (id <= 0) { return(await Error(HttpStatusCode.BadRequest, "id", "invalid profile id")); } var profileDto = await _mediator.Send(new GetProfileById.Query { Id = id, Fields = fields }); if (profileDto == null) { return(await Error(HttpStatusCode.NotFound, "profile", "not found")); } var rootObject = new ProfilesRootObject(); rootObject.Profiles.Add(profileDto); var json = JsonFieldsSerializer.Serialize(rootObject, fields); return(new RawJsonActionResult(json)); }