/// <summary>
        /// 泛型主机注入
        /// </summary>
        /// <param name="hostBuilder">泛型主机注入构建器</param>
        /// <param name="autoRegisterBackgroundService">是否自动注册 BackgroundService</param>
        /// <returns>IWebHostBuilder</returns>
        public static IHostBuilder Inject(this IHostBuilder hostBuilder, bool autoRegisterBackgroundService = true)
        {
            hostBuilder.ConfigureAppConfiguration((hostingContext, config) =>
            {
                // 存储环境对象
                InternalApp.HostEnvironment = hostingContext.HostingEnvironment;

                // 加载配置
                InternalApp.AddConfigureFiles(config, InternalApp.HostEnvironment);
            });

            // 自动注入 AddApp() 服务
            hostBuilder.ConfigureServices(services =>
            {
                // 添加主机启动停止监听
                services.AddHostedService <AppHostedService>();

                // 添加全局配置和存储服务提供器
                InternalApp.InternalServices = services;

                // 初始化应用服务
                services.AddHostApp();

                // 自动注册 BackgroundService
                if (autoRegisterBackgroundService)
                {
                    services.AddAppHostedService();
                }
            });

            return(hostBuilder);
        }
示例#2
0
 /// <summary>
 /// Initialize the SDK for a windows phone app.
 /// </summary>
 /// <param name="appId">App id for the app on appacitive.</param>
 /// <param name="apikey">API key for the app on appacitive.</param>
 /// <param name="environment">The environment to use - sandbox or live.</param>
 /// <param name="settings">Additional settings for initializing the SDK.</param>
 public static void Initialize(string appId, string apikey, Environment environment, AppacitiveSettings settings = null)
 {
     #if WINDOWS_PHONE
     InternalApp.Initialize(Platforms.WP8, appId, apikey, environment, settings);
     #elif WINDOWS_PHONE7
     InternalApp.Initialize(Platforms.WP7, appId, apikey, environment, settings);
     #endif
 }
示例#3
0
        /// <summary>
        /// Reset the logged in user incase of user token expired errors from the server
        /// </summary>
        /// <param name="response">The api response.</param>
        /// <returns></returns>
        private static async Task HandleExpiredUserToken(ApiResponse response)
        {
            var isUserTokenExpired = IsUserTokenExpired(response);

            if (isUserTokenExpired == true)
            {
                await InternalApp.LogoutAsync(invalidateSessionOnServer : false);         // Logout the user without invalidating the session on the server since the session is already expired.
            }
        }
示例#4
0
        /// <summary>
        /// 非 Web 主机注入
        /// </summary>
        /// <param name="hostBuilder"></param>
        /// <returns></returns>
        public static IHostBuilder Inject(this IHostBuilder hostBuilder)
        {
            hostBuilder.ConfigureAppConfiguration(configurationBuilder =>
            {
                InternalApp.AddConfigureFiles(configurationBuilder);
            });

            // 自动注入 AddApp() 服务
            hostBuilder.ConfigureServices(services =>
            {
                // 添加全局配置和存储服务提供器
                InternalApp.InternalServices = services;

                // 初始化应用服务
                services.AddApp();
            });

            return(hostBuilder);
        }
示例#5
0
        /// <summary>
        /// 泛型主机注入
        /// </summary>
        /// <param name="hostBuilder">泛型主机注入构建器</param>
        /// <param name="autoRegisterBackgroundService">是否自动注册 BackgroundService</param>
        /// <returns>IWebHostBuilder</returns>
        public static IHostBuilder Inject(this IHostBuilder hostBuilder, bool autoRegisterBackgroundService = true)
        {
            InternalApp.ConfigureApplication(hostBuilder, autoRegisterBackgroundService);

            return(hostBuilder);
        }
示例#6
0
 /// <summary>
 /// Logout the currently logged in user.
 /// </summary>
 /// <returns></returns>
 public static async Task LogoutAsync()
 {
     await InternalApp.LogoutAsync();
 }
示例#7
0
 /// <summary>
 /// Login a user inside an app.
 /// </summary>
 /// <param name="credentials">The login credentials for the user.</param>
 /// <returns>User session for the logged in user.</returns>
 public static async Task <UserSession> LoginAsync(Credentials credentials)
 {
     return(await InternalApp.LoginAsync(credentials));
 }
示例#8
0
 /// <summary>
 /// Initialize the Appacitive SDK with a customized platform implementation for windows phone app.
 /// </summary>
 /// <param name="platform">Custom device platform implementation</param>
 /// <param name="appId">App id for the app on appacitive.</param>
 /// <param name="apikey">API key for the app on appacitive.</param>
 /// <param name="environment">The environment to use - sandbox or live.</param>
 /// <param name="settings">Additional settings for initializing the SDK.</param>
 public static void Initialize(IDevicePlatform platform, string appId, string apikey, Environment environment, AppacitiveSettings settings = null)
 {
     InternalApp.Initialize(platform, appId, apikey, environment, settings);
 }
示例#9
0
 /// <summary>
 /// Initialize the SDK for use inside an ASP.net application.
 /// </summary>
 /// <param name="appId">App id for the app on appacitive.</param>
 /// <param name="apikey">API key for the app on appacitive.</param>
 /// <param name="environment">The environment to use - sandbox or live.</param>
 /// <param name="settings">Additional settings for initializing the SDK.</param>
 public static void InitializeForAspnet(string appId, string apikey, Environment environment, AppacitiveSettings settings = null)
 {
     InternalApp.Initialize(Platforms.Aspnet, appId, apikey, environment, settings);
 }