├── .gitattributes ├── .gitignore ├── CHANGELOG.MD ├── LICENSE ├── README.MD ├── Stormpath.SDK.nuspec ├── Stormpath.SDK.sln ├── appveyor.yml ├── build.cake ├── build.ps1 ├── doc ├── Introduction.aml ├── StormpathConfigurationAbstractionsDocs.shfbproj ├── StormpathSDKApiDocs.shfbproj ├── doc.content ├── examples │ ├── DocExamples │ │ ├── Blog │ │ │ ├── IntroducingCsharpSdk.cs │ │ │ ├── MultiTenantApplications.cs │ │ │ ├── OauthWithJsonWebTokens.cs │ │ │ ├── SamlSso.cs │ │ │ ├── SocialLoginAuthorization.cs │ │ │ └── SsoAndFasterPerf.cs │ │ ├── ClientBuilderExamples.cs │ │ ├── ConsoleQuickstartExamples.cs │ │ ├── ConsoleQuickstarts │ │ │ └── CsharpConsoleQuickstart.cs │ │ ├── CreationOptionsBuilderExamples.cs │ │ ├── IAccountExamples.cs │ │ ├── IAccountStoreContainerExamples.cs │ │ ├── ProductGuide │ │ │ ├── Account_Management.cs │ │ │ ├── Authentication.cs │ │ │ ├── Authorization.cs │ │ │ ├── Configuration.cs │ │ │ ├── IdSite.cs │ │ │ └── Multitenancy.cs │ │ ├── QuickstartExamples.cs │ │ ├── Stormpath.SDK.DocExamples.xproj │ │ └── project.json │ └── DocExamplesVB │ │ ├── Blog │ │ └── AuthenticationAndAuthorization.vb │ │ ├── ConsoleQuickstarts │ │ └── VbConsoleQuickstart.vb │ │ ├── DocExamplesVB.vbproj │ │ ├── My Project │ │ ├── Application.Designer.vb │ │ ├── Application.myapp │ │ ├── AssemblyInfo.vb │ │ ├── Resources.Designer.vb │ │ ├── Resources.resx │ │ ├── Settings.Designer.vb │ │ └── Settings.settings │ │ ├── ProductGuide │ │ ├── Account_Management.vb │ │ ├── Authentication.vb │ │ ├── Authorization.vb │ │ ├── Configuration.vb │ │ ├── IdSite.vb │ │ └── Multitenancy.vb │ │ └── packages.config └── proxy │ ├── Stormpath.SDK.Abstractions │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Stormpath.SDK.Abstractions.csproj │ ├── Stormpath.SDK.Abstractions.csproj.bak │ └── packages.config │ ├── Stormpath.SDK.sln │ └── Stormpath.SDK │ ├── Properties │ └── AssemblyInfo.cs │ ├── Stormpath.SDK.csproj │ ├── Stormpath.SDK.csproj.bak │ └── packages.config ├── global.json ├── icon.png ├── nuget.config ├── pack.cmd ├── script ├── BuildAndDeployDocs.ps1 ├── BuildDocs.ps1 ├── add-gtm.ps1 ├── doc-proxy-functions.ps1 ├── prep-documentation.ps1 └── validate-version.ps1 ├── src ├── Stormpath.SDK.Abstractions │ ├── .gitignore │ ├── Account │ │ ├── AccountStatus.cs │ │ ├── ChallengeCreationOptions.cs │ │ ├── ChallengeStatus.cs │ │ ├── EmailVerificationStatus.cs │ │ ├── FactorStatus.cs │ │ ├── FactorType.cs │ │ ├── FactorVerificationStatus.cs │ │ ├── GoogleAuthenticatorFactorCreationOptions.cs │ │ ├── IAccount.cs │ │ ├── IAccountCreationActions.cs │ │ ├── IAccountCreationOptions.cs │ │ ├── IChallenge.cs │ │ ├── IChallengeCollection.cs │ │ ├── IEmailVerificationRequest.cs │ │ ├── IEmailVerificationToken.cs │ │ ├── IFactor.cs │ │ ├── IFactorCollection.cs │ │ ├── IGoogleAuthenticatorFactor.cs │ │ ├── IPasswordResetToken.cs │ │ ├── IPhone.cs │ │ ├── IPhoneCollection.cs │ │ ├── ISmsFactor.cs │ │ ├── PasswordFormat.cs │ │ ├── PhoneCreationOptions.cs │ │ ├── PhoneStatus.cs │ │ ├── PhoneVerificationStatus.cs │ │ └── SmsFactorCreationOptions.cs │ ├── AccountStore │ │ ├── IAccountStore.cs │ │ ├── IAccountStoreContainer.cs │ │ └── IAccountStoreMapping.cs │ ├── Api │ │ ├── ApiKeyStatus.cs │ │ ├── IApiKey.cs │ │ ├── IClientApiKey.cs │ │ └── IClientApiKeyBuilder.cs │ ├── Application │ │ ├── ApplicationStatus.cs │ │ ├── ClientApiStatus.cs │ │ ├── IApplication.cs │ │ ├── IApplicationAccountStoreMapping.cs │ │ ├── IApplicationCreationOptions.cs │ │ ├── IApplicationWebChangePasswordConfiguration.cs │ │ ├── IApplicationWebConfiguration.cs │ │ ├── IApplicationWebForgotPasswordConfiguration.cs │ │ ├── IApplicationWebLoginConfiguration.cs │ │ ├── IApplicationWebMeConfiguration.cs │ │ ├── IApplicationWebMeExpandConfiguration.cs │ │ ├── IApplicationWebOauth2Configuration.cs │ │ ├── IApplicationWebRegisterConfiguration.cs │ │ └── IApplicationWebVerifyEmailConfiguration.cs │ ├── Auth │ │ ├── IAuthenticationRequest.cs │ │ └── IAuthenticationResult.cs │ ├── Cache │ │ ├── AbstractCacheProvider.cs │ │ ├── AbstractCacheProviderBuilder{T}.cs │ │ ├── IAsynchronousCache.cs │ │ ├── IAsynchronousCacheProvider.cs │ │ ├── ICache.cs │ │ ├── ICacheConfiguration.cs │ │ ├── ICacheConfigurationBuilder.cs │ │ ├── ICacheProvider.cs │ │ ├── ICacheProviderBuilder.cs │ │ ├── ICacheProviderFactory.cs │ │ ├── ISynchronousCache.cs │ │ └── ISynchronousCacheProvider.cs │ ├── Client │ │ ├── AuthenticationScheme.cs │ │ ├── IClient.cs │ │ ├── IClientBuilder.cs │ │ ├── IScopedClientFactory.cs │ │ └── ScopedClientOptions.cs │ ├── CustomData │ │ ├── ICustomData.cs │ │ └── ICustomDataProxy.cs │ ├── DataStore │ │ └── IDataStore.cs │ ├── Directory │ │ ├── DirectoryStatus.cs │ │ ├── IAccountCreationPolicy.cs │ │ ├── IDirectory.cs │ │ ├── IDirectoryCreationOptions.cs │ │ ├── IPasswordPolicy.cs │ │ └── IPasswordStrengthPolicy.cs │ ├── Error │ │ ├── IError.cs │ │ └── ResourceException.cs │ ├── Group │ │ ├── GroupStatus.cs │ │ ├── IGroup.cs │ │ ├── IGroupCreationActions.cs │ │ ├── IGroupCreationOptions.cs │ │ └── IGroupMembership.cs │ ├── Http │ │ ├── AbstractHttpClientBuilder.cs │ │ ├── AbstractHttpResponse.cs │ │ ├── AuthorizationHeaderValue.cs │ │ ├── CanonicalUri.cs │ │ ├── HttpHeaders.cs │ │ ├── HttpMethod.cs │ │ ├── IAsynchronousHttpClient.cs │ │ ├── IHttpClient.cs │ │ ├── IHttpClientBuilder.cs │ │ ├── IHttpClientFactory.cs │ │ ├── IHttpMessage.cs │ │ ├── IHttpRequest.cs │ │ ├── IHttpRequestBuilder.cs │ │ ├── IHttpResponse.cs │ │ ├── ISynchronousHttpClient.cs │ │ ├── QueryString.cs │ │ ├── RequestException.cs │ │ ├── UriQualifier.cs │ │ └── UrlEncoding.cs │ ├── IdSite │ │ ├── IAccountResult.cs │ │ ├── IAsynchronousNonceStore.cs │ │ ├── IIdSiteAsyncCallbackHandler.cs │ │ ├── IIdSiteAsyncResultListener.cs │ │ ├── IIdSiteSyncCallbackHandler.cs │ │ ├── IIdSiteSyncResultListener.cs │ │ ├── IIdSiteUrlBuilder.cs │ │ ├── INonce.cs │ │ ├── INonceStore.cs │ │ ├── ISynchronousNonceStore.cs │ │ ├── IdSiteResultStatus.cs │ │ ├── IdSiteRuntimeException.cs │ │ ├── IdSiteSessionTimeoutException.cs │ │ └── InvalidIdSiteTokenException.cs │ ├── Jwt │ │ ├── ExpiredJwtException.cs │ │ ├── IClaimsMutator.cs │ │ ├── IJwt.cs │ │ ├── IJwtBuilder.cs │ │ ├── IJwtClaims.cs │ │ ├── IJwtClaimsBuilder.cs │ │ ├── IJwtParser.cs │ │ ├── InvalidJwtException.cs │ │ ├── JwtSignatureException.cs │ │ ├── MalformedJwtException.cs │ │ ├── MismatchedClaimException.cs │ │ ├── MissingClaimException.cs │ │ └── PrematureJwtException.cs │ ├── Linq │ │ ├── AsyncQueryableExpandExtensions.cs │ │ ├── AsyncQueryableExtensions.cs │ │ ├── AsyncQueryableFilterExtensions.cs │ │ ├── ExpandCommon.cs │ │ ├── Expandables │ │ │ ├── IAccountExpandables.cs │ │ │ ├── IAccountStoreMappingExpandables.cs │ │ │ ├── IApiKeyExpandables.cs │ │ │ ├── IApplicationExpandables.cs │ │ │ ├── IAuthenticationResultExpandables.cs │ │ │ ├── IChallengeExpandables.cs │ │ │ ├── IDirectoryExpandables.cs │ │ │ ├── IExpandableAccounts.cs │ │ │ ├── IExpandableApplications.cs │ │ │ ├── IExpandableCustomData.cs │ │ │ ├── IExpandableDefaultStores.cs │ │ │ ├── IExpandableDirectory.cs │ │ │ ├── IExpandableGroupMemberships.cs │ │ │ ├── IExpandableGroups.cs │ │ │ ├── IExpandableTenant.cs │ │ │ ├── IFactorExpandables.cs │ │ │ ├── IGroupExpandables.cs │ │ │ ├── IGroupMembershipExpandables.cs │ │ │ ├── IOrganizationAccountStoreMappingExpandables.cs │ │ │ ├── IOrganizationExpandables.cs │ │ │ ├── IPhoneExpandables.cs │ │ │ ├── ISmsFactorExpandables.cs │ │ │ └── ITenantExpandables.cs │ │ ├── IAsyncQueryProvider{T}.cs │ │ ├── IAsyncQueryable{T}.cs │ │ ├── IOrderedAsyncQueryable{T}.cs │ │ ├── LinqHelper.cs │ │ ├── PrecisionExpressionExtensions.cs │ │ ├── SpecifiedPrecisionToken.cs │ │ ├── SyncExpandExtensions.cs │ │ ├── SyncFilterExtensions.cs │ │ └── WithinExpressionExtensions.cs │ ├── Logging │ │ ├── ILogger.cs │ │ ├── ILoggerConsumer{T}.cs │ │ ├── InMemoryLogger.cs │ │ ├── LogEntry.cs │ │ ├── LogLevel.cs │ │ └── LoggerExtensions.cs │ ├── Mail │ │ └── EmailStatus.cs │ ├── Oauth │ │ ├── AbstractOauthGrantRequest.cs │ │ ├── ClientCredentialsGrantRequest.cs │ │ ├── FactorChallengeRequest.cs │ │ ├── IAccessToken.cs │ │ ├── IIdSiteTokenAuthenticationRequest.cs │ │ ├── IIdSiteTokenAuthenticationRequestBuilder.cs │ │ ├── IIdSiteTokenAuthenticator.cs │ │ ├── IJwtAuthenticationRequest.cs │ │ ├── IJwtAuthenticationRequestBuilder.cs │ │ ├── IJwtAuthenticator.cs │ │ ├── IOauthAuthenticationRequestBuilder{TRequest}.cs │ │ ├── IOauthAuthenticator{TRequest,TResult}.cs │ │ ├── IOauthGrantAuthenticationResult.cs │ │ ├── IOauthGrantRequest.cs │ │ ├── IOauthPolicy.cs │ │ ├── IPasswordGrantAuthenticator.cs │ │ ├── IPasswordGrantRequest.cs │ │ ├── IPasswordGrantRequestBuilder.cs │ │ ├── IRefreshGrantAuthenticator.cs │ │ ├── IRefreshGrantRequest.cs │ │ ├── IRefreshGrantRequestBuilder.cs │ │ ├── IRefreshToken.cs │ │ ├── JwtLocalValidationOptions.cs │ │ ├── PasswordGrantRequest.cs │ │ ├── RefreshGrantRequest.cs │ │ ├── SocialGrantRequest.cs │ │ └── StormpathTokenGrantRequest.cs │ ├── Organization │ │ ├── IOrganization.cs │ │ ├── IOrganizationAccountStoreMapping.cs │ │ ├── IOrganizationCreationOptions.cs │ │ └── OrganizationStatus.cs │ ├── Provider │ │ ├── IAdLdapProvider.cs │ │ ├── ICreateProviderRequest.cs │ │ ├── ICreateProviderRequestBuilder{T}.cs │ │ ├── IFacebookAccountRequestBuilder.cs │ │ ├── IFacebookCreateProviderRequestBuilder.cs │ │ ├── IFacebookProvider.cs │ │ ├── IFacebookProviderData.cs │ │ ├── IFacebookRequestFactory.cs │ │ ├── IGithubAccountRequestBuilder.cs │ │ ├── IGithubCreateProviderRequestBuilder.cs │ │ ├── IGithubProvider.cs │ │ ├── IGithubProviderData.cs │ │ ├── IGithubRequestFactory.cs │ │ ├── IGoogleAccountRequestBuilder.cs │ │ ├── IGoogleCreateProviderRequestBuilder.cs │ │ ├── IGoogleProvider.cs │ │ ├── IGoogleProviderData.cs │ │ ├── IGoogleRequestFactory.cs │ │ ├── ILinkedInAccountRequestBuilder.cs │ │ ├── ILinkedInCreateProviderRequestBuilder.cs │ │ ├── ILinkedInProvider.cs │ │ ├── ILinkedInProviderData.cs │ │ ├── ILinkedInRequestFactory.cs │ │ ├── IOauth2Provider.cs │ │ ├── IProvider.cs │ │ ├── IProviderAccountRequest.cs │ │ ├── IProviderAccountRequestBuilder{T}.cs │ │ ├── IProviderAccountResult.cs │ │ ├── IProviderData.cs │ │ ├── IProviderFactory.cs │ │ ├── IProviderRequestFactory{A,P}.cs │ │ ├── ISamlProvider.cs │ │ └── ITwitterProvider.cs │ ├── Resource │ │ ├── AbstractEnumProperty.cs │ │ ├── IAuditable.cs │ │ ├── ICreationOptions.cs │ │ ├── IDeletable.cs │ │ ├── IExtendable.cs │ │ ├── IResource.cs │ │ ├── IRetrievalOptions{T}.cs │ │ ├── ISaveableWithOptions{T}.cs │ │ └── ISaveable{T}.cs │ ├── Saml │ │ ├── ISamlAccountResult.cs │ │ ├── ISamlAsyncCallbackHandler.cs │ │ ├── ISamlAsyncResultListener.cs │ │ ├── ISamlIdpUrlBuilder.cs │ │ ├── ISamlPolicy.cs │ │ ├── ISamlServiceProvider.cs │ │ ├── ISamlSyncCallbackHandler.cs │ │ ├── ISamlSyncResultListener.cs │ │ ├── ISsoInitiationEndpoint.cs │ │ ├── SamlException.cs │ │ └── SamlResultStatus.cs │ ├── Serialization │ │ ├── AbstractSerializerBuilder.cs │ │ ├── IJsonSerializer.cs │ │ ├── ISerializerBuilder.cs │ │ ├── ISerializerConsumer{T}.cs │ │ └── ISerializerFactory.cs │ ├── SerializedPropertyAttribute.cs │ ├── Shared │ │ ├── Extensions │ │ │ ├── DictionaryExtensions.cs │ │ │ ├── EnumerableExtensions.cs │ │ │ ├── ReflectionExtensions.cs │ │ │ └── StringExtensions.cs │ │ ├── HashCode.cs │ │ ├── ImmutableValueObject{T}.cs │ │ └── StringEnumeration.cs │ ├── Stormpath.SDK.Abstractions.xproj │ ├── Tenant │ │ ├── IHasTenant.cs │ │ ├── ITenant.cs │ │ └── ITenantActions.cs │ └── project.json ├── Stormpath.SDK.Cache.Redis │ ├── CacheEntry.cs │ ├── Constants.cs │ ├── IRedisCacheProviderBuilder.cs │ ├── RedisCache.cs │ ├── RedisCacheProvider.cs │ ├── RedisCacheProviderBuilder.cs │ ├── RedisCacheProviderFactoryExtensions.cs │ ├── RedisCaches.cs │ ├── Stormpath.SDK.Cache.Redis.xproj │ └── project.json ├── Stormpath.SDK.Core │ ├── Account │ │ ├── AccountCreationOptionsBuilder.cs │ │ └── EmailVerificationRequestBuilder.cs │ ├── AccountCreationActionsCompatibilityExtensions.cs │ ├── Api │ │ └── ClientApiKeys.cs │ ├── Application │ │ └── ApplicationCreationOptionsBuilder.cs │ ├── ApplicationCompatibilityExtensions.cs │ ├── Auth │ │ ├── ApiAuthenticationException.cs │ │ ├── ApiKeyRequestBuilder.cs │ │ ├── DisabledAccountException.cs │ │ ├── DisabledApiKeyException.cs │ │ ├── IncorrectCredentialsException.cs │ │ └── UsernamePasswordRequestBuilder.cs │ ├── Cache │ │ ├── CacheProviders.cs │ │ └── Caches.cs │ ├── Client │ │ ├── Clients.cs │ │ ├── DnxCallerFileLanguageDetector.cs │ │ └── ScopedClientFactory.cs │ ├── Directory │ │ └── DirectoryCreationOptionsBuilder.cs │ ├── Group │ │ └── GroupCreationOptionsBuilder.cs │ ├── GroupCreationActionsCompatibilityExtensions.cs │ ├── Http │ │ ├── HttpClientFactoryAutodetectExtensions.cs │ │ ├── HttpClients.cs │ │ └── HttpRequests.cs │ ├── Impl │ │ ├── Account │ │ │ ├── AccountCreationActionsShared.cs │ │ │ ├── ChallengeSubmitData.cs │ │ │ ├── DefaultAccount.ApiKeys.cs │ │ │ ├── DefaultAccount.Collections.cs │ │ │ ├── DefaultAccount.IGroup.cs │ │ │ ├── DefaultAccount.IGroupSync.cs │ │ │ ├── DefaultAccount.Resources.cs │ │ │ ├── DefaultAccount.ResourcesSync.cs │ │ │ ├── DefaultAccount.cs │ │ │ ├── DefaultAccountCreationOptions.cs │ │ │ ├── DefaultChallenge.Sync.cs │ │ │ ├── DefaultChallenge.cs │ │ │ ├── DefaultChallengeCollection.cs │ │ │ ├── DefaultEmailVerificationRequest.cs │ │ │ ├── DefaultEmailVerificationToken.cs │ │ │ ├── DefaultFactor.Sync.cs │ │ │ ├── DefaultFactor.cs │ │ │ ├── DefaultFactorCollection.cs │ │ │ ├── DefaultGoogleAuthenticatorFactor.cs │ │ │ ├── DefaultPasswordResetToken.cs │ │ │ ├── DefaultPhone.cs │ │ │ ├── DefaultPhoneCollection.cs │ │ │ ├── DefaultSmsFactor.cs │ │ │ ├── GoogleAuthenticatorFactorCreationData.cs │ │ │ ├── IAccountCreationActionsInternal.cs │ │ │ ├── IAccountCreationActionsSync.cs │ │ │ ├── IAccountSync.cs │ │ │ ├── IChallengeCollectionSync.cs │ │ │ ├── IChallengeSync.cs │ │ │ ├── IEmailVerificationRequestSync.cs │ │ │ ├── IFactorCollectionSync.cs │ │ │ ├── IFactorSync.cs │ │ │ ├── IPasswordResetTokenSync.cs │ │ │ ├── IPhoneCollectionSync.cs │ │ │ ├── IPhoneSync.cs │ │ │ ├── ISmsFactorSync.cs │ │ │ └── SmsFactorCreationData.cs │ │ ├── AccountStore │ │ │ ├── AbstractAccountStoreMapping.cs │ │ │ ├── AccountStoreContainerShared.cs │ │ │ ├── DefaultAccountStore.cs │ │ │ ├── IAccountStoreContainerSync.cs │ │ │ ├── IAccountStoreMappingSync.cs │ │ │ └── IAccountStoreSync.cs │ │ ├── Api │ │ │ ├── DefaultApiKey.cs │ │ │ ├── DefaultClientApiKey.cs │ │ │ └── IApiKeySync.cs │ │ ├── Application │ │ │ ├── DefaultApplication.AccountCreationActions.cs │ │ │ ├── DefaultApplication.AccountCreationActionsSync.cs │ │ │ ├── DefaultApplication.AccountStore.cs │ │ │ ├── DefaultApplication.AccountStoreSync.cs │ │ │ ├── DefaultApplication.ApiKey.cs │ │ │ ├── DefaultApplication.Collections.cs │ │ │ ├── DefaultApplication.EmailVerification.cs │ │ │ ├── DefaultApplication.EmailVerificationSync.cs │ │ │ ├── DefaultApplication.GroupCreationActions.cs │ │ │ ├── DefaultApplication.GroupCreationActionsSync.cs │ │ │ ├── DefaultApplication.IdSite.cs │ │ │ ├── DefaultApplication.Login.cs │ │ │ ├── DefaultApplication.LoginSync.cs │ │ │ ├── DefaultApplication.Oauth.cs │ │ │ ├── DefaultApplication.ResetPassword.cs │ │ │ ├── DefaultApplication.ResetPasswordSync.cs │ │ │ ├── DefaultApplication.Resources.cs │ │ │ ├── DefaultApplication.ResourcesSync.cs │ │ │ ├── DefaultApplication.Saml.cs │ │ │ ├── DefaultApplication.cs │ │ │ ├── DefaultApplicationAccountStoreMapping.cs │ │ │ ├── DefaultApplicationCreationOptions.cs │ │ │ ├── DefaultApplicationWebChangePasswordConfiguration.cs │ │ │ ├── DefaultApplicationWebConfiguration.cs │ │ │ ├── DefaultApplicationWebForgotPasswordConfiguration.cs │ │ │ ├── DefaultApplicationWebLoginConfiguration.cs │ │ │ ├── DefaultApplicationWebMeConfiguration.cs │ │ │ ├── DefaultApplicationWebMeExpandConfiguration.cs │ │ │ ├── DefaultApplicationWebOauth2Configuration.cs │ │ │ ├── DefaultApplicationWebRegisterConfiguration.cs │ │ │ ├── DefaultApplicationWebVerifyEmailConfiguration.cs │ │ │ ├── IApplicationAccountStoreMappingSync.cs │ │ │ ├── IApplicationSync.cs │ │ │ └── IApplicationWebConfigurationSync.cs │ │ ├── Auth │ │ │ ├── AbstractLoginAttempt.cs │ │ │ ├── ApiKeyAuthenticationRequest.cs │ │ │ ├── ApiKeyAuthenticator.cs │ │ │ ├── AuthenticationRequestDispatcher.cs │ │ │ ├── BasicAuthenticator.cs │ │ │ ├── DefaultAuthenticationResult.cs │ │ │ ├── DefaultBasicLoginAttempt.cs │ │ │ ├── IAuthenticationResultSync.cs │ │ │ ├── IBasicLoginAttempt.cs │ │ │ ├── IHasOrganizationNameKey.cs │ │ │ ├── ILoginAttempt.cs │ │ │ └── UsernamePasswordRequest.cs │ │ ├── Cache │ │ │ ├── DefaultCacheConfiguration.cs │ │ │ ├── DefaultCacheConfigurationBuilder.cs │ │ │ ├── DefaultCacheProviderFactory.cs │ │ │ ├── DefaultCacheResolver.cs │ │ │ ├── ICacheResolver.cs │ │ │ ├── InMemoryCache.cs │ │ │ ├── InMemoryCacheProvider.cs │ │ │ ├── InMemoryCacheProviderBuilder.cs │ │ │ ├── NullCacheProvider.cs │ │ │ └── Polyfill.Microsoft.Extensions.Caching.Memory │ │ │ │ ├── CacheEntry.cs │ │ │ │ ├── CacheExtensions.cs │ │ │ │ ├── CacheItemPriority.cs │ │ │ │ ├── EntryLink.cs │ │ │ │ ├── EntryLinkHelpers.cs │ │ │ │ ├── EvictionReason.cs │ │ │ │ ├── GcNotification.cs │ │ │ │ ├── IEntryLink.cs │ │ │ │ ├── IMemoryCache.cs │ │ │ │ ├── MemoryCache.cs │ │ │ │ ├── MemoryCacheEntryExtensions.cs │ │ │ │ ├── MemoryCacheEntryOptions.cs │ │ │ │ └── MemoryCacheOptions.cs │ │ ├── Client │ │ │ ├── DefaultClient.Collections.cs │ │ │ ├── DefaultClient.DataStore.cs │ │ │ ├── DefaultClient.Jwt.cs │ │ │ ├── DefaultClient.TenantActions.cs │ │ │ ├── DefaultClient.TenantActionsSync.cs │ │ │ ├── DefaultClient.cs │ │ │ ├── DefaultClientBuilder.cs │ │ │ ├── DefaultUserAgentBuilder.cs │ │ │ ├── IClientSync.cs │ │ │ ├── IUserAgentBuilder.cs │ │ │ ├── PrependingUserAgentBuilder.cs │ │ │ ├── ShimAdditionalClientApiKeySettings.cs │ │ │ ├── ShimClientApiKey.cs │ │ │ └── ShimClientApiKeyBuilder.cs │ │ ├── CustomData │ │ │ ├── DefaultCustomData.cs │ │ │ ├── DefaultCustomDataProxy.cs │ │ │ └── ICustomDataSync.cs │ │ ├── DataStore │ │ │ ├── DefaultDataStore.Core.cs │ │ │ ├── DefaultDataStore.Create.cs │ │ │ ├── DefaultDataStore.Delete.cs │ │ │ ├── DefaultDataStore.Get.cs │ │ │ ├── DefaultDataStore.Save.cs │ │ │ ├── DefaultDataStore.cs │ │ │ ├── DefaultResourceConverter.cs │ │ │ ├── DefaultResourceDataRequest.cs │ │ │ ├── DefaultResourceDataResult.cs │ │ │ ├── DefaultResourceFactory.cs │ │ │ ├── Filters │ │ │ │ ├── AbstractCacheFilter.cs │ │ │ │ ├── AccountStoreMappingCacheInvalidationFilter.cs │ │ │ │ ├── DefaultAsynchronousFilter.cs │ │ │ │ ├── DefaultAsynchronousFilterChain.cs │ │ │ │ ├── DefaultSynchronousFilter.cs │ │ │ │ ├── DefaultSynchronousFilterChain.cs │ │ │ │ ├── IAsynchronousFilter.cs │ │ │ │ ├── IAsynchronousFilterChain.cs │ │ │ │ ├── ISynchronousFilter.cs │ │ │ │ ├── ISynchronousFilterChain.cs │ │ │ │ ├── ProviderAccountResultFilter.cs │ │ │ │ ├── ReadCacheFilter.cs │ │ │ │ ├── WriteCacheFilter.Async.cs │ │ │ │ └── WriteCacheFilter.Sync.cs │ │ │ ├── IDataStoreSync.cs │ │ │ ├── IInternalAsyncDataStore.cs │ │ │ ├── IInternalDataStore.cs │ │ │ ├── IInternalSyncDataStore.cs │ │ │ ├── IResourceConverter.cs │ │ │ ├── IResourceDataRequest.cs │ │ │ ├── IResourceDataResult.cs │ │ │ ├── IResourceFactory.cs │ │ │ ├── ResourceAction.cs │ │ │ ├── ResourceTypeLookup.cs │ │ │ ├── TypeNameResolver.cs │ │ │ └── TypeResolver.cs │ │ ├── Directory │ │ │ ├── DefaultAccountCreationPolicy.cs │ │ │ ├── DefaultDirectory.Collections.cs │ │ │ ├── DefaultDirectory.CreationActions.cs │ │ │ ├── DefaultDirectory.CreationActionsSync.cs │ │ │ ├── DefaultDirectory.Resources.cs │ │ │ ├── DefaultDirectory.ResourcesSync.cs │ │ │ ├── DefaultDirectory.cs │ │ │ ├── DefaultDirectoryCreationOptions.cs │ │ │ ├── DefaultPasswordPolicy.cs │ │ │ ├── DefaultPasswordStrengthPolicy.cs │ │ │ ├── IAccountCreationPolicySync.cs │ │ │ ├── IDirectorySync.cs │ │ │ ├── IPasswordPolicySync.cs │ │ │ └── IPasswordStrengthPolicySync.cs │ │ ├── Error │ │ │ └── DefaultError.cs │ │ ├── Extensions │ │ │ ├── ConcurrentDictionaryExtensions.cs │ │ │ └── HttpExtensions.cs │ │ ├── Group │ │ │ ├── DefaultGroup.Collections.cs │ │ │ ├── DefaultGroup.Membership.cs │ │ │ ├── DefaultGroup.MembershipSync.cs │ │ │ ├── DefaultGroup.Resources.cs │ │ │ ├── DefaultGroup.ResourcesSync.cs │ │ │ ├── DefaultGroup.cs │ │ │ ├── DefaultGroupCreationOptions.cs │ │ │ ├── DefaultGroupMembership.cs │ │ │ ├── GroupCreationActionsShared.cs │ │ │ ├── IGroupCreationActionsInternal.cs │ │ │ ├── IGroupCreationActionsSync.cs │ │ │ ├── IGroupMembershipSync.cs │ │ │ ├── IGroupSync.cs │ │ │ └── IInternalGroupMembership.cs │ │ ├── Http │ │ │ ├── Authentication │ │ │ │ ├── BasicRequestAuthenticator.cs │ │ │ │ ├── DefaultRequestAuthenticatorFactory.cs │ │ │ │ ├── IRequestAuthenticator.cs │ │ │ │ ├── IRequestAuthenticatorFactory.cs │ │ │ │ ├── Iso8601Formatter.cs │ │ │ │ ├── RequestAuthenticationException.cs │ │ │ │ └── SAuthc1RequestAuthenticator.cs │ │ │ ├── DefaultHttpClientFactory.cs │ │ │ ├── DefaultHttpClientLoader.cs │ │ │ ├── DefaultHttpRequest.cs │ │ │ ├── DefaultHttpRequestBuilder.cs │ │ │ ├── DefaultRequestExecutor.cs │ │ │ ├── FormUrlEncoder.cs │ │ │ ├── IRequestExecutor.cs │ │ │ └── Support │ │ │ │ ├── DefaultBackoffStrategy.cs │ │ │ │ ├── IBackoffStrategy.cs │ │ │ │ └── ThrottlingBackoffStrategy.cs │ │ ├── IdSite │ │ │ ├── DefaultAccountResult.cs │ │ │ ├── DefaultIdSiteAsyncCallbackHandler.cs │ │ │ ├── DefaultIdSiteJtiProvider.cs │ │ │ ├── DefaultIdSiteSyncCallbackHandler.cs │ │ │ ├── DefaultIdSiteUrlBuilder.cs │ │ │ ├── DefaultNonce.cs │ │ │ ├── DefaultNonceStore.cs │ │ │ ├── IAccountResultSync.cs │ │ │ ├── IIdSiteJtiProvider.cs │ │ │ ├── IdSiteClaims.cs │ │ │ ├── InlineIdSiteAsyncResultListener.cs │ │ │ └── InlineIdSiteSyncResultListener.cs │ │ ├── IdentityMap │ │ │ ├── IIdentityMap{TItem}.cs │ │ │ ├── IdentityMapOptions.cs │ │ │ ├── IdentityMapOptionsResolver.cs │ │ │ └── MemoryCacheIdentityMap{TItem}.cs │ │ ├── Jwt │ │ │ ├── DefaultJwt.cs │ │ │ ├── DefaultJwtBuilder.cs │ │ │ ├── DefaultJwtClaims.cs │ │ │ ├── DefaultJwtClaimsBuilder.cs │ │ │ ├── DefaultJwtParser.cs │ │ │ ├── JwtHeaderParameters.cs │ │ │ ├── JwtLifetimeValidator.cs │ │ │ ├── JwtSignatureValidator.cs │ │ │ ├── JwtSigner.cs │ │ │ ├── JwtValidator.cs │ │ │ ├── Jwts.cs │ │ │ └── StormpathClaims.cs │ │ ├── Linq │ │ │ ├── CollectionResourceQueryProvider{TResult}.cs │ │ │ ├── CollectionResourceQueryable{TResult}.cs │ │ │ ├── Executor │ │ │ │ ├── CollectionResourceExecutor{TResult}.cs │ │ │ │ ├── IAsyncExecutor{TResult}.cs │ │ │ │ └── NullExecutor{TResult}.cs │ │ │ ├── Parsing │ │ │ │ ├── CompilingExpressionVisitor.cs │ │ │ │ ├── CustomDataParsingHelper.cs │ │ │ │ ├── DiscoveringExpressionVisitor.cs │ │ │ │ ├── Expressions │ │ │ │ │ ├── ExpandExpression.cs │ │ │ │ │ ├── FilterExpression.cs │ │ │ │ │ ├── OrderByExpression.cs │ │ │ │ │ ├── ParsedExpression.cs │ │ │ │ │ ├── ResultOperators │ │ │ │ │ │ ├── AnyResultOperator.cs │ │ │ │ │ │ ├── CountResultOperator.cs │ │ │ │ │ │ ├── FirstResultOperator.cs │ │ │ │ │ │ ├── LongCountResultOperator.cs │ │ │ │ │ │ ├── ResultOperatorExpression.cs │ │ │ │ │ │ └── SingleResultOperator.cs │ │ │ │ │ ├── SkipExpression.cs │ │ │ │ │ ├── TakeExpression.cs │ │ │ │ │ └── WhereMemberExpression.cs │ │ │ │ ├── NameTranslators │ │ │ │ │ ├── AbstractNameTranslator.cs │ │ │ │ │ ├── FieldNameTranslator.cs │ │ │ │ │ └── MethodNameTranslator.cs │ │ │ │ ├── NodeReducer.cs │ │ │ │ ├── OrderByDirection.cs │ │ │ │ ├── QueryModelCompiler.cs │ │ │ │ ├── QueryModelParser.cs │ │ │ │ ├── QueryModelValidator.cs │ │ │ │ ├── RangedTerms │ │ │ │ │ ├── AbstractRangedWhereTermParser.cs │ │ │ │ │ ├── RangedDatetimeWhereTermParser.cs │ │ │ │ │ ├── RangedDoubleWhereTermParser.cs │ │ │ │ │ ├── RangedLongWhereTermParser.cs │ │ │ │ │ └── RangedWhereTermWorkingModel.cs │ │ │ │ ├── ResultOperator.cs │ │ │ │ ├── Transformers │ │ │ │ │ ├── AbstractExpressionTransformer.cs │ │ │ │ │ ├── IExpressionTransformer.cs │ │ │ │ │ ├── PartialEvaluationTransformer.cs │ │ │ │ │ ├── VbConvertInvocationTransformer.cs │ │ │ │ │ └── VbStringCompareTransformer.cs │ │ │ │ ├── WhereComparison.cs │ │ │ │ └── WhereExpressionVisitor.cs │ │ │ ├── QueryModel │ │ │ │ ├── CollectionResourceQueryModel.cs │ │ │ │ ├── DatetimeShorthandModel.cs │ │ │ │ ├── ExecutionPlanModel.cs │ │ │ │ ├── ExpandTerm.cs │ │ │ │ ├── OrderByTerm.cs │ │ │ │ └── WhereTerm.cs │ │ │ └── Sync │ │ │ │ ├── SyncCollectionEnumeratorAdapter{TResult}.cs │ │ │ │ └── SyncScalarExecutor{TItem}.cs │ │ ├── Logging │ │ │ └── NullLogger.cs │ │ ├── Oauth │ │ │ ├── AbstractGrantAuthenticator.cs │ │ │ ├── DefaultAccessToken.cs │ │ │ ├── DefaultGrantAuthenticationToken.cs │ │ │ ├── DefaultGrantAuthenticator.cs │ │ │ ├── DefaultIdSiteTokenAuthenticationAttempt.cs │ │ │ ├── DefaultIdSiteTokenAuthenticationRequest.cs │ │ │ ├── DefaultIdSiteTokenAuthenticationRequestBuilder.cs │ │ │ ├── DefaultIdSiteTokenAuthenticator.cs │ │ │ ├── DefaultJwtAuthenticationRequest.cs │ │ │ ├── DefaultJwtAuthenticationRequestBuilder.cs │ │ │ ├── DefaultJwtAuthenticator.cs │ │ │ ├── DefaultOauthPolicy.Async.cs │ │ │ ├── DefaultOauthPolicy.Sync.cs │ │ │ ├── DefaultOauthPolicy.cs │ │ │ ├── DefaultPasswordGrantAuthenticationAttempt.cs │ │ │ ├── DefaultPasswordGrantAuthenticator.cs │ │ │ ├── DefaultPasswordGrantRequest.cs │ │ │ ├── DefaultPasswordGrantRequestBuilder.cs │ │ │ ├── DefaultRefreshGrantAuthenticationAttempt.cs │ │ │ ├── DefaultRefreshGrantAuthenticator.cs │ │ │ ├── DefaultRefreshGrantRequest.cs │ │ │ ├── DefaultRefreshGrantRequestBuilder.cs │ │ │ ├── DefaultRefreshToken.cs │ │ │ ├── IAccessTokenSync.cs │ │ │ ├── IGrantAuthenticationToken.cs │ │ │ ├── IIdSiteTokenAuthenticationAttempt.cs │ │ │ ├── IIdSiteTokenAuthenticatorSync.cs │ │ │ ├── IJwtAuthenticatorSync.cs │ │ │ ├── IOauthAuthenticatorSync.cs │ │ │ ├── IOauthGrantAuthenticationResultSync.cs │ │ │ ├── IOauthPolicySync.cs │ │ │ ├── IPasswordGrantAuthenticationAttempt.cs │ │ │ ├── IPasswordGrantAuthenticatorSync.cs │ │ │ ├── IRefreshGrantAuthenticationAttempt.cs │ │ │ ├── IRefreshGrantAuthenticatorSync.cs │ │ │ └── IRefreshTokenSync.cs │ │ ├── Organization │ │ │ ├── DefaultOrganization.AccountStore.cs │ │ │ ├── DefaultOrganization.AccountStoreSync.cs │ │ │ ├── DefaultOrganization.Collections.cs │ │ │ ├── DefaultOrganization.CreationActions.cs │ │ │ ├── DefaultOrganization.CreationActionsSync.cs │ │ │ ├── DefaultOrganization.cs │ │ │ ├── DefaultOrganizationAccountStoreMapping.cs │ │ │ ├── DefaultOrganizationCreationOptions.cs │ │ │ ├── IOrganizationAccountStoreMappingSync.cs │ │ │ └── IOrganizationSync.cs │ │ ├── Provider │ │ │ ├── AbstractCreateProviderRequestBuilder{T}.cs │ │ │ ├── AbstractProvider.cs │ │ │ ├── AbstractProviderAccountRequestBuilder{T}.cs │ │ │ ├── AbstractProviderData.cs │ │ │ ├── DefaultAdLdapProvider.cs │ │ │ ├── DefaultCreateProviderRequest.cs │ │ │ ├── DefaultFacebookAccountRequestBuilder.cs │ │ │ ├── DefaultFacebookCreateProviderRequestBuilder.cs │ │ │ ├── DefaultFacebookProvider.cs │ │ │ ├── DefaultFacebookProviderData.cs │ │ │ ├── DefaultFacebookRequestFactory.cs │ │ │ ├── DefaultGithubAccountRequestBuilder.cs │ │ │ ├── DefaultGithubCreateProviderRequestBuilder.cs │ │ │ ├── DefaultGithubProvider.cs │ │ │ ├── DefaultGithubProviderData.cs │ │ │ ├── DefaultGithubRequestFactory.cs │ │ │ ├── DefaultGoogleAccountRequestBuilder.cs │ │ │ ├── DefaultGoogleCreateProviderRequestBuilder.cs │ │ │ ├── DefaultGoogleProvider.cs │ │ │ ├── DefaultGoogleProviderData.cs │ │ │ ├── DefaultGoogleRequestFactory.cs │ │ │ ├── DefaultLinkedInAccountRequestBuilder.cs │ │ │ ├── DefaultLinkedInCreateProviderRequestBuilder.cs │ │ │ ├── DefaultLinkedInProvider.cs │ │ │ ├── DefaultLinkedInProviderData.cs │ │ │ ├── DefaultLinkedInRequestFactory.cs │ │ │ ├── DefaultOauth2Provider.cs │ │ │ ├── DefaultProvider.cs │ │ │ ├── DefaultProviderAccountAccess.cs │ │ │ ├── DefaultProviderAccountRequest.cs │ │ │ ├── DefaultProviderAccountResult.cs │ │ │ ├── DefaultProviderData.cs │ │ │ ├── DefaultProviderFactory.cs │ │ │ ├── DefaultSamlProvider.cs │ │ │ ├── DefaultTwitterProvider.cs │ │ │ ├── IProviderAccountAccess.cs │ │ │ ├── ProviderAccountResolver.cs │ │ │ ├── ProviderType.cs │ │ │ └── ProviderTypeConverter.cs │ │ ├── Resource │ │ │ ├── AbstractExtendableInstanceResource.cs │ │ │ ├── AbstractInstanceResource.cs │ │ │ ├── AbstractResource.cs │ │ │ ├── CollectionResponsePage{T}.cs │ │ │ ├── DefaultCreationOptions.cs │ │ │ ├── DefaultRetrievalOptions{T}.cs │ │ │ ├── ExpandedProperty.cs │ │ │ ├── IDeletableSync.cs │ │ │ ├── IEmbeddedProperty.cs │ │ │ ├── IExtendableSync.cs │ │ │ ├── IHasAsyncDataStoreInternal.cs │ │ │ ├── ILinkable.cs │ │ │ ├── INotifiable.cs │ │ │ ├── ISaveableSync{T}.cs │ │ │ ├── ISaveableWithOptionsSync{T}.cs │ │ │ ├── LinkProperty.cs │ │ │ └── ResourceData.cs │ │ ├── Saml │ │ │ ├── DefaultSamlAccountResult.cs │ │ │ ├── DefaultSamlAsyncCallbackHandler.cs │ │ │ ├── DefaultSamlIdpUrlBuilder.cs │ │ │ ├── DefaultSamlPolicy.cs │ │ │ ├── DefaultSamlServiceProvider.cs │ │ │ ├── DefaultSamlSyncCallbackHandler.cs │ │ │ ├── DefaultSsoInitiationEndpoint.cs │ │ │ ├── ISamlAccountResultSync.cs │ │ │ ├── ISamlPolicySync.cs │ │ │ ├── ISamlServiceProviderSync.cs │ │ │ ├── InlineSamlAsyncResultListener.cs │ │ │ ├── InlineSamlSyncResultListener.cs │ │ │ └── SamlClaims.cs │ │ ├── Serialization │ │ │ ├── DefaultSerializerFactory.cs │ │ │ ├── DefaultSerializerLoader.cs │ │ │ ├── FieldConverters │ │ │ │ ├── AbstractFieldConverter.cs │ │ │ │ ├── ExpandedPropertyConverter.cs │ │ │ │ ├── FieldConverterList.cs │ │ │ │ ├── FieldConverterResult.cs │ │ │ │ ├── FuncFieldConverter.cs │ │ │ │ └── LinkPropertyConverter.cs │ │ │ └── JsonSerializationProvider.cs │ │ ├── Tenant │ │ │ ├── DefaultTenant.Collections.cs │ │ │ ├── DefaultTenant.TenantActions.cs │ │ │ ├── DefaultTenant.TenantActionsSync.cs │ │ │ ├── DefaultTenant.cs │ │ │ ├── IHasTenantSync.cs │ │ │ ├── ITenantActionsSync.cs │ │ │ ├── ITenantSync.cs │ │ │ └── TenantActionsShared.cs │ │ └── Utility │ │ │ ├── AnonymousType.cs │ │ │ ├── Base64.cs │ │ │ ├── DefaultClock.cs │ │ │ ├── DurationVisitor.Api.cs │ │ │ ├── DurationVisitor.cs │ │ │ ├── HmacGenerator.cs │ │ │ ├── IClock.cs │ │ │ ├── IFile.cs │ │ │ ├── Iso8601.cs │ │ │ ├── Iso8601Duration.cs │ │ │ ├── PocoAdapter{T}.cs │ │ │ ├── PocoTypeLookup.cs │ │ │ ├── Properties.cs │ │ │ ├── TypeLoader.cs │ │ │ └── UnixDate.cs │ ├── Linq │ │ └── RetrievalOptionsExpandExtensions.cs │ ├── Oauth │ │ └── OauthRequests.cs │ ├── Organization │ │ └── OrganizationCreationOptionsBuilder.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Provider │ │ └── ClientProviderExtensions.cs │ ├── Serialization │ │ ├── SerializeFactoryAutodetectExtensions.cs │ │ └── Serializers.cs │ ├── Stormpath.SDK.Core.xproj │ ├── Sync │ │ ├── SyncAccessTokenExtensions.cs │ │ ├── SyncAccountCreationActionsExtensions.cs │ │ ├── SyncAccountExtensions.cs │ │ ├── SyncAccountResultExtensions.cs │ │ ├── SyncAccountStoreContainerExtensions.cs │ │ ├── SyncAccountStoreExtensions.cs │ │ ├── SyncAccountStoreMappingExtensions.cs │ │ ├── SyncApiKeyExtensions.cs │ │ ├── SyncApplicationExtensions.cs │ │ ├── SyncApplicationWebConfigExtensions.cs │ │ ├── SyncAuthenticationResultExtensions.cs │ │ ├── SyncChallengeCollectionExtensions.cs │ │ ├── SyncChallengeExtensions.cs │ │ ├── SyncClientExtensions.cs │ │ ├── SyncDataStoreExtensions.cs │ │ ├── SyncDirectoryExtensions.cs │ │ ├── SyncEmailVerificationRequestExtensions.cs │ │ ├── SyncExtendableExtensions.cs │ │ ├── SyncFactorCollectionExtensions.cs │ │ ├── SyncFactorExtensions.cs │ │ ├── SyncGroupCreationExtensions.cs │ │ ├── SyncGroupExtensions.cs │ │ ├── SyncGroupMembershipExtensions.cs │ │ ├── SyncHasTenantExtensions.cs │ │ ├── SyncIdSiteTokenAuthenticatorExtensions.cs │ │ ├── SyncJwtAuthenticatorExtensions.cs │ │ ├── SyncOauthGrantAuthenticationResult.cs │ │ ├── SyncOauthPolicyExtensions.cs │ │ ├── SyncOrganizationAccountStoreMappingExtensions.cs │ │ ├── SyncPasswordGrantAuthenticatorExtensions.cs │ │ ├── SyncPasswordPolicyExtensions.cs │ │ ├── SyncPasswordResetTokenExtensions.cs │ │ ├── SyncPhoneCollectionExtensions.cs │ │ ├── SyncPhoneExtensions.cs │ │ ├── SyncQueryableExtensions.cs │ │ ├── SyncRefreshGrantAuthenticatorExtensions.cs │ │ ├── SyncRefreshTokenExtensions.cs │ │ ├── SyncResourceExtensions.cs │ │ ├── SyncSamlAccountResultExtensions.cs │ │ ├── SyncSamlPolicyExtensions.cs │ │ ├── SyncSamlServiceProviderExtensions.cs │ │ ├── SyncSmsFactorExtensions.cs │ │ └── SyncTenantActionsExtensions.cs │ ├── TenantActionsCompatibilityExtensions.cs │ ├── TypeInfoAllMemberExtensions.cs │ └── project.json ├── Stormpath.SDK.Http.SystemNetHttpClient │ ├── .gitignore │ ├── Stormpath.SDK.Http.SystemNetHttpClient.xproj │ ├── SystemNetHttpAdapter.cs │ ├── SystemNetHttpClient.cs │ ├── SystemNetHttpClientFactoryExtensions.cs │ ├── SystemNetHttpResponse.cs │ └── project.json ├── Stormpath.SDK.JsonNetSerializer │ ├── JsonNetSerializer.cs │ ├── JsonNetSerializerFactoryExtensions.cs │ ├── Stormpath.SDK.JsonNetSerializer.xproj │ └── project.json └── Stormpath.SDK.RestSharpClient │ ├── RestSharpAdapter.cs │ ├── RestSharpClient.cs │ ├── RestSharpHttpClientFactoryExtensions.cs │ ├── RestSharpHttpResponse.cs │ ├── Stormpath.SDK.RestSharpClient.xproj │ └── project.json ├── test ├── Stormpath.SDK.Cache.Redis.Tests │ ├── AsyncTests.cs │ ├── RedisTestBase.cs │ ├── RedisTestCollection.cs │ ├── RedisTestFixture.cs │ ├── Sanity_tests.cs │ ├── Stormpath.SDK.Cache.Redis.Tests.xproj │ ├── SyncTests.cs │ ├── TestHelper.cs │ └── project.json ├── Stormpath.SDK.JsonNetSerializer.Tests │ ├── Deserialization_tests.cs │ ├── Serialization_tests.cs │ ├── Stormpath.SDK.JsonNetSerializer.Tests.xproj │ └── project.json ├── Stormpath.SDK.RestSharpClient.Tests │ ├── RestSharpAdapter_tests.cs │ ├── Stormpath.SDK.RestSharpClient.Tests.xproj │ └── project.json ├── Stormpath.SDK.Tests.Common │ ├── Assertly.cs │ ├── DebugOnlyFactAttribute.cs │ ├── DebugOnlyTheoryAttribute.cs │ ├── Delay.cs │ ├── Fakes │ │ ├── AbstractMockHttpClient.cs │ │ ├── FakeApiKey.cs │ │ ├── FakeHttpResponse.cs │ │ ├── FakeJson.cs │ │ ├── FakeUserAgentBuilder.cs │ │ ├── ResourceReturningHttpClient.cs │ │ ├── StubRequestExecutor.cs │ │ └── TestAccounts.cs │ ├── Integration │ │ ├── CreateSingleDirectoryFixture.cs │ │ ├── TestClientProvider.cs │ │ ├── TestClients.cs │ │ ├── TestDataGenerator.cs │ │ └── TestFixture.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── RandomData │ │ ├── RandomEmail.cs │ │ ├── RandomPassword.cs │ │ ├── RandomPassword_tests.cs │ │ └── RandomString.cs │ ├── SimplePoco.cs │ ├── StaticLogger.cs │ ├── Stormpath.SDK.Tests.Common.xproj │ ├── TestDataStore.cs │ └── project.json ├── Stormpath.SDK.Tests.CoreClr │ ├── Reflection.cs │ ├── Stormpath.SDK.Tests.CoreClr.xproj │ ├── Tenant.cs │ └── project.json ├── Stormpath.SDK.Tests.Integration.VB │ ├── Async │ │ ├── Account_tests.vb │ │ ├── ApiKey_tests.vb │ │ ├── Application_tests.vb │ │ ├── CustomData_embedded_tests.vb │ │ ├── CustomData_tests.vb │ │ ├── Directory_tests.vb │ │ ├── Entity_tests.vb │ │ ├── Error_tests.vb │ │ ├── Expansion_linq_tests.vb │ │ ├── Expansion_retrieval_tests.vb │ │ ├── Group_tests.vb │ │ ├── OauthPolicy_tests.vb │ │ ├── Oauth_tests.vb │ │ ├── Organization_tests.vb │ │ ├── Saml_tests.vb │ │ └── Tenant_tests.vb │ ├── IntegrationTestCollection.vb │ ├── Linq_test.vb │ ├── My Project │ │ ├── Application.Designer.vb │ │ ├── Application.myapp │ │ ├── AssemblyInfo.vb │ │ ├── Resources.Designer.vb │ │ ├── Resources.resx │ │ ├── Settings.Designer.vb │ │ └── Settings.settings │ ├── Stormpath.SDK.Tests.Integration.VB.vbproj │ ├── Sync │ │ ├── Account_tests.vb │ │ ├── ApiKey_tests.vb │ │ ├── Application_tests.vb │ │ ├── CustomData_embedded_tests.vb │ │ ├── CustomData_tests.vb │ │ ├── Directory_tests.vb │ │ ├── Entity_tests.vb │ │ ├── Error_tests.vb │ │ ├── Expansion_linq_tests.vb │ │ ├── Expansion_retrieval_tests.vb │ │ ├── Group_tests.vb │ │ ├── OauthPolicy_tests.vb │ │ ├── Oauth_tests.vb │ │ ├── Organization_tests.vb │ │ ├── Saml_tests.vb │ │ └── Tenant_tests.vb │ ├── app.config │ └── packages.config ├── Stormpath.SDK.Tests.Integration │ ├── Async │ │ ├── Account_tests.cs │ │ ├── ApiKey_tests.cs │ │ ├── Application_tests.cs │ │ ├── CustomData_embedded_tests.cs │ │ ├── CustomData_search_tests.cs │ │ ├── CustomData_tests.cs │ │ ├── Directory_tests.cs │ │ ├── Entity_tests.cs │ │ ├── Error_tests.cs │ │ ├── Expansion_linq_tests.cs │ │ ├── Expansion_retrieval_tests.cs │ │ ├── Group_tests.cs │ │ ├── OauthPolicy_tests.cs │ │ ├── Oauth_tests.cs │ │ ├── Organization_tests.cs │ │ ├── Saml_tests.cs │ │ └── Tenant_tests.cs │ ├── IntegrationTestCollection.cs │ ├── Sanity_tests.cs │ ├── Stormpath.SDK.Tests.Integration.xproj │ ├── Sync │ │ ├── Account_tests.cs │ │ ├── ApiKey_tests.cs │ │ ├── Application_tests.cs │ │ ├── CustomData_embedded_tests.cs │ │ ├── CustomData_search_tests.cs │ │ ├── CustomData_tests.cs │ │ ├── Directory_tests.cs │ │ ├── Entity_tests.cs │ │ ├── Error_tests.cs │ │ ├── Expansion_linq_tests.cs │ │ ├── Expansion_retrieval_tests.cs │ │ ├── Group_tests.cs │ │ ├── OauthPolicy_tests.cs │ │ ├── Oauth_tests.cs │ │ ├── Organization_tests.cs │ │ ├── Saml_tests.cs │ │ └── Tenant_tests.cs │ ├── project.json │ └── xunit.runner.json ├── Stormpath.SDK.Tests.Sanity │ ├── Api.cs │ ├── Helpers.cs │ ├── Integration.cs │ ├── Stormpath.SDK.Tests.Sanity.xproj │ ├── Stormpath.SDK.approved │ └── project.json ├── Stormpath.SDK.Tests.Unit │ ├── Oauth │ │ ├── ClientCredentialsGrantShould.cs │ │ ├── FactorChallengeRequestShould.cs │ │ ├── PasswordGrantRequestShould.cs │ │ ├── RefreshGrantRequestShould.cs │ │ ├── SocialGrantRequestShould.cs │ │ └── StormpathTokenGrantRequestShould.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Stormpath.SDK.Tests.Unit.xproj │ └── project.json ├── Stormpath.SDK.Tests.VB │ ├── My Project │ │ ├── Application.Designer.vb │ │ ├── Application.myapp │ │ ├── AssemblyInfo.vb │ │ ├── Resources.Designer.vb │ │ ├── Resources.resx │ │ ├── Settings.Designer.vb │ │ └── Settings.settings │ ├── Stormpath.SDK.Tests.VB.vbproj │ ├── User_agent_tests.vb │ ├── app.config │ └── packages.config ├── Stormpath.SDK.Tests │ ├── AbstractHttpClientBuilder_tests.cs │ ├── AbstractJsonSerializerBuilder_tests.cs │ ├── Authentication │ │ ├── BasicRequestAuthenticator_tests.cs │ │ ├── DefaultRequestAuthenticatorFactory_tests.cs │ │ └── SAuthc1RequestAuthenticator_tests.cs │ ├── BackoffStrategy_tests.cs │ ├── Cache │ │ ├── Async_caching_tests.cs │ │ ├── DefaultCacheResolver_tests.cs │ │ ├── InMemoryCacheProviderBuilder_tests.cs │ │ ├── InMemoryCache_tests.cs │ │ └── Sync_caching_tests.cs │ ├── CanonicalUri_tests.cs │ ├── ClientApiKey_tests.cs │ ├── CreationOptions_tests.cs │ ├── DefaultAccountResult_tests.cs │ ├── DefaultClientBuilder_tests.cs │ ├── DefaultCreationOptionsShould.cs │ ├── DefaultCustomData_persistence_tests.cs │ ├── DefaultCustomData_tests.cs │ ├── DefaultDataStore_tests.cs │ ├── DefaultHttpRequestBuilder_tests.cs │ ├── DefaultProviderAccountResult_tests.cs │ ├── DefaultRequestExecutor_tests.cs │ ├── DefaultResourceFactory_tests.cs │ ├── Entity_identity_map_tests.cs │ ├── Expansion_retrieval_options_tests.cs │ ├── Expansion_save_options_tests.cs │ ├── Extensions │ │ ├── Dictionary_TryGetValueAsString_tests.cs │ │ ├── Enumerable_IsNullOrEmpty_tests.cs │ │ └── String_Nullable_tests.cs │ ├── Fakes │ │ └── CollectionReturningHttpClient{T}.cs │ ├── FieldConverterList_tests.cs │ ├── FilterChain_tests.cs │ ├── FormUrlEncoder_tests.cs │ ├── GetProviderShould.cs │ ├── Helpers │ │ └── SerializableTimeSpan.cs │ ├── HttpHeaders_tests.cs │ ├── IdSite │ │ ├── CallbackHandlerTests.cs │ │ ├── DefaultIdSiteAsyncCallbackHandler_exception_tests.cs │ │ ├── DefaultIdSiteAsyncCallbackHandler_tests.cs │ │ ├── DefaultIdSiteSyncCallbackHandler_exception_tests.cs │ │ ├── DefaultIdSiteSyncCallbackHandler_tests.cs │ │ ├── DefaultIdSiteUrlBuilder_tests.cs │ │ ├── ExceptionTests.cs │ │ ├── InlineIdSiteAsyncResultListener_tests.cs │ │ └── InlineIdSiteSyncResultListener_tests.cs │ ├── IdentityMap │ │ ├── Multi_threaded_tests.cs │ │ ├── Single_threaded_tests.cs │ │ └── TestEntity.cs │ ├── Jwt │ │ ├── DefaultJwtClaimsBuilder_tests.cs │ │ ├── DefaultJwtParser_tests.cs │ │ ├── Jwt_tests.cs │ │ └── Local_validation_tests.cs │ ├── LinkProperty_tests.cs │ ├── Linq │ │ ├── AnyAsync_tests.cs │ │ ├── CollectionResourceQueryable_iteration_tests.cs │ │ ├── Complicated_tests.cs │ │ ├── CountAsync_tests.cs │ │ ├── Expand_extension_tests.cs │ │ ├── Expand_resource_tests.cs │ │ ├── Filter_extension_tests.cs │ │ ├── FirstAsync_tests.cs │ │ ├── FirstOrDefaultAsync_tests.cs │ │ ├── ForEachAsync_tests.cs │ │ ├── Linq_test{T}.cs │ │ ├── OrderBy_tests.cs │ │ ├── SingleAsync_tests.cs │ │ ├── SingleOrDefaultAsync_tests.cs │ │ ├── Skip_tests.cs │ │ ├── SyncAdapter_tests.cs │ │ ├── Sync_Any_tests.cs │ │ ├── Sync_AsEnumerable_tests.cs │ │ ├── Sync_Count_tests.cs │ │ ├── Sync_FirstOrDefault_tests.cs │ │ ├── Sync_First_tests.cs │ │ ├── Sync_SingleOrDefault_tests.cs │ │ ├── Sync_Single_tests.cs │ │ ├── Sync_ToList_tests.cs │ │ ├── Sync_expand_extension_tests.cs │ │ ├── Sync_foreach_tests.cs │ │ ├── Sync_unsupported_methods_tests.cs │ │ ├── Synchronously_extension_tests.cs │ │ ├── Take_tests.cs │ │ ├── ToArrayAsync_tests.cs │ │ ├── ToListAsync_tests.cs │ │ ├── Where_custom_data_tests.cs │ │ ├── Where_tests.cs │ │ └── Within_extension_tests.cs │ ├── LoggerExtensions_tests.cs │ ├── PasswordResetToken_tests.cs │ ├── QueryString_tests.cs │ ├── ResourceTypes_tests.cs │ ├── Saml │ │ └── DefaultSamlIdpUrlBuilder_tests.cs │ ├── ScopedClientBuilder_tests.cs │ ├── Stormpath.SDK.Tests.xproj │ ├── UriQualifier_tests.cs │ ├── UrlEncoding_tests.cs │ ├── User_agent_tests.cs │ ├── Utility │ │ ├── AnonymousType_tests.cs │ │ ├── Base64_tests.cs │ │ ├── ImmutableValueObject_tests.cs │ │ ├── Iso8601Duration_tests.cs │ │ ├── Iso8601_tests.cs │ │ ├── Properties_tests.cs │ │ └── UnixDate_tests.cs │ └── project.json ├── Stormpath.SDK.UAT.Net461 │ ├── Program.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Stormpath.SDK.UAT.Net461.xproj │ └── project.json └── Stormpath.SDK.UAT │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ ├── Stormpath.SDK.UAT.xproj │ └── project.json └── tools ├── Cake ├── Autofac.dll ├── Cake.Common.dll ├── Cake.Common.xml ├── Cake.Core.dll ├── Cake.Core.xml ├── Cake.NuGet.dll ├── Cake.NuGet.xml ├── Cake.exe ├── LICENSE ├── Mono.CSharp.dll ├── NuGet.Core.dll ├── Roslyn.Compilers.CSharp.dll └── Roslyn.Compilers.dll ├── packages.config └── packages.config.md5sum /CHANGELOG.MD: -------------------------------------------------------------------------------- 1 | ## Change Log ## 2 | 3 | ### 0.1.0-rc ## 4 | 5 | Notes: 6 | 7 | - Initial preview/release candidate. 8 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | version: 1.0.{build} 2 | build_script: 3 | - ps: ./build.ps1 4 | test_script: 5 | - ps: ./build.ps1 -Target Test 6 | artifacts: 7 | - path: artifacts/*.nupkg 8 | deploy: off 9 | on_success: 10 | - ps: ./script/BuildAndDeployDocs.ps1 -------------------------------------------------------------------------------- /doc/doc.content: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /doc/examples/DocExamples/Blog/IntroducingCsharpSdk.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Stormpath.SDK.Application; 6 | 7 | namespace Stormpath.SDK.DocExamples.Blogs 8 | { 9 | /// 10 | /// Code listings for https://stormpath.com/blog/introducing-csharp-sdk 11 | /// 12 | public class IntroducingCsharpSdk 13 | { 14 | private async Task LinqExample() 15 | { 16 | IApplication myApp = null; 17 | 18 | #region code 19 | 20 | var newUsersThisMonthNamedSkywalker = await myApp.GetAccounts() 21 | .Where(x => x.Surname == "Skywalker" && x.CreatedAt.Within(2015, 09)) 22 | .OrderBy(x => x.Email) 23 | .Take(10) 24 | .ToListAsync(); 25 | 26 | #endregion 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /doc/examples/DocExamples/ConsoleQuickstartExamples.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System; 18 | using System.Collections.Generic; 19 | using System.Linq; 20 | using System.Threading.Tasks; 21 | 22 | namespace DocExamples 23 | { 24 | public class ConsoleQuickstartExamples 25 | { 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /doc/examples/DocExamples/CreationOptionsBuilderExamples.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK; 18 | using Stormpath.SDK.Account; 19 | 20 | namespace DocExamples 21 | { 22 | public class CreationOptionsBuilderExamples 23 | { 24 | private readonly AccountCreationOptionsBuilder builder = null; 25 | 26 | public void RequestCustomData() 27 | { 28 | #region RequestCustomData 29 | builder.ResponseOptions.Expand(x => x.GetCustomData()); 30 | #endregion 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /doc/examples/DocExamples/Stormpath.SDK.DocExamples.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0.24720 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | b23da7d8-6bfa-4106-9075-ce738a49c03a 10 | Stormpath.SDK.DocExamples 11 | .\obj 12 | .\bin\ 13 | 14 | 15 | 2.0 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /doc/examples/DocExamples/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "authors": [ "Nate Barbettini", "Contributors" ], 3 | "copyright": "(c) 2016 Stormpath, Inc.", 4 | "dependencies": { 5 | "Stormpath.SDK.Cache.Redis": { 6 | "target": "project", 7 | "version": "0.9.1" 8 | }, 9 | "Stormpath.SDK.Core": { 10 | "target": "project", 11 | "version": "0.91.0" 12 | }, 13 | "Stormpath.SDK.JsonNetSerializer": { 14 | "target": "project", 15 | "version": "0.91.0" 16 | }, 17 | "Stormpath.SDK.RestSharpClient": { 18 | "target": "project", 19 | "version": "0.91.0" 20 | } 21 | }, 22 | "description": "Documentation examples for the Stormpath .NET SDK.", 23 | "frameworks": { 24 | "net451": { } 25 | }, 26 | "packOptions": { 27 | "licenseUrl": "https://github.com/stormpath/stormpath-sdk-dotnet/blob/master/LICENSE", 28 | "owners": [ "Stormpath, Inc." ], 29 | "projectUrl": "https://github.com/stormpath/stormpath-sdk-dotnet", 30 | "repository": { 31 | "url": "https://github.com/stormpath/stormpath-sdk-dotnet" 32 | } 33 | }, 34 | "title": "Stormpath.SDK.DocExamples", 35 | "tooling": { 36 | "defaultNamespace": "DocExamples" 37 | }, 38 | "version": "0.91.0" 39 | } 40 | -------------------------------------------------------------------------------- /doc/examples/DocExamplesVB/My Project/Application.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | -------------------------------------------------------------------------------- /doc/examples/DocExamplesVB/My Project/Application.myapp: -------------------------------------------------------------------------------- 1 |  2 | 3 | false 4 | false 5 | 0 6 | true 7 | 0 8 | 1 9 | true 10 | 11 | -------------------------------------------------------------------------------- /doc/examples/DocExamplesVB/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.Reflection 3 | Imports System.Runtime.InteropServices 4 | 5 | ' General Information about an assembly is controlled through the following 6 | ' set of attributes. Change these attribute values to modify the information 7 | ' associated with an assembly. 8 | 9 | ' Review the values of the assembly attributes 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 'The following GUID is for the ID of the typelib if this project is exposed to COM 21 | 22 | 23 | ' Version information for an assembly consists of the following four values: 24 | ' 25 | ' Major Version 26 | ' Minor Version 27 | ' Build Number 28 | ' Revision 29 | ' 30 | ' You can specify all the values or you can default the Build and Revision Numbers 31 | ' by using the '*' as shown below: 32 | ' 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /doc/examples/DocExamplesVB/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /doc/examples/DocExamplesVB/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /doc/proxy/Stormpath.SDK.Abstractions/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | [assembly: AssemblyTitle("Stormpath.SDK.Abstractions")] 4 | [assembly: AssemblyDescription("Abstractions for the Stormpath .NET SDK.")] 5 | [assembly: AssemblyCompany("Stormpath, Inc.")] 6 | [assembly: AssemblyCopyright("(c) 2016 Stormpath, Inc.")] 7 | [assembly: AssemblyVersion("0.95.0")] 8 | [assembly: AssemblyFileVersion("0.95.0")] 9 | 10 | -------------------------------------------------------------------------------- /doc/proxy/Stormpath.SDK.Abstractions/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /doc/proxy/Stormpath.SDK/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | [assembly: AssemblyTitle("Stormpath.SDK.Core")] 4 | [assembly: AssemblyDescription("The official Stormpath SDK for .NET. Don't install this package directly; install the Stormpath.SDK package unless you are bringing your own JSON serializer and HTTP client plugins.")] 5 | [assembly: AssemblyCompany("Stormpath, Inc.")] 6 | [assembly: AssemblyCopyright("(c) 2016 Stormpath, Inc.")] 7 | [assembly: AssemblyVersion("0.95.0")] 8 | [assembly: AssemblyFileVersion("0.95.0")] 9 | 10 | -------------------------------------------------------------------------------- /doc/proxy/Stormpath.SDK/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "projects": [ "src", "test", "doc/examples" ], 3 | "sdk": { 4 | "version": "1.0.0-preview2-1-003177" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-dotnet/8ed3ee1644036873c44844cf5da94d66f73de9fe/icon.png -------------------------------------------------------------------------------- /nuget.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /pack.cmd: -------------------------------------------------------------------------------- 1 | nuget pack Stormpath.SDK.nuspec -Exclude **\* -------------------------------------------------------------------------------- /script/add-gtm.ps1: -------------------------------------------------------------------------------- 1 | Function InsertAfterString 2 | { 3 | param([string]$text, [string]$find, [string]$insert) 4 | 5 | $start = $text.IndexOf($find) + $find.length 6 | $beginning = $text.Substring(0, $start) 7 | $end = $text.Substring($start) 8 | return -join($beginning, $insert, $end) 9 | } 10 | 11 | Function InsertGTM 12 | { 13 | param ($file) 14 | 15 | $input = Get-Content $file -Raw 16 | $output = InsertAfterString $input "" "" 17 | $output = InsertAfterString $output "" "" 18 | Set-Content $file -Value $output -Encoding UTF8 19 | } -------------------------------------------------------------------------------- /script/prep-documentation.ps1: -------------------------------------------------------------------------------- 1 | $exitCode = 0 2 | 3 | Write-Host "Generating proxy .csproj files..." 4 | 5 | # Import proxy generation functions 6 | . ("{0}\doc-proxy-functions.ps1" -f $PSScriptRoot) 7 | 8 | $root = (Get-Item $PSScriptRoot).Parent.FullName 9 | 10 | try 11 | { 12 | Generate-Documentation-Proxy "$($root)\doc\proxy\Stormpath.SDK.Abstractions\Stormpath.SDK.Abstractions.csproj" "$($root)\src\Stormpath.SDK.Abstractions" 13 | Generate-AssemblyInfo "$($root)\doc\proxy\Stormpath.SDK.Abstractions\Properties\AssemblyInfo.cs" "$($root)\src\Stormpath.SDK.Abstractions\project.json" 14 | 15 | Generate-Documentation-Proxy "$($root)\doc\proxy\Stormpath.SDK\Stormpath.SDK.csproj" "$($root)\src\Stormpath.SDK.Core" 16 | Generate-AssemblyInfo "$($root)\doc\proxy\Stormpath.SDK\Properties\AssemblyInfo.cs" "$($root)\src\Stormpath.SDK.Core\project.json" 17 | } 18 | catch 19 | { 20 | $exitCode = 1 21 | throw 22 | } 23 | 24 | Write-Host "Documentation is ready to compile!" 25 | 26 | return $exitCode 27 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Account/ChallengeCreationOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Account 2 | { 3 | /// 4 | /// Defines the options available when creating a Challenge. 5 | /// 6 | public sealed class ChallengeCreationOptions 7 | { 8 | /// 9 | /// Gets or sets the optional message used for the challenge. 10 | /// 11 | /// The message used for the challenge, or . 12 | public string Message { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Account/IChallengeCollection.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | using System.Threading.Tasks; 3 | using Stormpath.SDK.Linq; 4 | 5 | namespace Stormpath.SDK.Account 6 | { 7 | /// 8 | /// Represents a collection of Factors. 9 | /// 10 | public interface IChallengeCollection : IAsyncQueryable 11 | { 12 | /// 13 | /// Adds a new challenge with the default options. 14 | /// 15 | /// The cancellation token. 16 | /// The newly-created challenge. 17 | Task AddAsync(CancellationToken cancellationToken = default(CancellationToken)); 18 | 19 | /// 20 | /// Adds a new challenge. 21 | /// 22 | /// The challenge options. 23 | /// The cancellation token. 24 | /// The newly-created challenge. 25 | Task AddAsync( 26 | ChallengeCreationOptions options, 27 | CancellationToken cancellationToken = default(CancellationToken)); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Account/IGoogleAuthenticatorFactor.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Account 2 | { 3 | /// 4 | /// A Google Authenticator (TOTP-based) Factor. 5 | /// 6 | public interface IGoogleAuthenticatorFactor : IFactor 7 | { 8 | /// 9 | /// Gets or sets the account name. 10 | /// 11 | /// The account name. 12 | string AccountName { get; set; } 13 | 14 | /// 15 | /// Gets or sets the issuer name. 16 | /// 17 | /// The issuer name. 18 | string Issuer { get; set; } 19 | 20 | /// 21 | /// Gets the TOTP secret. 22 | /// 23 | /// The TOTP secret. 24 | string Secret { get; } 25 | 26 | /// 27 | /// Gets the TOTP key URI. 28 | /// 29 | /// The TOTP key URI. 30 | string KeyUri { get; } 31 | 32 | /// 33 | /// Gets the TOTP QR image as a base64-encoded string. 34 | /// 35 | /// The QR image as a base64-encoded string. 36 | string Base64QrImage { get; } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Account/IPhoneCollection.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | using System.Threading.Tasks; 3 | using Stormpath.SDK.Linq; 4 | 5 | namespace Stormpath.SDK.Account 6 | { 7 | /// 8 | /// Represents a collection of Phones. 9 | /// 10 | public interface IPhoneCollection : IAsyncQueryable 11 | { 12 | /// 13 | /// Adds a new phone. 14 | /// 15 | /// The phone number. 16 | /// The cancellation token. 17 | /// The new Phone. 18 | Task AddAsync(string number, CancellationToken cancellationToken = default(CancellationToken)); 19 | 20 | /// 21 | /// Adds a new phone with the specified options. 22 | /// 23 | /// The phone creation options. 24 | /// The cancellation token. 25 | /// The new Phone. 26 | Task AddAsync(PhoneCreationOptions options, CancellationToken cancellationToken = default(CancellationToken)); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Account/ISmsFactor.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | using System.Threading.Tasks; 3 | 4 | namespace Stormpath.SDK.Account 5 | { 6 | /// 7 | /// A SMS Factor. 8 | /// 9 | public interface ISmsFactor : IFactor 10 | { 11 | /// 12 | /// Gets the Phone associated with this factor. 13 | /// 14 | /// The cancellation token. 15 | /// The Phone associated with this factor. 16 | Task GetPhoneAsync(CancellationToken cancellationToken = default(CancellationToken)); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Account/SmsFactorCreationOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Account 2 | { 3 | /// 4 | /// Defines the options available when creating an SMS Factor. 5 | /// 6 | public sealed class SmsFactorCreationOptions 7 | { 8 | /// 9 | /// Gets or sets whether to challenge this factor immediately. 10 | /// 11 | /// If , the factor will be challenged immediately. 12 | /// Whether to challenge this factor immediately. 13 | public bool Challenge { get; set; } = false; 14 | 15 | /// 16 | /// Gets or sets the phone number to use for the factor. 17 | /// 18 | /// The phone number to use for the factor. 19 | public string Number { get; set; } 20 | 21 | /// 22 | /// Gets or sets the factor status. 23 | /// 24 | /// The factor status. 25 | public FactorStatus Status { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Application/IApplicationWebChangePasswordConfiguration.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Application 2 | { 3 | public interface IApplicationWebChangePasswordConfiguration 4 | { 5 | bool? Enabled { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Application/IApplicationWebConfiguration.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | using System.Threading.Tasks; 3 | using Stormpath.SDK.Api; 4 | using Stormpath.SDK.Resource; 5 | using Stormpath.SDK.Tenant; 6 | 7 | namespace Stormpath.SDK.Application 8 | { 9 | public interface IApplicationWebConfiguration : IResource, IHasTenant, IAuditable 10 | { 11 | IApplicationWebChangePasswordConfiguration ChangePassword { get; } 12 | 13 | string DnsLabel { get; } 14 | 15 | string DomainName { get; } 16 | 17 | IApplicationWebForgotPasswordConfiguration ForgotPassword { get; } 18 | 19 | IApplicationWebLoginConfiguration Login { get; } 20 | 21 | IApplicationWebMeConfiguration Me { get; } 22 | 23 | IApplicationWebOauth2Configuration Oauth2 { get; } 24 | 25 | IApplicationWebRegisterConfiguration Register { get; } 26 | 27 | //IApiKey SigningApiKey { set; } 28 | 29 | ClientApiStatus Status { get; } 30 | 31 | IApplicationWebVerifyEmailConfiguration VerifyEmail { get; } 32 | 33 | Task GetSigningApiKeyAsync(CancellationToken cancellationToken = default(CancellationToken)); 34 | 35 | Task GetApplicationAsync(CancellationToken cancellationToken = default(CancellationToken)); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Application/IApplicationWebForgotPasswordConfiguration.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Application 2 | { 3 | public interface IApplicationWebForgotPasswordConfiguration 4 | { 5 | bool? Enabled { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Application/IApplicationWebLoginConfiguration.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Application 2 | { 3 | public interface IApplicationWebLoginConfiguration 4 | { 5 | bool? Enabled { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Application/IApplicationWebMeConfiguration.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Application 2 | { 3 | public interface IApplicationWebMeConfiguration 4 | { 5 | bool? Enabled { get; } 6 | 7 | IApplicationWebMeExpandConfiguration Expand { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Application/IApplicationWebMeExpandConfiguration.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Application 2 | { 3 | public interface IApplicationWebMeExpandConfiguration 4 | { 5 | bool? ApiKeys { get; } 6 | 7 | bool? Applications { get; } 8 | 9 | bool? CustomData { get; } 10 | 11 | bool? Directory { get; } 12 | 13 | bool? GroupMemberships { get; } 14 | 15 | bool? Groups { get; } 16 | 17 | bool? ProviderData { get; } 18 | 19 | bool? Tenant { get; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Application/IApplicationWebOauth2Configuration.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Application 2 | { 3 | public interface IApplicationWebOauth2Configuration 4 | { 5 | bool? Enabled { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Application/IApplicationWebRegisterConfiguration.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Application 2 | { 3 | public interface IApplicationWebRegisterConfiguration 4 | { 5 | bool? Enabled { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Application/IApplicationWebVerifyEmailConfiguration.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Application 2 | { 3 | public interface IApplicationWebVerifyEmailConfiguration 4 | { 5 | bool? Enabled { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Group/IGroupCreationOptions.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Resource; 18 | 19 | namespace Stormpath.SDK.Group 20 | { 21 | /// 22 | /// Represents options for an Group creation request. 23 | /// 24 | public interface IGroupCreationOptions : ICreationOptions 25 | { 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Http/IHttpClientFactory.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Http 18 | { 19 | /// 20 | /// Represents a factory that can create HTTP client builders. HTTP client plugins can use extension methods to add additional options to this interface. 21 | /// 22 | /// 23 | /// 24 | /// 25 | public interface IHttpClientFactory 26 | { 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Http/ISynchronousHttpClient.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Http 18 | { 19 | /// 20 | /// An HTTP client that can execute synchronous requests. 21 | /// 22 | public interface ISynchronousHttpClient : IHttpClient 23 | { 24 | /// 25 | /// Executes an HTTP request synchronously. 26 | /// 27 | /// The HTTP request. 28 | /// The HTTP response. 29 | IHttpResponse Execute(IHttpRequest request); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/IdSite/INonce.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Resource; 18 | 19 | namespace Stormpath.SDK.IdSite 20 | { 21 | /// 22 | /// A cryptographic nonce representation for values that cannot be 23 | /// used more than once. 24 | /// 25 | public interface INonce : IResource 26 | { 27 | /// 28 | /// Gets the value of this nonce. 29 | /// 30 | /// The value of this instance. 31 | string Value { get; } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Linq/Expandables/IExpandableCustomData.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.CustomData; 18 | 19 | namespace Stormpath.SDK.Linq.Expandables 20 | { 21 | /// 22 | /// Represents an expandable Custom Data resource. 23 | /// 24 | public interface IExpandableCustomData 25 | { 26 | /// 27 | /// Expands the customData resource. 28 | /// 29 | /// Not applicable. 30 | ICustomData GetCustomData(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Linq/Expandables/IExpandableDirectory.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Directory; 18 | 19 | namespace Stormpath.SDK.Linq.Expandables 20 | { 21 | /// 22 | /// Represents an expandable Directory resource. 23 | /// 24 | public interface IExpandableDirectory 25 | { 26 | /// 27 | /// Expands the directory resource. 28 | /// 29 | /// Not applicable. 30 | IDirectory GetDirectory(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Linq/Expandables/IExpandableTenant.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Tenant; 18 | 19 | namespace Stormpath.SDK.Linq.Expandables 20 | { 21 | /// 22 | /// Represents an expandable Tenant resource. 23 | /// 24 | public interface IExpandableTenant 25 | { 26 | /// 27 | /// Expands the tenant resource. 28 | /// 29 | /// Not applicable. 30 | ITenant GetTenant(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Linq/Expandables/IPhoneExpandables.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Account; 18 | 19 | namespace Stormpath.SDK.Linq.Expandables 20 | { 21 | /// 22 | /// Represents resources that can be expanded from a Phone. 23 | /// 24 | public interface IPhoneExpandables 25 | { 26 | /// 27 | /// Expands the account resource. 28 | /// 29 | /// Not applicable. 30 | IAccount Account { get; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Linq/Expandables/ISmsFactorExpandables.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Account; 18 | 19 | namespace Stormpath.SDK.Linq.Expandables 20 | { 21 | /// 22 | /// Represents resources that can be expanded from a SMS Factor. 23 | /// 24 | public interface ISmsFactorExpandables : IFactorExpandables 25 | { 26 | /// 27 | /// Expands the phone resource. 28 | /// 29 | /// Not applicable. 30 | IPhone Phone { get; } 31 | } 32 | } -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Linq/IOrderedAsyncQueryable{T}.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Linq 18 | { 19 | /// 20 | /// Represents an ordered collection of items in a data source that can be queried asynchronously. 21 | /// 22 | /// The type of elements in the collection. 23 | public interface IOrderedAsyncQueryable : IAsyncQueryable 24 | { 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Logging/ILogger.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Logging 18 | { 19 | /// 20 | /// A wrapper interface for logger plugins. 21 | /// 22 | public interface ILogger 23 | { 24 | /// 25 | /// Send the specified log entry to the logger. 26 | /// 27 | /// The log entry. 28 | void Log(LogEntry entry); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Oauth/AbstractOauthGrantRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Oauth 2 | { 3 | public abstract class AbstractOauthGrantRequest 4 | { 5 | protected AbstractOauthGrantRequest(string grantType) 6 | { 7 | GrantType = grantType; 8 | } 9 | 10 | [SerializedProperty(Name="grant_type")] 11 | internal string GrantType { get; } 12 | 13 | [SerializedProperty(Name="accountStore")] 14 | public string AccountStoreHref { get; set; } 15 | 16 | [SerializedProperty(Name="organizationNameKey")] 17 | public string OrganizationNameKey { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Oauth/ClientCredentialsGrantRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Oauth 2 | { 3 | /// 4 | /// A request to exchange a client ID and secret for an OAuth 2.0 access token. 5 | /// 6 | public sealed class ClientCredentialsGrantRequest : AbstractOauthGrantRequest 7 | { 8 | /// 9 | /// Creates a new instance. 10 | /// 11 | public ClientCredentialsGrantRequest() 12 | : base("client_credentials") 13 | { 14 | } 15 | 16 | /// 17 | /// Gets or sets the client ID. 18 | /// 19 | /// The client ID. 20 | [SerializedProperty(Name="client_id")] 21 | public string Id { get; set; } 22 | 23 | /// 24 | /// Gets or sets the client secret. 25 | /// 26 | /// The client secret. 27 | [SerializedProperty(Name="client_secret")] 28 | public string Secret { get; set; } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Oauth/FactorChallengeRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Oauth 2 | { 3 | /// 4 | /// A request to exchange a Factor Challenge code for an OAuth 2.0 access token. 5 | /// 6 | public sealed class FactorChallengeRequest : AbstractOauthGrantRequest 7 | { 8 | /// 9 | /// Creates a new instance. 10 | /// 11 | public FactorChallengeRequest() 12 | : base("stormpath_factor_challenge") 13 | { 14 | } 15 | 16 | /// 17 | /// Gets or sets the Challenge href. 18 | /// 19 | /// The Challenge href. 20 | [SerializedProperty(Name="challenge")] 21 | public string ChallengeHref { get; set; } 22 | 23 | /// 24 | /// Gets or sets the code. 25 | /// 26 | /// The code. 27 | public string Code { get; set; } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Oauth/IOauthGrantRequest.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Oauth 18 | { 19 | /// 20 | /// Represents an OAuth 2.0 Grant Request. 21 | /// 22 | public interface IOauthGrantRequest 23 | { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Oauth/PasswordGrantRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Oauth 2 | { 3 | /// 4 | /// A request to exchange a username and password for an OAuth 2.0 access token. 5 | /// 6 | public sealed class PasswordGrantRequest : AbstractOauthGrantRequest 7 | { 8 | /// 9 | /// Creates a new instance. 10 | /// 11 | public PasswordGrantRequest() 12 | : base("password") 13 | { 14 | } 15 | 16 | /// 17 | /// Gets or sets the username. 18 | /// 19 | /// The username. 20 | public string Username { get; set; } 21 | 22 | /// 23 | /// Gets or sets the user's password. 24 | /// 25 | /// The user's password. 26 | public string Password { get; set; } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Oauth/RefreshGrantRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Oauth 2 | { 3 | /// 4 | /// A request to exchange a refresh token for an OAuth 2.0 access token. 5 | /// 6 | public sealed class RefreshGrantRequest : AbstractOauthGrantRequest 7 | { 8 | /// 9 | /// Creates a new instance. 10 | /// 11 | public RefreshGrantRequest() 12 | : base("refresh_token") 13 | { 14 | } 15 | 16 | /// 17 | /// Gets or sets the refresh token string. 18 | /// 19 | /// The refresh token string. 20 | [SerializedProperty(Name="refresh_token")] 21 | public string RefreshToken { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Oauth/StormpathTokenGrantRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Oauth 2 | { 3 | /// 4 | /// A request to exchange a Stormpath assertion token for an OAuth 2.0 access token. 5 | /// 6 | public sealed class StormpathTokenGrantRequest : AbstractOauthGrantRequest 7 | { 8 | public StormpathTokenGrantRequest() 9 | : base("stormpath_token") 10 | { 11 | } 12 | 13 | /// 14 | /// Gets or sets the token. 15 | /// 16 | /// The token. 17 | public string Token { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/IAdLdapProvider.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// AD/LDAP Provider Resource. 21 | /// 22 | public interface IAdLdapProvider : IProvider 23 | { 24 | // TODO Agent 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/IFacebookAccountRequestBuilder.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// Facebook-specific interface. 21 | /// 22 | public interface IFacebookAccountRequestBuilder : IProviderAccountRequestBuilder 23 | { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/IFacebookCreateProviderRequestBuilder.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// Facebook-specific interface. 21 | /// 22 | public interface IFacebookCreateProviderRequestBuilder : ICreateProviderRequestBuilder 23 | { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/IFacebookProviderData.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// Facebook-specific Resource. 21 | /// 22 | public interface IFacebookProviderData : IProviderData 23 | { 24 | /// 25 | /// Gets the Facebook authorization code. 26 | /// 27 | /// The Facebook authorization code. 28 | string AccessToken { get; } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/IFacebookRequestFactory.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// Facebook-specific interface. 21 | /// 22 | public interface IFacebookRequestFactory : IProviderRequestFactory 23 | { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/IGithubAccountRequestBuilder.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// Github-specific interface. 21 | /// 22 | public interface IGithubAccountRequestBuilder : IProviderAccountRequestBuilder 23 | { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/IGithubCreateProviderRequestBuilder.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// Github-specific interface. 21 | /// 22 | public interface IGithubCreateProviderRequestBuilder : ICreateProviderRequestBuilder 23 | { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/IGithubProviderData.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// Github-specific Resource. 21 | /// 22 | public interface IGithubProviderData : IProviderData 23 | { 24 | /// 25 | /// Gets the Github authorization code. 26 | /// 27 | /// The Github authorization code. 28 | string AccessToken { get; } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/IGithubRequestFactory.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// Github-specific interface. 21 | /// 22 | public interface IGithubRequestFactory : IProviderRequestFactory 23 | { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/IGoogleRequestFactory.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// Google-specific interface. 21 | /// 22 | public interface IGoogleRequestFactory : IProviderRequestFactory 23 | { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/ILinkedInAccountRequestBuilder.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// LinkedIn-specific interface. 21 | /// 22 | public interface ILinkedInAccountRequestBuilder : IProviderAccountRequestBuilder 23 | { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/ILinkedInCreateProviderRequestBuilder.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// LinkedIn-specific interface. 21 | /// 22 | public interface ILinkedInCreateProviderRequestBuilder : ICreateProviderRequestBuilder 23 | { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/ILinkedInProviderData.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// LinkedIn-specific Resource. 21 | /// 22 | public interface ILinkedInProviderData : IProviderData 23 | { 24 | /// 25 | /// Gets the LinkedIn authorization code. 26 | /// 27 | /// The LinkedIn authorization code. 28 | string AccessToken { get; } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Provider/ILinkedInRequestFactory.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Provider 18 | { 19 | /// 20 | /// LinkedIn-specific interface. 21 | /// 22 | public interface ILinkedInRequestFactory : IProviderRequestFactory 23 | { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Resource/AbstractEnumProperty.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Shared; 2 | 3 | namespace Stormpath.SDK.Resource 4 | { 5 | /// 6 | /// Defines a resource property that is a string-based enumeration. 7 | /// 8 | public abstract class AbstractEnumProperty : StringEnumeration 9 | { 10 | /// 11 | /// Creates a new instance. 12 | /// 13 | /// The value to use. 14 | protected AbstractEnumProperty(string value) 15 | : base(value) 16 | { 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Resource/ICreationOptions.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Resource 18 | { 19 | /// 20 | /// Base interface for creation request options objects. 21 | /// 22 | public interface ICreationOptions 23 | { 24 | /// 25 | /// Retrieves the query string arguments represented by this option configuration. 26 | /// 27 | /// The query string equivalent of this options instance. 28 | string GetQueryString(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Resource/IRetrievalOptions{T}.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Resource 18 | { 19 | /// 20 | /// Base interface for retrieval request options objects. 21 | /// 22 | /// The resource type being retrieved. 23 | public interface IRetrievalOptions : ICreationOptions 24 | { 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Saml/ISsoInitiationEndpoint.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Resource; 18 | 19 | namespace Stormpath.SDK.Saml 20 | { 21 | /// 22 | /// Represents an endpoint that can initiate SAML Single Sign-On. 23 | /// 24 | public interface ISsoInitiationEndpoint : IResource 25 | { 26 | } 27 | } -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Serialization/ISerializerBuilder.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Serialization 18 | { 19 | /// 20 | /// Builder pattern for instances. 21 | /// 22 | public interface ISerializerBuilder 23 | { 24 | /// 25 | /// Builds a new from the current builder state. 26 | /// 27 | /// A new instance. 28 | IJsonSerializer Build(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/SerializedPropertyAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Stormpath.SDK 4 | { 5 | /// 6 | /// Allows customization of serialized properties. 7 | /// 8 | /// A thin replacement for DataMemberAttribute. This may be replaced in a future version. 9 | /// TODO: Move this to Core/Impl 10 | [AttributeUsage(AttributeTargets.Property)] 11 | public sealed class SerializedPropertyAttribute : Attribute 12 | { 13 | public string Name { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Abstractions/Stormpath.SDK.Abstractions.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0.24720 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | 058befd7-b2d8-424a-acd1-686b529473fa 10 | Stormpath.SDK 11 | .\obj 12 | .\bin\ 13 | 14 | 15 | 2.0 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Cache.Redis/Constants.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.Serialization.Formatters; 2 | using Newtonsoft.Json; 3 | 4 | namespace Stormpath.SDK.Redis 5 | { 6 | internal static class Constants 7 | { 8 | public static readonly JsonSerializerSettings SerializerSettings = new JsonSerializerSettings 9 | { 10 | DateParseHandling = DateParseHandling.DateTimeOffset, 11 | DateTimeZoneHandling = DateTimeZoneHandling.Utc, 12 | TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple, 13 | TypeNameHandling = TypeNameHandling.All 14 | }; 15 | } 16 | } -------------------------------------------------------------------------------- /src/Stormpath.SDK.Cache.Redis/Stormpath.SDK.Cache.Redis.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0.24720 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | f229bb90-7233-4fa6-bcab-8e369a0b89f9 10 | Stormpath.SDK.Redis 11 | .\obj 12 | .\bin\ 13 | 14 | 15 | 2.0 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Account/ChallengeSubmitData.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Impl.Account 2 | { 3 | internal sealed class ChallengeSubmitData 4 | { 5 | public string Code { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Account/DefaultChallenge.Sync.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Account; 2 | 3 | namespace Stormpath.SDK.Impl.Account 4 | { 5 | internal sealed partial class DefaultChallenge 6 | { 7 | public IAccount GetAccount() 8 | => GetInternalSyncDataStore().GetResource(GetLinkProperty(AccountPropertyName).Href); 9 | 10 | public IFactor GetFactor() 11 | => GetInternalSyncDataStore().GetResource( 12 | GetLinkProperty(FactorPropertyName).Href); 13 | 14 | public IChallenge Submit(string code) 15 | => GetInternalSyncDataStore().Create( 16 | InternalHref, 17 | new ChallengeSubmitData 18 | { 19 | Code = code 20 | }); 21 | 22 | public bool Validate(string code) 23 | { 24 | Submit(code); 25 | return Status == ChallengeStatus.Success; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Account/DefaultFactor.Sync.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Account; 2 | 3 | namespace Stormpath.SDK.Impl.Account 4 | { 5 | internal partial class DefaultFactor 6 | { 7 | public IAccount GetAccount() 8 | => GetInternalSyncDataStore().GetResource( 9 | GetLinkProperty(AccountPropertyName).Href); 10 | 11 | public IChallenge GetMostRecentChallenge() 12 | { 13 | var link = GetLinkProperty(MostRecentChallengePropertyName); 14 | 15 | return string.IsNullOrEmpty(link?.Href) 16 | ? null 17 | : GetInternalSyncDataStore().GetResource(link.Href); 18 | } 19 | 20 | public IFactor Save() => Save(); 21 | 22 | public bool Delete() => GetInternalSyncDataStore().Delete(this); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Account/DefaultSmsFactor.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | using System.Threading.Tasks; 3 | using Stormpath.SDK.Account; 4 | using Stormpath.SDK.Impl.Resource; 5 | 6 | namespace Stormpath.SDK.Impl.Account 7 | { 8 | internal sealed class DefaultSmsFactor : DefaultFactor, ISmsFactor, ISmsFactorSync 9 | { 10 | private const string PhonePropertyName = "phone"; 11 | 12 | public DefaultSmsFactor(ResourceData data) 13 | : base(data) 14 | { 15 | } 16 | 17 | public Task GetPhoneAsync(CancellationToken cancellationToken) 18 | => GetInternalAsyncDataStore().GetResourceAsync( 19 | GetLinkProperty(PhonePropertyName).Href, 20 | cancellationToken); 21 | 22 | public IPhone GetPhone() 23 | => GetInternalSyncDataStore().GetResource( 24 | GetLinkProperty(PhonePropertyName).Href); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Account/GoogleAuthenticatorFactorCreationData.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Account; 2 | 3 | namespace Stormpath.SDK.Impl.Account 4 | { 5 | internal sealed class GoogleAuthenticatorFactorCreationData 6 | { 7 | public string Type { get; } = "google-authenticator"; 8 | 9 | public string AccountName { get; set; } 10 | 11 | public string Issuer { get; set; } 12 | 13 | public FactorStatus Status { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Account/IAccountCreationActionsInternal.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System; 18 | using Stormpath.SDK.Impl.Resource; 19 | 20 | namespace Stormpath.SDK.Impl.Account 21 | { 22 | [Obsolete("Remove when refactoring for 1.0")] 23 | internal interface IAccountCreationActionsInternal : IHasAsyncDataStoreInternal 24 | { 25 | IEmbeddedProperty Accounts { get; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Account/IChallengeCollectionSync.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Account; 2 | 3 | namespace Stormpath.SDK.Impl.Account 4 | { 5 | /// 6 | /// Represents the synchronous actions that correspond to the default asynchronous actions 7 | /// available on the Challenge collection. 8 | /// 9 | internal interface IChallengeCollectionSync 10 | { 11 | /// 12 | /// Synchronous counterpart to . 13 | /// 14 | /// The newly-created challenge. 15 | IChallenge Add(); 16 | 17 | /// 18 | /// Synchronous counterpart to . 19 | /// 20 | /// The challenge options. 21 | /// The newly-created challenge. 22 | IChallenge Add(ChallengeCreationOptions options); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Account/IFactorCollectionSync.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Account; 2 | 3 | namespace Stormpath.SDK.Impl.Account 4 | { 5 | /// 6 | /// Represents the synchronous actions that correspond to the default asynchronous actions 7 | /// available on . 8 | /// 9 | internal interface IFactorCollectionSync 10 | { 11 | /// 12 | /// Adds a new SMS Factor. 13 | /// 14 | /// The options for the new factor. 15 | /// The new Factor. 16 | ISmsFactor Add(SmsFactorCreationOptions options); 17 | 18 | /// 19 | /// Adds a new Google Authenticator (TOTP-based) Factor. 20 | /// 21 | /// The options for the new factor. 22 | /// The new Factor. 23 | IGoogleAuthenticatorFactor Add(GoogleAuthenticatorFactorCreationOptions options); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Account/IFactorSync.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Account; 2 | using Stormpath.SDK.Impl.Resource; 3 | 4 | namespace Stormpath.SDK.Impl.Account 5 | { 6 | /// 7 | /// Represents the synchronous actions that correspond to the default asynchronous actions 8 | /// available on the Factor resource. 9 | /// 10 | internal interface IFactorSync : 11 | ISaveableSync, 12 | IDeletableSync 13 | { 14 | /// 15 | /// Synchronous counterpart to . 16 | /// 17 | /// The account. 18 | IAccount GetAccount(); 19 | 20 | /// 21 | /// Synchronous counterpart to . 22 | /// 23 | /// The most recent challenge, or . 24 | IChallenge GetMostRecentChallenge(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Account/IPhoneCollectionSync.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Account; 2 | 3 | namespace Stormpath.SDK.Impl.Account 4 | { 5 | internal interface IPhoneCollectionSync 6 | { 7 | /// 8 | /// Synchronous counterpart to 9 | /// 10 | /// The phone number. 11 | /// The new Phone. 12 | IPhone Add(string number); 13 | 14 | /// 15 | /// Synchronous counterpart to 16 | /// 17 | /// The phone creation options. 18 | /// The new Phone. 19 | IPhone Add(PhoneCreationOptions options); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Account/IPhoneSync.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Account; 2 | using Stormpath.SDK.Impl.Resource; 3 | 4 | namespace Stormpath.SDK.Impl.Account 5 | { 6 | internal interface IPhoneSync : 7 | IDeletableSync, 8 | ISaveableSync 9 | { 10 | /// 11 | /// Synchronous counterpart to 12 | /// 13 | /// The account. 14 | IAccount GetAccount(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Account/ISmsFactorSync.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Account; 2 | 3 | namespace Stormpath.SDK.Impl.Account 4 | { 5 | /// 6 | /// Represents the synchronous actions that correspond to the default asynchronous actions 7 | /// available on the SMS Factor resource. 8 | /// 9 | internal interface ISmsFactorSync 10 | { 11 | /// 12 | /// Synchronous counterpart to 13 | /// 14 | /// The Phone associated with this factor. 15 | IPhone GetPhone(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Account/SmsFactorCreationData.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Account; 2 | 3 | namespace Stormpath.SDK.Impl.Account 4 | { 5 | internal sealed class SmsFactorCreationData 6 | { 7 | public string Type { get; } = "SMS"; 8 | 9 | public SmsFactorCreationPhoneData Phone { get; set; } 10 | 11 | public FactorStatus Status { get; set; } 12 | } 13 | 14 | internal sealed class SmsFactorCreationPhoneData 15 | { 16 | public string Number { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/AccountStore/IAccountStoreSync.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Impl.Tenant; 18 | 19 | namespace Stormpath.SDK.Impl.AccountStore 20 | { 21 | /// 22 | /// Represents the synchronous actions that correspond to the default asynchronous actions 23 | /// available on . 24 | /// 25 | internal interface IAccountStoreSync : IHasTenantSync 26 | { 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Application/DefaultApplication.EmailVerification.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System.Threading; 18 | using System.Threading.Tasks; 19 | using Stormpath.SDK.Application; 20 | 21 | namespace Stormpath.SDK.Impl.Application 22 | { 23 | internal sealed partial class DefaultApplication 24 | { 25 | Task IApplication.SendVerificationEmailAsync(string usernameOrEmail, CancellationToken cancellationToken) 26 | => this.AsInterface.SendVerificationEmailAsync(request => request.Login = usernameOrEmail, cancellationToken); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Application/DefaultApplicationWebChangePasswordConfiguration.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Application; 2 | 3 | namespace Stormpath.SDK.Impl.Application 4 | { 5 | internal sealed class DefaultApplicationWebChangePasswordConfiguration : IApplicationWebChangePasswordConfiguration 6 | { 7 | public bool? Enabled { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Application/DefaultApplicationWebForgotPasswordConfiguration.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Application; 2 | 3 | namespace Stormpath.SDK.Impl.Application 4 | { 5 | internal sealed class DefaultApplicationWebForgotPasswordConfiguration : IApplicationWebForgotPasswordConfiguration 6 | { 7 | public bool? Enabled { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Application/DefaultApplicationWebLoginConfiguration.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Application; 2 | 3 | namespace Stormpath.SDK.Impl.Application 4 | { 5 | internal sealed class DefaultApplicationWebLoginConfiguration : IApplicationWebLoginConfiguration 6 | { 7 | public bool? Enabled { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Application/DefaultApplicationWebMeConfiguration.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Application; 2 | 3 | namespace Stormpath.SDK.Impl.Application 4 | { 5 | internal sealed class DefaultApplicationWebMeConfiguration : IApplicationWebMeConfiguration 6 | { 7 | public bool? Enabled { get; set; } 8 | 9 | public IApplicationWebMeExpandConfiguration Expand { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Application/DefaultApplicationWebMeExpandConfiguration.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Application; 2 | 3 | namespace Stormpath.SDK.Impl.Application 4 | { 5 | internal sealed class DefaultApplicationWebMeExpandConfiguration : IApplicationWebMeExpandConfiguration 6 | { 7 | public bool? ApiKeys { get; set; } 8 | public bool? Applications { get; set; } 9 | public bool? CustomData { get; set; } 10 | public bool? Directory { get; set; } 11 | public bool? GroupMemberships { get; set; } 12 | public bool? Groups { get; set; } 13 | public bool? ProviderData { get; set; } 14 | public bool? Tenant { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Application/DefaultApplicationWebOauth2Configuration.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Application; 2 | 3 | namespace Stormpath.SDK.Impl.Application 4 | { 5 | internal sealed class DefaultApplicationWebOauth2Configuration : IApplicationWebOauth2Configuration 6 | { 7 | public bool? Enabled { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Application/DefaultApplicationWebRegisterConfiguration.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Application; 2 | 3 | namespace Stormpath.SDK.Impl.Application 4 | { 5 | internal sealed class DefaultApplicationWebRegisterConfiguration : IApplicationWebRegisterConfiguration 6 | { 7 | public bool? Enabled { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Application/DefaultApplicationWebVerifyEmailConfiguration.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Application; 2 | 3 | namespace Stormpath.SDK.Impl.Application 4 | { 5 | internal sealed class DefaultApplicationWebVerifyEmailConfiguration : IApplicationWebVerifyEmailConfiguration 6 | { 7 | public bool? Enabled { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Application/IApplicationAccountStoreMappingSync.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Application; 18 | using Stormpath.SDK.Impl.AccountStore; 19 | 20 | namespace Stormpath.SDK.Impl.Application 21 | { 22 | /// 23 | /// Represents the synchronous actions that correspond to the default asynchronous actions 24 | /// available on . 25 | /// 26 | internal interface IApplicationAccountStoreMappingSync : IAccountStoreMappingSync 27 | { 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Application/IApplicationWebConfigurationSync.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Api; 2 | using Stormpath.SDK.Application; 3 | 4 | namespace Stormpath.SDK.Impl.Application 5 | { 6 | internal interface IApplicationWebConfigurationSync 7 | { 8 | IApiKey GetSigningApiKey(); 9 | 10 | IApplication GetApplication(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Auth/IHasOrganizationNameKey.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Auth 18 | { 19 | /// 20 | /// Represents an Organization nameKey. 21 | /// 22 | internal interface IHasOrganizationNameKey 23 | { 24 | /// 25 | /// Gets the Organization nameKey value. 26 | /// 27 | /// The nameKey. 28 | string OrganizationNameKey { get; } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Cache/DefaultCacheProviderFactory.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Cache; 18 | 19 | namespace Stormpath.SDK.Impl.Cache 20 | { 21 | internal sealed class DefaultCacheProviderFactory : ICacheProviderFactory 22 | { 23 | ICacheProvider ICacheProviderFactory.DisabledCache() 24 | => new NullCacheProvider(); 25 | 26 | ICacheProviderBuilder ICacheProviderFactory.InMemoryCache() 27 | => new InMemoryCacheProviderBuilder(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Cache/InMemoryCacheProviderBuilder.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Cache; 18 | 19 | namespace Stormpath.SDK.Impl.Cache 20 | { 21 | internal sealed class InMemoryCacheProviderBuilder : AbstractCacheProviderBuilder 22 | { 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Cache/Polyfill.Microsoft.Extensions.Caching.Memory/CacheItemPriority.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | // Contains code modified from aspnet/Caching. Copyright (c) .NET Foundation. All rights reserved. 17 | // 18 | 19 | #if NET45 || NET451 20 | namespace Stormpath.SDK.Impl.Cache.Polyfill.Microsoft.Extensions.Caching.Memory 21 | { 22 | internal enum CacheItemPriority 23 | { 24 | Low, 25 | Normal, 26 | High, 27 | NeverRemove, 28 | } 29 | } 30 | #endif -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Cache/Polyfill.Microsoft.Extensions.Caching.Memory/MemoryCacheOptions.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | // Contains code modified from aspnet/Caching. Copyright (c) .NET Foundation. All rights reserved. 17 | // 18 | 19 | #if NET45 || NET451 20 | using System; 21 | 22 | namespace Stormpath.SDK.Impl.Cache.Polyfill.Microsoft.Extensions.Caching.Memory 23 | { 24 | internal class MemoryCacheOptions 25 | { 26 | public bool CompactOnMemoryPressure { get; set; } = true; 27 | 28 | public TimeSpan ExpirationScanFrequency { get; set; } = TimeSpan.FromMinutes(1); 29 | } 30 | } 31 | #endif 32 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Client/DefaultClient.Jwt.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Client; 18 | using Stormpath.SDK.Impl.Jwt; 19 | using Stormpath.SDK.Jwt; 20 | 21 | namespace Stormpath.SDK.Impl.Client 22 | { 23 | internal sealed partial class DefaultClient 24 | { 25 | IJwtBuilder IClient.NewJwtBuilder() 26 | => new DefaultJwtBuilder(this.Serializer); 27 | 28 | IJwtParser IClient.NewJwtParser() 29 | => new DefaultJwtParser(this.Serializer); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Client/IUserAgentBuilder.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Client 18 | { 19 | /// 20 | /// Represents an object that can generate a User-Agent header based on the current environment. 21 | /// 22 | internal interface IUserAgentBuilder 23 | { 24 | /// 25 | /// Gets the User-Agent header for the current environment. 26 | /// 27 | /// A User-Agent string. 28 | string GetUserAgent(); 29 | } 30 | } -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Client/ShimAdditionalClientApiKeySettings.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System.IO; 18 | 19 | namespace Stormpath.SDK.Impl.Client 20 | { 21 | internal sealed class ShimAdditionalClientApiKeySettings 22 | { 23 | public string IdPropertyName { get; set; } 24 | 25 | public string SecretPropertyName { get; set; } 26 | 27 | public Stream InputStream { get; set; } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/CustomData/ICustomDataSync.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.CustomData; 18 | using Stormpath.SDK.Impl.Resource; 19 | 20 | namespace Stormpath.SDK.Impl.CustomData 21 | { 22 | /// 23 | /// Represents the synchronous actions that correspond to the default asynchronous actions 24 | /// available on Custom Data. 25 | /// 26 | internal interface ICustomDataSync : ISaveableSync, IDeletableSync 27 | { 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Directory/IAccountCreationPolicySync.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Directory; 18 | using Stormpath.SDK.Impl.Resource; 19 | 20 | namespace Stormpath.SDK.Impl.Directory 21 | { 22 | /// 23 | /// Represents the synchronous actions that correspond to the default asynchronous actions 24 | /// available on an Account Creation Policy. 25 | /// 26 | internal interface IAccountCreationPolicySync : ISaveableSync 27 | { 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Directory/IPasswordStrengthPolicySync.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Directory; 18 | using Stormpath.SDK.Impl.Resource; 19 | 20 | namespace Stormpath.SDK.Impl.Directory 21 | { 22 | /// 23 | /// Represents the synchronous actions that correspond to the default asynchronous actions 24 | /// available on an Password Strength Policy. 25 | /// 26 | internal interface IPasswordStrengthPolicySync : ISaveableSync 27 | { 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Group/DefaultGroup.Resources.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System.Threading; 18 | using System.Threading.Tasks; 19 | using Stormpath.SDK.Directory; 20 | using Stormpath.SDK.Group; 21 | 22 | namespace Stormpath.SDK.Impl.Group 23 | { 24 | internal sealed partial class DefaultGroup 25 | { 26 | Task IGroup.GetDirectoryAsync(CancellationToken cancellationToken) 27 | => this.GetInternalAsyncDataStore().GetResourceAsync(this.Directory.Href, cancellationToken); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Group/DefaultGroup.ResourcesSync.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Directory; 18 | 19 | namespace Stormpath.SDK.Impl.Group 20 | { 21 | internal sealed partial class DefaultGroup 22 | { 23 | IDirectory IGroupSync.GetDirectory() 24 | => this.GetInternalSyncDataStore().GetResource(this.Directory.Href); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Group/IGroupCreationActionsInternal.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System; 18 | using Stormpath.SDK.Impl.Resource; 19 | 20 | namespace Stormpath.SDK.Impl.Group 21 | { 22 | [Obsolete("Remove when refactoring for 1.0")] 23 | internal interface IGroupCreationActionsInternal : IHasAsyncDataStoreInternal 24 | { 25 | IEmbeddedProperty Groups { get; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Http/DefaultHttpClientFactory.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Http; 18 | 19 | namespace Stormpath.SDK.Impl.Http 20 | { 21 | internal sealed class DefaultHttpClientFactory : IHttpClientFactory 22 | { 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/IdSite/DefaultIdSiteJtiProvider.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System; 18 | 19 | namespace Stormpath.SDK.Impl.IdSite 20 | { 21 | internal sealed class DefaultIdSiteJtiProvider : IIdSiteJtiProvider 22 | { 23 | string IIdSiteJtiProvider.NewJti() => Guid.NewGuid().ToString(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/IdSite/IIdSiteJtiProvider.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.IdSite 18 | { 19 | /// 20 | /// Represents a JWT ID (jti) provider used for ID Site. 21 | /// 22 | /// 23 | /// This is abstracted so it can be injectable during testing. 24 | /// 25 | internal interface IIdSiteJtiProvider 26 | { 27 | /// 28 | /// Generates a new JWT ID (jti) string. 29 | /// 30 | /// A JWT ID string. 31 | string NewJti(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Jwt/JwtHeaderParameters.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Jwt 18 | { 19 | internal static class JwtHeaderParameters 20 | { 21 | public static readonly string Algorithm = "alg"; 22 | public static readonly string Type = "typ"; 23 | public static readonly string KeyId = "kid"; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Jwt/StormpathClaims.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Impl.Jwt 2 | { 3 | internal class StormpathClaims 4 | { 5 | public const string TokenType = "stt"; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/Parsing/Expressions/ResultOperators/AnyResultOperator.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Linq.Parsing.Expressions.ResultOperators 18 | { 19 | internal class AnyResultOperator : ResultOperatorExpression 20 | { 21 | public AnyResultOperator() 22 | { 23 | this.ResultType = ResultOperator.Any; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/Parsing/Expressions/ResultOperators/CountResultOperator.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Linq.Parsing.Expressions.ResultOperators 18 | { 19 | internal class CountResultOperator : ResultOperatorExpression 20 | { 21 | public CountResultOperator() 22 | { 23 | this.ResultType = ResultOperator.Count; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/Parsing/Expressions/ResultOperators/FirstResultOperator.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Linq.Parsing.Expressions.ResultOperators 18 | { 19 | internal class FirstResultOperator : ResultOperatorExpression 20 | { 21 | public FirstResultOperator(bool defaultIfEmpty) 22 | { 23 | this.ResultType = ResultOperator.First; 24 | this.DefaultIfEmpty = defaultIfEmpty; 25 | } 26 | 27 | public bool DefaultIfEmpty { get; private set; } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/Parsing/Expressions/ResultOperators/LongCountResultOperator.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Linq.Parsing.Expressions.ResultOperators 18 | { 19 | internal class LongCountResultOperator : ResultOperatorExpression 20 | { 21 | public LongCountResultOperator() 22 | { 23 | this.ResultType = ResultOperator.LongCount; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/Parsing/Expressions/ResultOperators/ResultOperatorExpression.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System.Linq.Expressions; 18 | 19 | namespace Stormpath.SDK.Impl.Linq.Parsing.Expressions.ResultOperators 20 | { 21 | internal abstract class ResultOperatorExpression : ParsedExpression 22 | { 23 | public ResultOperator ResultType { get; protected set; } 24 | 25 | protected internal override Expression Accept(CompilingExpressionVisitor visitor) 26 | { 27 | return visitor.VisitResultOperator(this); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/Parsing/Expressions/ResultOperators/SingleResultOperator.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Linq.Parsing.Expressions.ResultOperators 18 | { 19 | internal class SingleResultOperator : ResultOperatorExpression 20 | { 21 | public SingleResultOperator(bool defaultIfEmpty) 22 | { 23 | this.ResultType = ResultOperator.Single; 24 | this.DefaultIfEmpty = defaultIfEmpty; 25 | } 26 | 27 | public bool DefaultIfEmpty { get; private set; } 28 | } 29 | } -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/Parsing/Expressions/SkipExpression.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System.Linq.Expressions; 18 | 19 | namespace Stormpath.SDK.Impl.Linq.Parsing.Expressions 20 | { 21 | internal class SkipExpression : ParsedExpression 22 | { 23 | public SkipExpression(int value) 24 | { 25 | this.Value = value; 26 | } 27 | 28 | public int Value { get; private set; } 29 | 30 | protected internal override Expression Accept(CompilingExpressionVisitor visitor) 31 | { 32 | return visitor.VisitSkip(this); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/Parsing/Expressions/TakeExpression.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System.Linq.Expressions; 18 | 19 | namespace Stormpath.SDK.Impl.Linq.Parsing.Expressions 20 | { 21 | internal class TakeExpression : ParsedExpression 22 | { 23 | public TakeExpression(int value) 24 | { 25 | this.Value = value; 26 | } 27 | 28 | public int Value { get; private set; } 29 | 30 | protected internal override Expression Accept(CompilingExpressionVisitor visitor) 31 | { 32 | return visitor.VisitTake(this); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/Parsing/NodeReducer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Linq.Expressions; 5 | using System.Threading.Tasks; 6 | 7 | namespace Stormpath.SDK.Impl.Linq.Parsing 8 | { 9 | internal static class NodeReducer 10 | { 11 | /// 12 | /// Removes any Convert() calls wrapping a node. 13 | /// 14 | /// VB.NET has a tendency to add tons of Convert() calls everywhere. 15 | /// The node. 16 | /// The unwrapped node. 17 | public static Expression Reduce(Expression node) 18 | { 19 | while (node.NodeType == ExpressionType.Convert) 20 | { 21 | node = (node as UnaryExpression).Operand; 22 | } 23 | 24 | return node; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/Parsing/OrderByDirection.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Linq.Parsing 18 | { 19 | internal enum OrderByDirection 20 | { 21 | Ascending, 22 | Descending 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/Parsing/RangedTerms/RangedWhereTermWorkingModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Linq.Parsing.RangedTerms 18 | { 19 | internal class RangedWhereTermWorkingModel 20 | where T : struct 21 | { 22 | public string FieldName { get; set; } 23 | 24 | public bool? StartInclusive { get; set; } 25 | 26 | public T? Start { get; set; } 27 | 28 | public bool? EndInclusive { get; set; } 29 | 30 | public T? End { get; set; } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/Parsing/ResultOperator.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Linq.Parsing 18 | { 19 | internal enum ResultOperator 20 | { 21 | Any, 22 | Count, 23 | LongCount, 24 | First, 25 | Single, 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/Parsing/WhereComparison.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Linq.Parsing 18 | { 19 | internal enum WhereComparison 20 | { 21 | Equal, 22 | StartsWith, 23 | EndsWith, 24 | Contains, 25 | GreaterThan, 26 | GreaterThanOrEqual, 27 | LessThan, 28 | LessThanOrEqual, 29 | AndAlso 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/QueryModel/ExecutionPlanModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Linq.QueryModel 18 | { 19 | internal sealed class ExecutionPlanModel 20 | { 21 | public long? MaxItems { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/QueryModel/ExpandTerm.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Linq.QueryModel 18 | { 19 | internal sealed class ExpandTerm 20 | { 21 | public string PropertyName { get; set; } 22 | 23 | public int? Offset { get; set; } 24 | 25 | public int? Limit { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/QueryModel/OrderByTerm.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Impl.Linq.Parsing; 18 | 19 | namespace Stormpath.SDK.Impl.Linq.QueryModel 20 | { 21 | internal sealed class OrderByTerm 22 | { 23 | public string FieldName { get; set; } 24 | 25 | public OrderByDirection Direction { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Linq/QueryModel/WhereTerm.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System; 18 | using Stormpath.SDK.Impl.Linq.Parsing; 19 | 20 | namespace Stormpath.SDK.Impl.Linq.QueryModel 21 | { 22 | internal sealed class WhereTerm 23 | { 24 | public string FieldName { get; set; } 25 | 26 | public object Value { get; set; } 27 | 28 | public Type Type { get; set; } 29 | 30 | public WhereComparison Comparison { get; set; } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Logging/NullLogger.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Logging; 18 | 19 | namespace Stormpath.SDK.Impl.Logging 20 | { 21 | internal sealed class NullLogger : ILogger 22 | { 23 | void ILogger.Log(LogEntry entry) 24 | { 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Oauth/DefaultJwtAuthenticationRequest.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Oauth; 18 | 19 | namespace Stormpath.SDK.Impl.Oauth 20 | { 21 | internal sealed class DefaultJwtAuthenticationRequest : IJwtAuthenticationRequest 22 | { 23 | private readonly string jwt; 24 | 25 | public DefaultJwtAuthenticationRequest(string jwt) 26 | { 27 | this.jwt = jwt; 28 | } 29 | 30 | string IJwtAuthenticationRequest.Jwt 31 | => this.jwt; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Oauth/DefaultOauthPolicy.Sync.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Application; 18 | using Stormpath.SDK.Impl.Resource; 19 | using Stormpath.SDK.Oauth; 20 | 21 | namespace Stormpath.SDK.Impl.Oauth 22 | { 23 | internal sealed partial class DefaultOauthPolicy 24 | { 25 | IApplication IOauthPolicySync.GetApplication() 26 | => this.GetInternalSyncDataStore().GetResource(this.Application.Href); 27 | 28 | IOauthPolicy ISaveableSync.Save() 29 | => this.Save(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Oauth/DefaultRefreshGrantRequest.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System; 18 | using Stormpath.SDK.Oauth; 19 | 20 | namespace Stormpath.SDK.Impl.Oauth 21 | { 22 | [Obsolete("Remove in 1.0")] 23 | internal sealed class DefaultRefreshGrantRequest : IRefreshGrantRequest 24 | { 25 | private readonly string refreshToken; 26 | 27 | public DefaultRefreshGrantRequest(string refreshToken) 28 | { 29 | this.refreshToken = refreshToken; 30 | } 31 | 32 | string IRefreshGrantRequest.RefreshToken => this.refreshToken; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Oauth/IGrantAuthenticationToken.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Oauth; 18 | using Stormpath.SDK.Resource; 19 | 20 | namespace Stormpath.SDK.Impl.Oauth 21 | { 22 | /// 23 | /// Represents the result of a Grant Authentication operation. 24 | /// 25 | internal interface IGrantAuthenticationToken : IResource, IOauthGrantAuthenticationResult 26 | { 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Oauth/IJwtAuthenticatorSync.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System; 18 | using Stormpath.SDK.Oauth; 19 | 20 | namespace Stormpath.SDK.Impl.Oauth 21 | { 22 | /// 23 | /// Represents the synchronous actions that correspond to the default asynchronous actions 24 | /// available on . 25 | /// 26 | [Obsolete("Remove in 1.0")] 27 | internal interface IJwtAuthenticatorSync : IOauthAuthenticatorSync 28 | { 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Oauth/IRefreshGrantAuthenticatorSync.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System; 18 | using Stormpath.SDK.Oauth; 19 | 20 | namespace Stormpath.SDK.Impl.Oauth 21 | { 22 | /// 23 | /// Represents the synchronous actions that correspond to the default asynchronous actions 24 | /// available on . 25 | /// 26 | [Obsolete("Remove in 1.0")] 27 | internal interface IRefreshGrantAuthenticatorSync : IOauthAuthenticatorSync 28 | { 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Provider/DefaultAdLdapProvider.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Impl.Resource; 2 | using Stormpath.SDK.Provider; 3 | 4 | namespace Stormpath.SDK.Impl.Provider 5 | { 6 | internal sealed class DefaultAdLdapProvider : AbstractProvider, IAdLdapProvider 7 | { 8 | public DefaultAdLdapProvider(ResourceData data) 9 | : base(data) 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Provider/DefaultProvider.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Impl.Resource; 18 | 19 | namespace Stormpath.SDK.Impl.Provider 20 | { 21 | /// 22 | /// Represents Stormpath as a Provider. For example, the provider of a Stormpath-owned directory is "stormpath". 23 | /// 24 | internal sealed class DefaultProvider : AbstractProvider 25 | { 26 | public DefaultProvider(ResourceData data) 27 | : base(data) 28 | { 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Provider/DefaultProviderData.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Impl.Resource; 18 | using Stormpath.SDK.Provider; 19 | 20 | namespace Stormpath.SDK.Impl.Provider 21 | { 22 | internal sealed class DefaultProviderData : AbstractProviderData, IProviderData 23 | { 24 | public DefaultProviderData(ResourceData data) 25 | : base(data) 26 | { 27 | } 28 | 29 | protected override string ConcreteProviderId 30 | => ProviderType.Stormpath; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Resource/DefaultCreationOptions.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using Stormpath.SDK.Resource; 4 | 5 | namespace Stormpath.SDK.Impl.Resource 6 | { 7 | internal sealed class DefaultCreationOptions : ICreationOptions 8 | { 9 | private readonly KeyValuePair[] _parameters; 10 | 11 | public DefaultCreationOptions(IEnumerable> parameters) 12 | { 13 | _parameters = parameters?.ToArray() ?? new KeyValuePair[0]; 14 | } 15 | 16 | public string GetQueryString() 17 | { 18 | if (!_parameters.Any()) 19 | { 20 | return null; 21 | } 22 | 23 | return string.Join("&", _parameters.Select(kvp => $"{kvp.Key}={kvp.Value}")); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Resource/IDeletableSync.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Resource 18 | { 19 | /// 20 | /// Represents resources that can be deleted synchronously. 21 | /// 22 | internal interface IDeletableSync 23 | { 24 | /// 25 | /// Synchronous counterpart to . 26 | /// 27 | /// Whether the delete operation succeeded. 28 | bool Delete(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Resource/IEmbeddedProperty.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Resource 18 | { 19 | /// 20 | /// Represents a property that contains a link to another property. 21 | /// 22 | internal interface IEmbeddedProperty 23 | { 24 | /// 25 | /// Gets the URL of linked property. 26 | /// 27 | /// The URL of the linked property. 28 | string Href { get; } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Resource/IHasAsyncDataStoreInternal.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System; 18 | using Stormpath.SDK.Impl.DataStore; 19 | 20 | namespace Stormpath.SDK.Impl.Resource 21 | { 22 | [Obsolete("Remove when refactoring for 1.0")] 23 | internal interface IHasAsyncDataStoreInternal 24 | { 25 | IInternalAsyncDataStore GetInternalAsyncDataStore(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Resource/ILinkable.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Resource 18 | { 19 | /// 20 | /// Represents a resource proxy that can be linked to different underlying data. 21 | /// 22 | internal interface ILinkable 23 | { 24 | /// 25 | /// Updates the underlying data reference this resource proxy points to. 26 | /// 27 | /// The resource data. 28 | void Link(ResourceData data); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Saml/DefaultSsoInitiationEndpoint.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Impl.Resource; 18 | using Stormpath.SDK.Saml; 19 | 20 | namespace Stormpath.SDK.Impl.Saml 21 | { 22 | internal sealed class DefaultSsoInitiationEndpoint : AbstractResource, ISsoInitiationEndpoint 23 | { 24 | public DefaultSsoInitiationEndpoint(ResourceData data) 25 | : base(data) 26 | { 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Saml/SamlClaims.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Impl.Saml 18 | { 19 | internal static class SamlClaims 20 | { 21 | public static readonly string AccountStoreHref = "ash"; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Serialization/DefaultSerializerFactory.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Serialization; 18 | 19 | namespace Stormpath.SDK.Impl.Serialization 20 | { 21 | internal sealed class DefaultSerializerFactory : ISerializerFactory 22 | { 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Tenant/ITenantSync.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Impl.Resource; 18 | 19 | namespace Stormpath.SDK.Impl.Tenant 20 | { 21 | /// 22 | /// Represents the synchronous actions that correspond to the default asynchronous actions 23 | /// available on Tenant. 24 | /// 25 | internal interface ITenantSync : IExtendableSync, ITenantActionsSync 26 | { 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Utility/DefaultClock.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System; 18 | 19 | namespace Stormpath.SDK.Impl.Utility 20 | { 21 | internal sealed class DefaultClock : IClock 22 | { 23 | DateTimeOffset IClock.Now => DateTimeOffset.Now; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Impl/Utility/PocoTypeLookup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Stormpath.SDK.Application; 4 | using Stormpath.SDK.Impl.Application; 5 | 6 | namespace Stormpath.SDK.Impl.Utility 7 | { 8 | internal static class PocoTypeLookup 9 | { 10 | // TODO: This needs to be removed when refactoring how resources work 11 | private static readonly IReadOnlyDictionary ConcreteLookup = new Dictionary() 12 | { 13 | [typeof(IApplicationWebMeExpandConfiguration)] = typeof(DefaultApplicationWebMeExpandConfiguration), 14 | }; 15 | 16 | public static Type GetConcreteType(Type interfaceType) 17 | { 18 | Type concrete; 19 | ConcreteLookup.TryGetValue(interfaceType, out concrete); 20 | 21 | return concrete; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System.Runtime.CompilerServices; 18 | 19 | [assembly: InternalsVisibleTo("Stormpath.SDK.Tests")] 20 | [assembly: InternalsVisibleTo("Stormpath.SDK.Tests.Unit")] 21 | [assembly: InternalsVisibleTo("Stormpath.SDK.Tests.Common")] 22 | [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] 23 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Stormpath.SDK.Core.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | e248629a-eca1-487d-8c0e-ef29ff74ed5e 10 | Stormpath.SDK 11 | .\obj 12 | .\bin\ 13 | 14 | 15 | 2.0 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Sync/SyncAccountStoreExtensions.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | 18 | namespace Stormpath.SDK.Sync 19 | { 20 | /// 21 | /// Provides synchronous access to the methods available on Account Store. 22 | /// 23 | public static class SyncAccountStoreExtensions 24 | { 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Sync/SyncApplicationWebConfigExtensions.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Api; 2 | using Stormpath.SDK.Application; 3 | using Stormpath.SDK.Impl.Application; 4 | 5 | namespace Stormpath.SDK.Sync 6 | { 7 | public static class SyncApplicationWebConfigExtensions 8 | { 9 | public static IApiKey GetSigningApiKey(this IApplicationWebConfiguration appWebConfig) 10 | => (appWebConfig as IApplicationWebConfigurationSync).GetSigningApiKey(); 11 | 12 | public static IApplication GetApplication(this IApplicationWebConfiguration appWebConfig) 13 | => (appWebConfig as IApplicationWebConfigurationSync).GetApplication(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Sync/SyncFactorExtensions.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Account; 2 | using Stormpath.SDK.Impl.Account; 3 | 4 | namespace Stormpath.SDK.Sync 5 | { 6 | /// 7 | /// Provides synchronous access to the methods available on the Factor resource. 8 | /// 9 | public static class SyncFactorExtensions 10 | { 11 | /// 12 | /// Synchronously gets the Account associated with this factor. 13 | /// 14 | /// The factor. 15 | /// The account. 16 | public static IAccount GetAccount(this IFactor factor) 17 | => (factor as IFactorSync).GetAccount(); 18 | 19 | /// 20 | /// Synchronously gets the most recent Challenge against this factor, if any. 21 | /// 22 | /// The factor. 23 | /// The most recent challenge, or . 24 | public static IChallenge GetMostRecentChallenge(this IFactor factor) 25 | => (factor as IFactorSync).GetMostRecentChallenge(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Sync/SyncPhoneExtensions.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Account; 2 | using Stormpath.SDK.Impl.Account; 3 | 4 | namespace Stormpath.SDK.Sync 5 | { 6 | /// 7 | /// Provides synchronous access to the methods available on the Phone resource. 8 | /// 9 | public static class SyncPhoneExtensions 10 | { 11 | /// 12 | /// Synchronously gets the Account associated with this phone. 13 | /// 14 | /// The phone. 15 | /// The account. 16 | public static IAccount GetAccount(this IPhone phone) 17 | => (phone as IPhoneSync).GetAccount(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Core/Sync/SyncSmsFactorExtensions.cs: -------------------------------------------------------------------------------- 1 | using Stormpath.SDK.Account; 2 | using Stormpath.SDK.Impl.Account; 3 | 4 | namespace Stormpath.SDK.Sync 5 | { 6 | /// 7 | /// Provides synchronous access to the methods available on the SMS Factor resource. 8 | /// 9 | public static class SyncSmsFactorExtensions 10 | { 11 | /// 12 | /// Synchronously gets the Phone associated with this factor. 13 | /// 14 | /// The factor. 15 | /// The Phone associated with this factor. 16 | public static IPhone GetPhone(this ISmsFactor smsFactor) 17 | => (smsFactor as ISmsFactorSync).GetPhone(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Http.SystemNetHttpClient/Stormpath.SDK.Http.SystemNetHttpClient.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0.24720 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | d56c4681-b4a3-49c9-b32d-eab3bc874666 10 | Stormpath.SDK.Http.SystemNetHttpClient 11 | .\obj 12 | .\bin\ 13 | 14 | 15 | 2.0 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.Http.SystemNetHttpClient/SystemNetHttpClientFactoryExtensions.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Http 18 | { 19 | /// 20 | /// Provides access to the SystemNetHttpClient plugin by plugging into . 21 | /// 22 | public static class SystemNetHttpClientFactoryExtensions 23 | { 24 | public static IHttpClientBuilder SystemNetHttpClient(this IHttpClientFactory factory) 25 | => new AbstractHttpClientBuilder(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.JsonNetSerializer/Stormpath.SDK.JsonNetSerializer.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0.24720 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | 0e9a923b-66c2-46ec-9db1-1f7da2367679 10 | Stormpath.SDK.JsonNetSerializer 11 | .\obj 12 | .\bin\ 13 | 14 | 15 | 2.0 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/Stormpath.SDK.RestSharpClient/Stormpath.SDK.RestSharpClient.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0.24720 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | 55712e3a-4a68-4d80-b8f4-c046e352304b 10 | Stormpath.SDK.RestSharpClient 11 | .\obj 12 | .\bin\ 13 | 14 | 15 | 2.0 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Cache.Redis.Tests/RedisTestCollection.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Xunit; 18 | 19 | namespace Stormpath.SDK.Cache.Redis.Tests 20 | { 21 | [CollectionDefinition(nameof(RedisTestCollection))] 22 | public class RedisTestCollection : ICollectionFixture 23 | { 24 | // Intentionally left blank. This class only serves as an anchor for CollectionDefinition. 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Cache.Redis.Tests/Stormpath.SDK.Cache.Redis.Tests.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0.24720 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | f5725a49-be0a-4be7-b67c-98ec31f3fe78 10 | Stormpath.SDK.Redis.Tests 11 | .\obj 12 | .\bin\ 13 | 14 | 15 | 2.0 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Cache.Redis.Tests/TestHelper.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Resource; 18 | 19 | namespace Stormpath.SDK.Cache.Redis.Tests 20 | { 21 | internal static class TestHelper 22 | { 23 | public static string CreateKey(T resourceType) 24 | where T : IResource 25 | { 26 | var sanitizedKey = resourceType.Href.Replace("://", "--"); 27 | var region = typeof(T).Name; 28 | 29 | return $"{region}:{sanitizedKey}"; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.JsonNetSerializer.Tests/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "authors": [ "Nate Barbettini" ], 3 | "copyright": "(c) 2016 Stormpath, Inc.", 4 | "dependencies": { 5 | "dotnet-test-xunit": "2.2.0-preview2-build1029", 6 | "Microsoft.NETCore.App": { 7 | "type": "platform", 8 | "version": "1.0.0" 9 | }, 10 | "Shouldly": "2.8.0", 11 | "Stormpath.SDK.JsonNetSerializer": { 12 | "target": "project", 13 | "version": "0.91.0" 14 | }, 15 | "xunit": "2.1.0" 16 | }, 17 | "description": "Unit tests for Stormpath.SDK.JsonNetSerializer", 18 | "frameworks": { 19 | "netcoreapp1.0": { 20 | "imports": [ "dotnet", "portable-net45+win8" ] 21 | } 22 | }, 23 | "packOptions": { 24 | "iconUrl": "https://raw.githubusercontent.com/stormpath/stormpath-sdk-csharp/master/icon.png", 25 | "licenseUrl": "https://github.com/stormpath/stormpath-sdk-dotnet/blob/master/LICENSE", 26 | "owners": [ "Stormpath, Inc." ], 27 | "projectUrl": "https://github.com/stormpath/stormpath-sdk-dotnet" 28 | }, 29 | "testRunner": "xunit", 30 | "tooling": { 31 | "defaultNamespace": "Stormpath.SDK.Extensions.Serialization.JsonNet.Tests" 32 | }, 33 | "version": "0.91.0" 34 | } 35 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.RestSharpClient.Tests/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "authors": [ "Nate Barbettini" ], 3 | "copyright": "(c) 2016 Stormpath, Inc.", 4 | "dependencies": { 5 | "dotnet-test-xunit": "1.0.0-rc2-build10025", 6 | "NSubstitute": "1.9.2", 7 | "Shouldly": "2.8.0", 8 | "Stormpath.SDK.RestSharpClient": { 9 | "target": "project", 10 | "version": "0.91.0" 11 | }, 12 | "xunit": "2.1.0" 13 | }, 14 | "description": "Unit tests for Stormpath.SDK.RestSharpClient", 15 | "frameworks": { 16 | "net451": { 17 | "dependencies": { 18 | "Microsoft.NETCore.Platforms": "1.0.1" 19 | } 20 | } 21 | }, 22 | "packOptions": { 23 | "iconUrl": "https://raw.githubusercontent.com/stormpath/stormpath-sdk-csharp/master/icon.png", 24 | "licenseUrl": "https://github.com/stormpath/stormpath-sdk-dotnet/blob/master/LICENSE", 25 | "owners": [ "Stormpath, Inc." ], 26 | "projectUrl": "https://github.com/stormpath/stormpath-sdk-dotnet" 27 | }, 28 | "testRunner": "xunit", 29 | "tooling": { 30 | "defaultNamespace": "Stormpath.SDK.Extensions.Http.RestSharpClient.Tests" 31 | }, 32 | "version": "0.91.0" 33 | } 34 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Common/Assertly.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Tests.Common 18 | { 19 | public static class Assertly 20 | { 21 | public static void Fail(string message) 22 | { 23 | Xunit.Assert.True(false, message); 24 | } 25 | 26 | public static void Todo() 27 | { 28 | Xunit.Assert.True(false, "TODO"); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Common/DebugOnlyFactAttribute.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System.Diagnostics; 18 | using Xunit; 19 | 20 | namespace Stormpath.SDK.Tests.Common 21 | { 22 | public class DebugOnlyFactAttribute : FactAttribute 23 | { 24 | public DebugOnlyFactAttribute() 25 | { 26 | if (!Debugger.IsAttached) 27 | { 28 | this.Skip = "Only run in Debug mode."; 29 | } 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Common/DebugOnlyTheoryAttribute.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System.Diagnostics; 18 | using Xunit; 19 | 20 | namespace Stormpath.SDK.Tests.Common 21 | { 22 | public class DebugOnlyTheoryAttribute : TheoryAttribute 23 | { 24 | public DebugOnlyTheoryAttribute() 25 | { 26 | if (!Debugger.IsAttached) 27 | { 28 | this.Skip = "Only run in Debug mode."; 29 | } 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Common/Delay.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System; 18 | 19 | namespace Stormpath.SDK.Tests.Common 20 | { 21 | public static class Delay 22 | { 23 | public static readonly int UpdatePropogation = 250; 24 | 25 | public static TimeSpan ReasonableTestRunWindow = TimeSpan.FromMinutes(10); 26 | 27 | public static readonly TimeSpan[] CustomDataRetry = { 28 | TimeSpan.FromSeconds(1), 29 | TimeSpan.FromSeconds(5), 30 | TimeSpan.FromSeconds(20), 31 | TimeSpan.FromSeconds(25) 32 | }; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Common/Fakes/FakeUserAgentBuilder.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using Stormpath.SDK.Impl.Client; 18 | 19 | namespace Stormpath.SDK.Tests.Common.Fakes 20 | { 21 | public sealed class FakeUserAgentBuilder : IUserAgentBuilder 22 | { 23 | string IUserAgentBuilder.GetUserAgent() 24 | => "fake/testing"; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Common/Integration/CreateSingleDirectoryFixture.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using FluentAssertions; 6 | using Stormpath.SDK.Directory; 7 | 8 | namespace Stormpath.SDK.Tests.Common.Integration 9 | { 10 | public class CreateSingleDirectoryFixture : IDisposable 11 | { 12 | public string DirectoryHref { get; private set; } 13 | 14 | public CreateSingleDirectoryFixture() 15 | { 16 | // Create a new directory for the accounts created in this test 17 | var client = TestClients.GetSAuthc1Client(); 18 | var directory = client.CreateDirectoryAsync($".NET ITs {Guid.NewGuid().ToString()}", "Custom Data Search tests", DirectoryStatus.Enabled).Result; 19 | directory.Href.Should().NotBeNullOrEmpty(); 20 | 21 | this.DirectoryHref = directory.Href; 22 | } 23 | 24 | public void Dispose() 25 | { 26 | // Clean up 27 | var client = TestClients.GetSAuthc1Client(); 28 | var directory = client.GetDirectoryAsync(this.DirectoryHref).Result; 29 | directory.DeleteAsync().Result.Should().BeTrue(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Common/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.CompilerServices; 2 | 3 | [assembly: InternalsVisibleTo("Stormpath.SDK.Tests")] 4 | [assembly: InternalsVisibleTo("Stormpath.SDK.Tests.Unit")] -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Common/RandomData/RandomString.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | using System; 18 | 19 | namespace Stormpath.SDK.Tests.Common.RandomData 20 | { 21 | public static class RandomString 22 | { 23 | public static string Create() 24 | { 25 | return Guid 26 | .NewGuid() 27 | .ToString() 28 | .ToLower() 29 | .Replace("-", string.Empty); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Common/SimplePoco.cs: -------------------------------------------------------------------------------- 1 | namespace Stormpath.SDK.Tests.Common 2 | { 3 | public class SimplePoco 4 | { 5 | public string Foo { get; set; } 6 | 7 | public int Bar { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Common/Stormpath.SDK.Tests.Common.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0.24720 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | b5a17885-277b-4033-850a-20eda614f278 10 | Stormpath.SDK.Tests.Common 11 | .\obj 12 | .\bin\ 13 | 14 | 15 | 2.0 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.CoreClr/Stormpath.SDK.Tests.CoreClr.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0.24720 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | 80d9b81c-613b-4358-b47f-cc4ebae480c2 10 | Stormpath.SDK.Tests.CoreClr 11 | .\obj 12 | .\bin\ 13 | 14 | 15 | 2.0 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Integration.VB/My Project/Application.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Integration.VB/My Project/Application.myapp: -------------------------------------------------------------------------------- 1 |  2 | 3 | false 4 | false 5 | 0 6 | true 7 | 0 8 | 1 9 | true 10 | 11 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Integration.VB/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Integration.VB/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Integration.VB/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Integration/xunit.runner.json: -------------------------------------------------------------------------------- 1 | { 2 | "diagnosticMessages": true, 3 | "parallelizeTestCollections": false 4 | } -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Sanity/Stormpath.SDK.Tests.Sanity.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0.24720 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | 292c3e35-0ed5-4d8b-bcd4-8ce2d5666447 10 | Stormpath.SDK.Tests.Sanity 11 | .\obj 12 | .\bin\ 13 | 14 | 15 | 2.0 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.Unit/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyConfiguration("")] 9 | [assembly: AssemblyCompany("")] 10 | [assembly: AssemblyProduct("Stormpath.SDK.Tests.Unit")] 11 | [assembly: AssemblyTrademark("")] 12 | 13 | // Setting ComVisible to false makes the types in this assembly not visible 14 | // to COM components. If you need to access a type in this assembly from 15 | // COM, set the ComVisible attribute to true on that type. 16 | [assembly: ComVisible(false)] 17 | 18 | // The following GUID is for the ID of the typelib if this project is exposed to COM 19 | [assembly: Guid("0d106eca-40bb-4a1c-b025-821dde8e56dc")] 20 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.VB/My Project/Application.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.VB/My Project/Application.myapp: -------------------------------------------------------------------------------- 1 |  2 | 3 | false 4 | false 5 | 0 6 | true 7 | 0 8 | 1 9 | true 10 | 11 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.VB/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.VB/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests.VB/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests/DefaultCreationOptionsShould.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using FluentAssertions; 3 | using Stormpath.SDK.Impl.Resource; 4 | using Xunit; 5 | 6 | namespace Stormpath.SDK.Tests 7 | { 8 | public class DefaultCreationOptionsShould 9 | { 10 | [Fact] 11 | public void ReturnNullForNoParameters() 12 | { 13 | var options = new DefaultCreationOptions(null); 14 | 15 | options.GetQueryString().Should().BeNullOrEmpty(); 16 | } 17 | 18 | [Fact] 19 | public void ReturnSingleParameter() 20 | { 21 | var options = new DefaultCreationOptions(new Dictionary 22 | { 23 | ["challenge"] = "true" 24 | }); 25 | 26 | options.GetQueryString().Should().Be("challenge=true"); 27 | } 28 | 29 | [Fact] 30 | public void ReturnMultipleParameters() 31 | { 32 | var options = new DefaultCreationOptions(new Dictionary 33 | { 34 | ["foo"] = "bar", 35 | ["baz"] = "123" 36 | }); 37 | 38 | options.GetQueryString().Should().Be("foo=bar&baz=123"); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests/IdentityMap/TestEntity.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2016 Stormpath, Inc. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | // 16 | 17 | namespace Stormpath.SDK.Tests.IdentityMap 18 | { 19 | public class TestEntity 20 | { 21 | public string Id { get; } 22 | 23 | public int Count { get; private set; } 24 | 25 | public TestEntity(string id) 26 | { 27 | this.Id = id; 28 | } 29 | 30 | public void SetCount(int count) 31 | { 32 | this.Count = count; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.Tests/Stormpath.SDK.Tests.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0.24720 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | 1468acd2-8a96-4ee3-8103-53a519bfee8e 10 | Stormpath.SDK.Tests 11 | .\obj 12 | .\bin\ 13 | 14 | 15 | 2.0 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.UAT.Net461/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Stormpath.SDK.Client; 3 | using Stormpath.SDK.Http; 4 | using Stormpath.SDK.Serialization; 5 | 6 | namespace Stormpath.SDK.UAT.Net461 7 | { 8 | public class Program 9 | { 10 | public static void Main(string[] args) 11 | { 12 | TestRestSharpAdapterCreation(); 13 | 14 | Console.WriteLine("All net461 UATs done"); 15 | } 16 | 17 | private static void TestRestSharpAdapterCreation() 18 | { 19 | var client = Clients.Builder() 20 | .SetHttpClient(HttpClients.Create().RestSharpClient()) 21 | .SetSerializer(Serializers.Create().JsonNetSerializer()) 22 | .SetApiKeyId("fake") 23 | .SetApiKeySecret("reallyfake") 24 | .Build(); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.UAT.Net461/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyConfiguration("")] 9 | [assembly: AssemblyCompany("")] 10 | [assembly: AssemblyProduct("Stormpath.SDK.UAT.Net461")] 11 | [assembly: AssemblyTrademark("")] 12 | 13 | // Setting ComVisible to false makes the types in this assembly not visible 14 | // to COM components. If you need to access a type in this assembly from 15 | // COM, set the ComVisible attribute to true on that type. 16 | [assembly: ComVisible(false)] 17 | 18 | // The following GUID is for the ID of the typelib if this project is exposed to COM 19 | [assembly: Guid("2ad2d261-50a9-41ee-8a38-f02596a68a53")] 20 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.UAT.Net461/Stormpath.SDK.UAT.Net461.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | 10 | 2ad2d261-50a9-41ee-8a38-f02596a68a53 11 | Stormpath.SDK.UAT.Net461 12 | .\obj 13 | .\bin\ 14 | v4.6.1 15 | 16 | 17 | 18 | 2.0 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.UAT.Net461/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "buildOptions": { 3 | "emitEntryPoint": true 4 | }, 5 | "dependencies": { 6 | "Stormpath.SDK.Core": { 7 | "target": "project", 8 | "version": "0.94.0-beta1" 9 | }, 10 | "Stormpath.SDK.JsonNetSerializer": { 11 | "target": "project", 12 | "version": "0.91.0" 13 | }, 14 | "Stormpath.SDK.RestSharpClient": { 15 | "target": "project", 16 | "version": "0.94.0-beta1" 17 | } 18 | }, 19 | "frameworks": { 20 | "net461": { 21 | } 22 | }, 23 | "version": "1.0.0-*" 24 | } 25 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.UAT/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyConfiguration("")] 9 | [assembly: AssemblyCompany("")] 10 | [assembly: AssemblyProduct("Stormpath.SDK.UAT")] 11 | [assembly: AssemblyTrademark("")] 12 | 13 | // Setting ComVisible to false makes the types in this assembly not visible 14 | // to COM components. If you need to access a type in this assembly from 15 | // COM, set the ComVisible attribute to true on that type. 16 | [assembly: ComVisible(false)] 17 | 18 | // The following GUID is for the ID of the typelib if this project is exposed to COM 19 | [assembly: Guid("734687c9-d58e-460e-9b24-be52bb0d0164")] 20 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.UAT/Stormpath.SDK.UAT.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | 10 | 734687c9-d58e-460e-9b24-be52bb0d0164 11 | Stormpath.SDK.UAT 12 | .\obj 13 | .\bin\ 14 | v4.6.1 15 | 16 | 17 | 18 | 2.0 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/Stormpath.SDK.UAT/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "buildOptions": { 3 | "emitEntryPoint": true 4 | }, 5 | "dependencies": { 6 | "Microsoft.NETCore.App": { 7 | "type": "platform", 8 | "version": "1.0.0" 9 | }, 10 | "Stormpath.SDK.Core": { 11 | "target": "project", 12 | "version": "0.94.0-beta1" 13 | }, 14 | "Stormpath.SDK.JsonNetSerializer": { 15 | "target": "project", 16 | "version": "0.91.0" 17 | }, 18 | "Stormpath.SDK.Http.SystemNetHttpClient": { 19 | "target": "project", 20 | "version": "0.94.0-beta1" 21 | }, 22 | "Stormpath.SDK.Cache.Redis": { 23 | "target": "project", 24 | "version": "0.9.1" 25 | } 26 | }, 27 | "frameworks": { 28 | "netcoreapp1.0": { 29 | "imports": "dnxcore50" 30 | } 31 | }, 32 | "version": "1.0.0-*" 33 | } 34 | -------------------------------------------------------------------------------- /tools/Cake/Autofac.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-dotnet/8ed3ee1644036873c44844cf5da94d66f73de9fe/tools/Cake/Autofac.dll -------------------------------------------------------------------------------- /tools/Cake/Cake.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-dotnet/8ed3ee1644036873c44844cf5da94d66f73de9fe/tools/Cake/Cake.Common.dll -------------------------------------------------------------------------------- /tools/Cake/Cake.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-dotnet/8ed3ee1644036873c44844cf5da94d66f73de9fe/tools/Cake/Cake.Core.dll -------------------------------------------------------------------------------- /tools/Cake/Cake.NuGet.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-dotnet/8ed3ee1644036873c44844cf5da94d66f73de9fe/tools/Cake/Cake.NuGet.dll -------------------------------------------------------------------------------- /tools/Cake/Cake.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-dotnet/8ed3ee1644036873c44844cf5da94d66f73de9fe/tools/Cake/Cake.exe -------------------------------------------------------------------------------- /tools/Cake/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) .NET Foundation and Contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /tools/Cake/Mono.CSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-dotnet/8ed3ee1644036873c44844cf5da94d66f73de9fe/tools/Cake/Mono.CSharp.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-dotnet/8ed3ee1644036873c44844cf5da94d66f73de9fe/tools/Cake/NuGet.Core.dll -------------------------------------------------------------------------------- /tools/Cake/Roslyn.Compilers.CSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-dotnet/8ed3ee1644036873c44844cf5da94d66f73de9fe/tools/Cake/Roslyn.Compilers.CSharp.dll -------------------------------------------------------------------------------- /tools/Cake/Roslyn.Compilers.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stormpath/stormpath-sdk-dotnet/8ed3ee1644036873c44844cf5da94d66f73de9fe/tools/Cake/Roslyn.Compilers.dll -------------------------------------------------------------------------------- /tools/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /tools/packages.config.md5sum: -------------------------------------------------------------------------------- 1 | ED-03-B3-45-EC-E6-D4-A4-73-EE-E7-99-A9-C7-43-44 2 | --------------------------------------------------------------------------------