public UIElement GetView(CommandResultDto commandResult, string result) { HttpResponseMessage response = null; if (commandResult.Status != null) { response = HttpResponseDeserializer.DecodeResponse(result); } using (var scope = _context.CreateChildContainer()) { var viewProviders = scope.Resolve <IEnumerable <ICommandResultViewProvider> >().OrderByDescending(x => x.Priority); var serviceProvider = scope.Resolve <IServiceProvider>(); foreach (var viewProvider in viewProviders) { try { var view = viewProvider.GetView(response, commandResult, serviceProvider); if (view != null) { return(view); } } catch (Exception e) { Logger.Error(e, "Error occurred on GetView() on {viewProviderType}", viewProvider.GetType().FullName); } } } return(null); }
public async Task DeserializeQueryResultWithErrors() { // arrange var qux = new OrderedDictionary { { "quux", 123 } }; var baz = new OrderedDictionary { { "qux", qux } }; var objectList = new List <object> { baz }; var scalarList = new List <object> { 123 }; var result = QueryResultBuilder.New(); var data = new OrderedDictionary(); data["foo"] = objectList; data["bar"] = scalarList; data["baz"] = baz; result.SetData(data); result.AddError(ErrorBuilder.New() .SetMessage("foo") .SetPath(Path.New("root").Append("child")) .AddLocation(new Location(15, 16)) .SetExtension("bar", "baz") .Build()); result.AddError(ErrorBuilder.New() .SetMessage("qux") .SetExtension("bar", "baz") .Build()); result.AddError(ErrorBuilder.New() .SetMessage("quux") .Build()); var stream = new MemoryStream(); var serializer = new JsonQueryResultSerializer(); await serializer.SerializeAsync(result.Create(), stream); byte[] buffer = stream.ToArray(); var serializedResult = Utf8GraphQLRequestParser.ParseJson(buffer); // act IReadOnlyQueryResult deserializedResult = HttpResponseDeserializer.Deserialize( (IReadOnlyDictionary <string, object>)serializedResult); // assert Snapshot.Match(deserializedResult); }
public async Task DeserializeQueryResultWithErrors() { // arrange var qux = new OrderedDictionary { { "quux", 123 } }; var baz = new OrderedDictionary { { "qux", qux } }; var objectList = new List <object> { baz }; var scalarList = new List <object> { 123 }; var result = new QueryResult(); result.Data["foo"] = objectList; result.Data["bar"] = scalarList; result.Data["baz"] = baz; result.Errors.Add(ErrorBuilder.New() .SetMessage("foo") .SetPath(Path.New("root").Append("child")) .AddLocation(new Location(15, 16)) .SetExtension("bar", "baz") .Build()); result.Errors.Add(ErrorBuilder.New() .SetMessage("qux") .SetExtension("bar", "baz") .Build()); result.Errors.Add(ErrorBuilder.New() .SetMessage("quux") .Build()); var stream = new MemoryStream(); var serializer = new JsonQueryResultSerializer(); await serializer.SerializeAsync(result, stream); byte[] buffer = stream.ToArray(); string json = Encoding.UTF8.GetString(buffer, 0, buffer.Length); var serializedResult = JsonConvert.DeserializeObject <JObject>(json); // act IReadOnlyQueryResult deserializedResult = HttpResponseDeserializer.Deserialize(serializedResult); // assert Snapshot.Match(deserializedResult); }
public async Task DeserializeQueryResultWithExtensions() { // arrange var qux = new OrderedDictionary { { "quux", 123 } }; var baz = new OrderedDictionary { { "qux", qux } }; var objectList = new List <object> { baz }; var scalarList = new List <object> { 123 }; var result = QueryResultBuilder.New(); var data = new OrderedDictionary(); data["foo"] = objectList; data["bar"] = scalarList; data["baz"] = baz; result.SetData(data); var extensionData = new ExtensionData(); extensionData["foo"] = objectList; extensionData["bar"] = scalarList; extensionData["baz"] = baz; result.SetExtensions(extensionData); var stream = new MemoryStream(); var serializer = new JsonQueryResultSerializer(); await serializer.SerializeAsync(result.Create(), stream); byte[] buffer = stream.ToArray(); var serializedResult = Utf8GraphQLRequestParser.ParseJson(buffer); // act IReadOnlyQueryResult deserializedResult = HttpResponseDeserializer.Deserialize( (IReadOnlyDictionary <string, object>)serializedResult); // assert deserializedResult.MatchSnapshot(m => m.Ignore(c => c.Field <JObject>("Extensions"))); deserializedResult.Extensions.OrderBy(t => t.Key) .MatchSnapshot(new SnapshotNameExtension("extensions")); }
public async Task DeserializeQueryResultOnlyErrors() { // arrange var qux = new OrderedDictionary { { "quux", 123 } }; var baz = new OrderedDictionary { { "qux", qux } }; var objectList = new List <object> { baz }; var scalarList = new List <object> { 123 }; var result = new QueryResult(); result.Errors.Add(new QueryError( "foo", Path.New("root").Append("child"), new List <Location> { new Location(15, 16) }, new ErrorProperty("bar", "baz"))); result.Errors.Add(new QueryError( "qux", new ErrorProperty("bar", "baz"))); result.Errors.Add(new QueryError("quux")); var stream = new MemoryStream(); var serializer = new JsonQueryResultSerializer(); await serializer.SerializeAsync(result, stream); byte[] buffer = stream.ToArray(); string json = Encoding.UTF8.GetString(buffer, 0, buffer.Length); var serializedResult = JsonConvert.DeserializeObject <JObject>(json); // act IReadOnlyQueryResult deserializedResult = HttpResponseDeserializer.Deserialize(serializedResult); // assert Snapshot.Match(deserializedResult); }
public async Task DeserializeQueryResultWithExtensions() { // arrange var qux = new OrderedDictionary { { "quux", 123 } }; var baz = new OrderedDictionary { { "qux", qux } }; var objectList = new List <object> { baz }; var scalarList = new List <object> { 123 }; var result = new QueryResult(); result.Data["foo"] = objectList; result.Data["bar"] = scalarList; result.Data["baz"] = baz; result.Extensions["foo"] = objectList; result.Extensions["bar"] = scalarList; result.Extensions["baz"] = baz; var stream = new MemoryStream(); var serializer = new JsonQueryResultSerializer(); await serializer.SerializeAsync(result, stream); byte[] buffer = stream.ToArray(); string json = Encoding.UTF8.GetString(buffer, 0, buffer.Length); var serializedResult = JsonConvert.DeserializeObject <JObject>(json); // act IReadOnlyQueryResult deserializedResult = HttpResponseDeserializer.Deserialize(serializedResult); // assert Snapshot.Match(deserializedResult); }
public async Task DeserializeQueryResultWithExtensions() { // arrange var qux = new OrderedDictionary { { "quux", 123 } }; var baz = new OrderedDictionary { { "qux", qux } }; var objectList = new List <object> { baz }; var scalarList = new List <object> { 123 }; var result = new QueryResult(); result.Data["foo"] = objectList; result.Data["bar"] = scalarList; result.Data["baz"] = baz; result.Extensions["foo"] = objectList; result.Extensions["bar"] = scalarList; result.Extensions["baz"] = baz; var stream = new MemoryStream(); var serializer = new JsonQueryResultSerializer(); await serializer.SerializeAsync(result, stream); byte[] buffer = stream.ToArray(); var serializedResult = Utf8GraphQLRequestParser.ParseJson(buffer); // act IReadOnlyQueryResult deserializedResult = HttpResponseDeserializer.Deserialize( (IReadOnlyDictionary <string, object>)serializedResult); // assert Snapshot.Match(deserializedResult); }
public async Task DeserializeQueryResult(object value, string type) { // arrange var qux = new OrderedDictionary { { "quux", value } }; var baz = new OrderedDictionary { { "qux", qux } }; var objectList = new List <object> { baz }; var scalarList = new List <object> { value }; var result = QueryResultBuilder.New(); var data = new OrderedDictionary(); data["foo"] = objectList; data["bar"] = scalarList; data["baz"] = baz; result.SetData(data); var stream = new MemoryStream(); var serializer = new JsonQueryResultSerializer(); await serializer.SerializeAsync(result.Create(), stream); byte[] buffer = stream.ToArray(); var serializedResult = Utf8GraphQLRequestParser.ParseJson(buffer); // act IReadOnlyQueryResult deserializedResult = HttpResponseDeserializer.Deserialize( (IReadOnlyDictionary <string, object>)serializedResult); // assert Snapshot.Match(deserializedResult, "DeserializeQueryResult_" + type); }