示例#1
0
 public ZumoMomentService(IAccountService accountService, ILogger logger, IZumoConfig config, IMobileServiceClientFactory factory)
 {
     AccountService             = accountService;
     Logger                     = logger;
     Config                     = config;
     MobileServiceClientFactory = factory;
 }
示例#2
0
        private void RunTest(string testName, IMobileServiceClientFactory factory, TraceWriter testTrace, object argument = null)
        {
            Type testType = typeof(MobileTableEndToEndFunctions);
            ExplicitTypeLocator  locator = new ExplicitTypeLocator(testType);
            JobHostConfiguration config  = new JobHostConfiguration
            {
                TypeLocator = locator,
            };

            config.Tracing.Tracers.Add(testTrace);

            var arguments = new Dictionary <string, object>();

            arguments.Add("triggerData", argument);

            var mobileAppsConfig = new MobileAppsConfiguration
            {
                MobileAppUri  = new Uri("https://someuri"),
                ApiKey        = "api_key",
                ClientFactory = factory
            };

            var resolver = new TestNameResolver();

            config.NameResolver = resolver;

            config.UseMobileApps(mobileAppsConfig);

            JobHost host = new JobHost(config);

            host.Start();
            host.Call(testType.GetMethod(testName), arguments);
            host.Stop();
        }
示例#3
0
 public ZumoAccountService(IPreferences preferences, ILogger logger, IMobileServiceClientFactory mobileServiceClientFactory, IEventAggregator eventAggregator)
 {
     EventAggregator            = eventAggregator;
     Logger                     = logger;
     Preferences                = preferences;
     MobileServiceClientFactory = mobileServiceClientFactory;
     FetchAuthenticationToken();
 }
示例#4
0
        public ZumoFriendService(IAccountService accountService, IPreferences preferences, IMobileServiceClientFactory factory)
        {
            AccountService             = accountService;
            Preferences                = preferences;
            MobileServiceClientFactory = factory;

            Friends        = new ObservableCollection <User>();
            PendingFriends = new ObservableCollection <User>();
        }
        internal static IMobileServiceClient CreateMobileServiceClient(IMobileServiceClientFactory factory, Uri mobileAppUri, string apiKey = null)
        {
            HttpMessageHandler[] handlers = null;
            if (!string.IsNullOrEmpty(apiKey))
            {
                handlers = new[] { new MobileServiceApiKeyHandler(apiKey) };
            }

            return(factory.CreateClient(mobileAppUri, handlers));
        }
        private async Task RunTestAsync(string testName, IMobileServiceClientFactory factory, object argument = null,
                                        Uri configUri = null, string configKey = null, bool includeDefaultKey = true, bool includeDefaultUri = true, Type testType = null)
        {
            testType = testType ?? typeof(MobileTableEndToEndFunctions);
            ExplicitTypeLocator locator = new ExplicitTypeLocator(testType);

            var arguments = new Dictionary <string, object>();

            arguments.Add("triggerData", argument);

            var resolver = new TestNameResolver();

            resolver.Values.Add("MyUri", AttributeUri);
            resolver.Values.Add("MyKey", AttributeKey);
            if (includeDefaultUri)
            {
                resolver.Values.Add(MobileAppsExtensionConfigProvider.AzureWebJobsMobileAppUriName, DefaultUri);
            }
            if (includeDefaultKey)
            {
                resolver.Values.Add(MobileAppsExtensionConfigProvider.AzureWebJobsMobileAppApiKeyName, DefaultKey);
            }

            IHost host = new HostBuilder()
                         .ConfigureWebJobs(builder =>
            {
                builder.AddAzureStorage()
                .AddMobileApps(o =>
                {
                    o.MobileAppUri = configUri;
                    o.ApiKey       = configKey;
                });
            })
                         .ConfigureServices(services =>
            {
                services.AddSingleton <IMobileServiceClientFactory>(factory);
                services.AddSingleton <INameResolver>(resolver);
                services.AddSingleton <ITypeLocator>(locator);
            })
                         .ConfigureLogging(logging =>
            {
                logging.ClearProviders();
                logging.AddProvider(_loggerProvider);
            })
                         .Build();

            await host.StartAsync();

            await host.GetJobHost().CallAsync(testType.GetMethod(testName), arguments);

            await host.StopAsync();
        }
        private async Task RunTestAsync(string testName, IMobileServiceClientFactory factory, TraceWriter testTrace, object argument = null,
                                        Uri configUri = null, string configKey = null, bool includeDefaultKey = true, bool includeDefaultUri = true)
        {
            Type testType = typeof(MobileTableEndToEndFunctions);
            ExplicitTypeLocator  locator = new ExplicitTypeLocator(testType);
            JobHostConfiguration config  = new JobHostConfiguration
            {
                TypeLocator = locator,
            };

            config.Tracing.Tracers.Add(testTrace);

            var arguments = new Dictionary <string, object>();

            arguments.Add("triggerData", argument);

            var mobileAppsConfig = new MobileAppsConfiguration
            {
                MobileAppUri  = configUri,
                ApiKey        = configKey,
                ClientFactory = factory
            };

            var resolver = new TestNameResolver();

            resolver.Values.Add("MyUri", AttributeUri);
            resolver.Values.Add("MyKey", AttributeKey);
            if (includeDefaultUri)
            {
                resolver.Values.Add(MobileAppsConfiguration.AzureWebJobsMobileAppUriName, DefaultUri);
            }
            if (includeDefaultKey)
            {
                resolver.Values.Add(MobileAppsConfiguration.AzureWebJobsMobileAppApiKeyName, DefaultKey);
            }

            config.NameResolver = resolver;

            config.UseMobileApps(mobileAppsConfig);

            JobHost host = new JobHost(config);

            await host.StartAsync();

            await host.CallAsync(testType.GetMethod(testName), arguments);

            await host.StopAsync();
        }
 /// <summary>
 /// Constructs a new instance.
 /// </summary>
 public MobileAppsExtensionConfigProvider(IOptions <MobileAppsOptions> options, IMobileServiceClientFactory clientFactory, INameResolver nameResolver)
 {
     _options      = options;
     _nameResolver = nameResolver;
     ClientFactory = clientFactory;
 }
