public async Task BeAbleToHandlePlainObjectsWithFinalizerAndJoin() { // { // hero { // id // name // renown // faction // } // } using var sp = new SimpleServiceProvider(); var queryContext = FieldContext.Empty; var result = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root => root.Add("hero", queryContext.Locations, q => ((IGraphQlObjectResult)q.ResolveQuery("heroFinalized")).ResolveComplex(sp).Add("id", queryContext.Locations).Add("name", queryContext.Locations).Add("renown", queryContext.Locations).Add("faction", queryContext.Locations).Build()) .Build(), logger); //var query = from q in new[] { new GraphQlRoot() }.AsQueryable() // let hero = HandwrittenSamples.Domain.Data.heroes.First() // join reputation in HandwrittenSamples.Domain.Data.heroReputation on hero.Id equals reputation.HeroId // select new Dictionary<string, object?> // { // { "id", hero.Id }, // { "name", hero.Name }, // { "renown", reputation.Renown }, // { "faction", reputation.Faction }, // }; var json = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions); var expected = "{\"hero\":{\"faction\":\"Guardians of the Galaxy\",\"name\":\"Starlord\",\"id\":\"GUARDIANS-1\",\"renown\":5}}"; Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected))); }
public async Task BeAbleToPassParameters() { // { // heroes { // id // name // location // oldLocation: location(date: "2008-05-02") // } // } using var sp = new SimpleServiceProvider(); var queryContext = FieldContext.Empty; var result = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root => root.Add("heroes", queryContext.Locations, q => ((IGraphQlObjectResult)q.ResolveQuery("heroes")).ResolveComplex(sp) .Add("id", queryContext.Locations) .Add("name", queryContext.Locations) .Add("location", queryContext.Locations) .Add("oldLocation", "location", queryContext.Locations, new BasicParameterResolver(new Dictionary <string, IGraphQlParameterInfo> { { "date", new NewtonsoftJsonParameterInfo("\"2008-05-02\"") } })) .Build()) .Build(), logger); var json = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions); var expected = "{\"heroes\":[{\"location\":\"Unknown (2019-04-22)\",\"oldLocation\":\"Unknown (2008-05-02)\",\"id\":\"GUARDIANS-1\",\"name\":\"Starlord\"},{\"location\":\"Unknown (2019-04-22)\",\"oldLocation\":\"Unknown (2008-05-02)\",\"id\":\"ASGUARD-3\",\"name\":\"Thor\"},{\"location\":\"Unknown (2019-04-22)\",\"oldLocation\":\"Unknown (2008-05-02)\",\"id\":\"AVENGERS-1\",\"name\":\"Captain America\"}]}"; Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected))); }
public async Task BeAbleToUseTasksToAccessFields() { // { // heroes { // id // name // friends { // id // name // } // } // } using var sp = new SimpleServiceProvider(); var queryContext = FieldContext.Empty; var result = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root => root.Add("heroes", queryContext.Locations, q => ((IGraphQlObjectResult)q.ResolveQuery("heroes")).ResolveComplex(sp) .Add("id", queryContext.Locations) .Add("name", queryContext.Locations) .Add("friends", queryContext.Locations, hero => ((IGraphQlObjectResult)hero.ResolveQuery("friendsTask")).ResolveComplex(sp).Add("id", queryContext.Locations).Add("name", queryContext.Locations).Build()) .Build()) .Build(), logger); var json = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions); var expected = "{\"heroes\":[{\"name\":\"Starlord\",\"friends\":[],\"id\":\"GUARDIANS-1\"},{\"name\":\"Thor\",\"friends\":[{\"name\":\"Captain America\",\"id\":\"AVENGERS-1\"}],\"id\":\"ASGUARD-3\"},{\"name\":\"Captain America\",\"friends\":[{\"name\":\"Thor\",\"id\":\"ASGUARD-3\"}],\"id\":\"AVENGERS-1\"}]}"; Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected))); }
public async Task BeAbleToRepresentComplexStructures() { // { // heroes { // id // name // renown // faction // } // } using var sp = new SimpleServiceProvider(); var queryContext = FieldContext.Empty; var result = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root => root.Add("heroes", queryContext.Locations, q => ((IGraphQlObjectResult)q.ResolveQuery("heroes")).ResolveComplex(sp) .Add("id", queryContext.Locations) .Add("name", queryContext.Locations) .Add("renown", queryContext.Locations) .Add("faction", queryContext.Locations) .Build()) .Build(), logger); var json = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions); var expected = "{\"heroes\":[{\"faction\":\"Guardians of the Galaxy\",\"name\":\"Starlord\",\"renown\":5,\"id\":\"GUARDIANS-1\"},{\"faction\":\"Asgardians\",\"name\":\"Thor\",\"renown\":50,\"id\":\"ASGUARD-3\"},{\"faction\":\"Avengers\",\"name\":\"Captain America\",\"renown\":100,\"id\":\"AVENGERS-1\"}]}"; Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected))); }
private void Initialize(IOptions <S3Config> options, INetworkDriver networkDriver, ILoggerFactory loggerFactory) { Assembly assembly = typeof(S3Config).Assembly; SimpleServiceProvider provider = new SimpleServiceProvider(new Tuple <Type, object>(typeof(IOptions <S3Config>), options)); IEnumerable <IValidator> validators = CreateInstances <IValidator>(assembly, provider); IEnumerable <IRequestMarshal> requestMarshals = CreateInstances <IRequestMarshal>(assembly, provider); IEnumerable <IResponseMarshal> responseMarshals = CreateInstances <IResponseMarshal>(assembly, provider); ValidatorFactory validatorFactory = new ValidatorFactory(validators); IMarshalFactory marshalFactory = new MarshalFactory(requestMarshals, responseMarshals); IScopeBuilder scopeBuilder = new ScopeBuilder(options); ISigningKeyBuilder signingKeyBuilder = new SigningKeyBuilder(options, loggerFactory.CreateLogger <SigningKeyBuilder>()); ISignatureBuilder signatureBuilder = new SignatureBuilder(signingKeyBuilder, scopeBuilder, loggerFactory.CreateLogger <SignatureBuilder>(), options); IAuthorizationBuilder authorizationBuilder = new AuthorizationHeaderBuilder(options, scopeBuilder, signatureBuilder, loggerFactory.CreateLogger <AuthorizationHeaderBuilder>()); DefaultRequestHandler requestHandler = new DefaultRequestHandler(options, validatorFactory, marshalFactory, networkDriver, authorizationBuilder, Enumerable.Empty <IRequestStreamWrapper>(), loggerFactory.CreateLogger <DefaultRequestHandler>()); ObjectOperations objectOperations = new ObjectOperations(requestHandler, Enumerable.Empty <IRequestWrapper>(), Enumerable.Empty <IResponseWrapper>()); _objectClient = new S3ObjectClient(objectOperations); BucketOperations bucketOperations = new BucketOperations(requestHandler); _bucketClient = new S3BucketClient(bucketOperations); MultipartOperations multipartOperations = new MultipartOperations(requestHandler, Enumerable.Empty <IRequestWrapper>(), Enumerable.Empty <IResponseWrapper>()); _multipartClient = new S3MultipartClient(multipartOperations, objectOperations); Transfer = new Transfer(objectOperations, multipartOperations); }
public IServiceProvider CreateProvider() { var provider = new SimpleServiceProvider(); provider.AddTransient(typeof(UnitTestData), (s) => { return(new UnitTestData()); }); return(provider); }
static FlexServiceProvider() { concreteServices = new SimpleServiceProvider(); var extendedFileService = new ExtendedFileService(); concreteServices.AddService<IExtendedFileService>(extendedFileService); concreteServices.AddService<IFileService>(new FileService(extendedFileService)); concreteServices.AddService<IConsoleService>(new ConcreteConsoleService()); concreteServices.AddService<IConfigurationManager>(new ConfigurationManager()); }
public void 呼び出し確認() { dynamic cons = new SimpleServiceConsumer("test"); var prov = new SimpleServiceProvider("test"); prov.RegisterMethod("Test", (double i) => i * i); var dummy = prov.AdapterForTest; cons.SetDummy((MarshalByRefObject)dummy); double ret = cons.Test(10); ret.Is(100); }
public async Task BeAbleToRepresentScalars() { // { // rand // } using var sp = new SimpleServiceProvider(); var queryContext = FieldContext.Empty; var result = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root => root.Add("rand", queryContext.Locations) .Build(), logger); var json = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions); var expected = "{\"rand\":5}"; Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected))); }
public async Task BeAbleToHandlePlainObjects() { // { // hero { // id // name // } // } using var sp = new SimpleServiceProvider(); var queryContext = FieldContext.Empty; var result = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root => root.Add("hero", queryContext.Locations, q => ((IGraphQlObjectResult)q.ResolveQuery("hero")).ResolveComplex(sp).Add("id", queryContext.Locations).Add("name", queryContext.Locations).Build()) .Build(), logger); var json = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions); var expected = "{\"hero\":{\"name\":\"Starlord\",\"id\":\"GUARDIANS-1\"}}"; Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected))); }
public async Task BeAbleToHandleFirstLevelmplementationJoin() { // { // heroById(id: "GUARDIANS-1") { // id // name // } // } using var sp = new SimpleServiceProvider(); var queryContext = FieldContext.Empty; var result = await sp.GraphQlRootAsync(typeof(Implementations.QueryContract), root => root.Add("heroById", queryContext.Locations, q => ((IGraphQlObjectResult)q.ResolveQuery("heroById", new BasicParameterResolver(new Dictionary <string, IGraphQlParameterInfo>() { { "id", new NewtonsoftJsonParameterInfo("\"GUARDIANS-1\"") } }))).ResolveComplex(sp).Add("id", queryContext.Locations).Add("name", queryContext.Locations).Build()) .Build(), logger); var json = System.Text.Json.JsonSerializer.Serialize(result.Data, JsonOptions); var expected = "{\"heroById\":{\"name\":\"Starlord\",\"id\":\"GUARDIANS-1\"}}"; Assert.True(JToken.DeepEquals(JToken.Parse(json), JToken.Parse(expected))); }
/// <summary> /// Executes when the user navigates to this page. /// </summary> protected override void OnNavigatedTo(NavigationEventArgs e) { this.meetingContext.Load(this.meetingContext.GetLocationsQuery().Where(l => l.LocationName.StartsWith("18/"))); Meeting meeting = new Meeting { Title = "Waste Your Day!", Start = DateTime.Today.AddDays(2).AddHours(14), End = DateTime.Today.AddDays(2).AddHours(15), Location = "18/3002", MinimumAttendees = 5, MaximumAttendees = 10, Details = "This meeting will cost the company a fortune!" }; var contextItems = new Dictionary <object, object> { { "AllowOverBooking", this.allowOverBooking.IsChecked ?? false } }; var contextServiceProvider = new SimpleServiceProvider(); contextServiceProvider.AddService <IMeetingDataProvider>(this.meetingContext); this.meetingContext.ValidationContext = new ValidationContext( this.meetingContext, contextServiceProvider, contextItems); this.meetingContext.Meetings.Add(meeting); ((IEditableObject)meeting).BeginEdit(); this.LayoutRoot.DataContext = meeting; this.meetingDataGrid.ItemsSource = new List <Meeting> { meeting }; this.meetingDataForm.CurrentItem = meeting; }
public IServiceProvider CreateProvider() { var provider = new SimpleServiceProvider(); return(provider); }
private static IGraphQlExecutor CreateExecutor() { using var serviceProvider = new SimpleServiceProvider(); return(new GraphQlExecutor(serviceProvider, new AbstractSyntaxTreeGenerator(), new GraphQlExecutionOptions(), new LoggerFactory())); }