private static string FormatQueryFilter(ClientQueryRequest request, ref DynamicParameters queryArgs) { var filter = string.Empty; if (request.Id != null) { queryArgs.Add("Id", request.Id); filter += filter.Length > 0 ? "AND Id = @Id " : "WHERE Id = @Id "; } if (!string.IsNullOrWhiteSpace(request.Username)) { queryArgs.Add("Username", request.Username); filter += filter.Length > 0 ? "AND Username = @Username " : "WHERE Username = @Username"; } if (request.Role.HasValue) { var role = (int)request.Role; queryArgs.Add("Role", role); filter += filter.Length > 0 ? "AND Role = @Role " : "WHERE Role = @Role"; } return(filter); }
public static async Task <ClientQueryResult> PostAsync( this TestServer testServer, ClientQueryRequest request, string path = "/graphql", bool enableApolloTracing = false, bool includeQueryPlan = false) { HttpResponseMessage response = await SendPostRequestAsync( testServer, JsonConvert.SerializeObject(request), path, enableApolloTracing, includeQueryPlan); if (response.StatusCode == HttpStatusCode.NotFound) { return(new ClientQueryResult { StatusCode = HttpStatusCode.NotFound }); } var json = await response.Content.ReadAsStringAsync(); ClientQueryResult result = JsonConvert.DeserializeObject <ClientQueryResult>(json); result.StatusCode = response.StatusCode; result.ContentType = response.Content.Headers.ContentType !.ToString(); return(result); }
public async Task <ClientViewModel> GetFilteredItemAsync(ClientQueryRequest request) { var queryArgs = new DynamicParameters(); var query = $@"SELECT Id, FirstName, LastName, Cpf, Email, IsActive FROM [Client] {FormatQueryFilter(request, ref queryArgs)} ORDER BY FirstName"; return((await _sqlConnection.QueryAsync <ClientViewModel>(query, queryArgs)).FirstOrDefault()); }
public static async Task <IReadOnlyList <ClientQueryResult> > PostOperationAsync( this TestServer testServer, ClientQueryRequest request, string operationNames, string path = "/graphql", Func <string, string> createOperationParameter = null) { createOperationParameter ??= s => "batchOperations=[" + s + "]"; HttpResponseMessage response = await SendPostRequestAsync( testServer, JsonConvert.SerializeObject(request), path + "?" + createOperationParameter(operationNames)); if (response.StatusCode == HttpStatusCode.NotFound) { return(new[] { new ClientQueryResult { StatusCode = HttpStatusCode.NotFound } }); } var json = await response.Content.ReadAsStringAsync(); try { List <ClientQueryResult> result = JsonConvert.DeserializeObject <List <ClientQueryResult> >(json); foreach (ClientQueryResult item in result) { item.StatusCode = response.StatusCode; item.ContentType = response.Content.Headers.ContentType.ToString(); } return(result); } catch { ClientQueryResult result = JsonConvert.DeserializeObject <ClientQueryResult>(json); result.StatusCode = response.StatusCode; result.ContentType = response.Content.Headers.ContentType.ToString(); return(new[] { result }); } }
public static async Task <ClientRawResult> PostRawAsync( this TestServer testServer, ClientQueryRequest request, string path = "/graphql") { HttpResponseMessage response = await SendPostRequestAsync( testServer, JsonConvert.SerializeObject(request), path); if (response.StatusCode == HttpStatusCode.NotFound) { return(new ClientRawResult { StatusCode = HttpStatusCode.NotFound }); } return(new ClientRawResult { StatusCode = response.StatusCode, ContentType = response.Content.Headers.ContentType !.ToString(), Content = await response.Content.ReadAsStringAsync() });