示例#9
0
        private MobileAppsExtensionConfigProvider CreateConfigProvider(string configApiKey, Uri configMobileAppUri, IMobileServiceClientFactory clientFactory = null)
        {
            var options = new MobileAppsOptions
            {
                ApiKey       = configApiKey,
                MobileAppUri = configMobileAppUri
            };

            var nameResolver = new TestNameResolver();

            nameResolver.Values[MobileAppsExtensionConfigProvider.AzureWebJobsMobileAppApiKeyName] = "Default";
            nameResolver.Values[MobileAppsExtensionConfigProvider.AzureWebJobsMobileAppUriName]    = "https://default";
            nameResolver.Values["Attribute"] = "ResolvedAttribute";

            clientFactory = clientFactory ?? new DefaultMobileServiceClientFactory();
            var configProvider = new MobileAppsExtensionConfigProvider(new OptionsWrapper <MobileAppsOptions>(options), clientFactory, nameResolver);
            var context        = TestHelpers.CreateExtensionConfigContext(nameResolver);

            configProvider.Initialize(context);

            return(configProvider);
        }
 /// <summary>
 /// Constructs a new instance.
 /// </summary>
 public MobileAppsExtensionConfigProvider(IOptions <MobileAppsOptions> options, IMobileServiceClientFactory clientFactory, IConfiguration configuration)
 {
     _options       = options;
     _configuration = configuration;
     ClientFactory  = clientFactory;
 }
        private async Task RunTestAsync(string testName, IMobileServiceClientFactory factory, object argument = null,
                                        Uri configUri = null, string configKey = null, bool includeDefaultKey = true, bool includeDefaultUri = true, Type testType = null)
        {
            testType = testType ?? typeof(MobileTableEndToEndFunctions);
            ExplicitTypeLocator locator = new ExplicitTypeLocator(testType);

            var arguments = new Dictionary <string, object>
            {
                { "triggerData", argument }
            };

            var resolver = new TestNameResolver();

            IHost host = new HostBuilder()
                         .ConfigureWebJobs(builder =>
            {
                builder.AddAzureStorage()
                .AddMobileApps(o =>
                {
                    if (configUri != null)
                    {
                        o.MobileAppUri = configUri;
                    }

                    if (configKey != null)
                    {
                        o.ApiKey = configKey;
                    }
                });
            })
                         .ConfigureServices(services =>
            {
                services.AddSingleton <IMobileServiceClientFactory>(factory);
                services.AddSingleton <INameResolver>(resolver);
                services.AddSingleton <ITypeLocator>(locator);
            })
                         .ConfigureLogging(logging =>
            {
                logging.ClearProviders();
                logging.AddProvider(_loggerProvider);
            })
                         .ConfigureAppConfiguration(c =>
            {
                c.Sources.Clear();
                var collection = new Dictionary <string, string>
                {
                    { ConnectionStringNames.Storage, "UseDevelopmentStorage=true" },
                    { "MyUri", AttributeUri },
                    { "MyKey", AttributeKey }
                };

                if (includeDefaultUri)
                {
                    collection.Add(MobileAppsExtensionConfigProvider.AzureWebJobsMobileAppUriName, DefaultUri);
                }
                if (includeDefaultKey)
                {
                    collection.Add(MobileAppsExtensionConfigProvider.AzureWebJobsMobileAppApiKeyName, DefaultKey);
                }

                c.AddInMemoryCollection(collection);
            })
                         .Build();

            await host.StartAsync();

            await host.GetJobHost().CallAsync(testType.GetMethod(testName), arguments);

            await host.StopAsync();
        }
示例#12
0
 public static IDisposableMobileServiceClient CreateClient(this IMobileServiceClientFactory factory) =>
 factory.CreateClient(Array.Empty <HttpMessageHandler>());
示例#13
0
        private MobileAppsExtensionConfigProvider CreateConfigProvider(string configApiKey, Uri configMobileAppUri, IMobileServiceClientFactory clientFactory = null)
        {
            // Create this via the host so that options go through the correct flow.
            var host = new HostBuilder()
                       .ConfigureWebJobs(c =>
            {
                c.AddMobileApps(options =>
                {
                    // Selectively override these.
                    if (configApiKey != null)
                    {
                        options.ApiKey = configApiKey;
                    }

                    if (configMobileAppUri != null)
                    {
                        options.MobileAppUri = configMobileAppUri;
                    }
                });

                if (clientFactory != null)
                {
                    c.Services.AddSingleton <IMobileServiceClientFactory>(clientFactory);
                }
            })
                       .ConfigureAppConfiguration(c =>
            {
                c.AddInMemoryCollection(new Dictionary <string, string>
                {
                    { MobileAppsExtensionConfigProvider.AzureWebJobsMobileAppApiKeyName, "Default" },
                    { MobileAppsExtensionConfigProvider.AzureWebJobsMobileAppUriName, "https://default" },
                    { "Attribute", "ResolvedAttribute" }
                });
            })
                       .Build();

            var configProvider = host.Services.GetService <IExtensionConfigProvider>() as MobileAppsExtensionConfigProvider;
            var context        = TestHelpers.CreateExtensionConfigContext(new TestNameResolver());

            configProvider.Initialize(context);

            return(configProvider);
        }