/// <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); }
/// <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 }
/// <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. } }
/// <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); }
/// <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); }
/// <summary> /// Logout the currently logged in user. /// </summary> /// <returns></returns> public static async Task LogoutAsync() { await InternalApp.LogoutAsync(); }
/// <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)); }
/// <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); }
/// <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); }