public void GetConnection_ReturnsNonNullInstance() { CosmosDbStorage storage = new(url, secret, database, container); using CosmosDbConnection connection = (CosmosDbConnection)storage.GetConnection(); Assert.NotNull(connection); }
public GremlinExecutor(CosmosDbConnection config, IConsole console) { _console = console; _server = GremlinExecutor.GetGremlinServer(config); _partitionKey = config.PartitionKey; _client = new GremlinClient(_server, new GraphSON2Reader(), new GraphSON2Writer(), GremlinClient.GraphSON2MimeType); }
public void WithExistingCosmosClient_GetConnection_ReturnsNonNullInstance() { CosmosDbStorage storage = CreateSutWithCosmosClient(); using CosmosDbConnection connection = (CosmosDbConnection)storage.GetConnection(); Assert.NotNull(connection); }
/// <summary> /// Gets the options. /// </summary> /// <param name="sharedDataSource">The shared data source.</param> /// <returns>DbContextOptions.</returns> /// <exception cref="System.Configuration.ConfigurationErrorsException">SharedDataSource Type not found</exception> public DbContextOptions GetOptions(string sharedDataSource) { var conn = new CosmosDbConnection(_sharedConnectionStringResolver.GetConnectionString(sharedDataSource)); var builder = new DbContextOptionsBuilder <EFCoreDataContext>() .UseCosmos(conn.AccountEndpoint, conn.AccountKey.ToUnsecureString(), conn.DatabaseName, (t) => { //when they add some options to the class we may do some stuff here }); return(builder.Options); }
private static GremlinServer GetGremlinServer(CosmosDbConnection config) { var hostname = config.GremlinEndpoint; var port = config.GremlinPort; var authKey = config.AuthKey; var databaseId = config.DatabaseId; var graphId = config.GraphId; var gremlinServer = new GremlinServer(hostname, port, enableSsl: true, username: $"/dbs/{databaseId}/colls/{graphId}", password: authKey); return(gremlinServer); }
public async Task <int> AddConnection(string connectionName, CosmosDbConnection connection, bool global = false) { string configPath = global ? GizmoConfig.ProfileConfigPath : GizmoConfig.LocalConfigPath; _console.WriteLine($"Adding {connectionName} to {configPath}"); var settings = await GizmoConfig.LoadConfig(configPath); settings.CosmosDbConnections[connectionName] = connection; await GizmoConfig.SaveConfig(configPath, settings); return(0); }
private static DocumentClient BuildDocumentClient(CosmosDbConnection cosmosDbConnection, RetryOptions?retryOptions) { if (retryOptions != null) { return(new DocumentClient(cosmosDbConnection !.EndpointUrl, cosmosDbConnection !.AccessKey, new ConnectionPolicy { RetryOptions = retryOptions })); } else { return(new DocumentClient(cosmosDbConnection !.EndpointUrl, cosmosDbConnection !.AccessKey)); } }
public void RepositoryGetAllListReturnsSuccess() { // arrange var cosmosDbConnection = new CosmosDbConnection { AccessKey = "AccessKey", CollectionId = "CollectionId", DatabaseId = "DatabaseId", EndpointUrl = "EndpointUrl", PartitionKey = "PartitionKey", }; var documentClient = A.Fake <IDocumentClient>(); var documentQueryable = A.Fake <IOrderedQueryable <HelpPageModel> >(); var documentQuery = A.Fake <IDocumentQuery <HelpPageModel> >(); var feedResponse = A.Fake <FeedResponse <HelpPageModel> >(); var expectedResults = A.CollectionOfFake <HelpPageModel>(2); A.CallTo(() => documentClient.ReadDatabaseAsync(A <Uri> .Ignored, null)).Returns(A.Fake <ResourceResponse <Database> >()); A.CallTo(() => documentClient.ReadDocumentCollectionAsync(A <Uri> .Ignored, null)).Returns(A.Fake <ResourceResponse <DocumentCollection> >()); A.CallTo(() => documentClient.CreateDocumentQuery <HelpPageModel>(A <Uri> .Ignored, A <FeedOptions> .Ignored)).Returns(documentQueryable); A.CallTo(() => documentQueryable.AsDocumentQuery()).Returns(documentQuery); A.CallTo(() => documentQuery.HasMoreResults).ReturnsNextFromSequence(true, true, false); A.CallTo(() => documentQuery.ExecuteNextAsync <HelpPageModel>(default(CancellationToken))).Returns(feedResponse); var repository = new Repository <HelpPageModel>(cosmosDbConnection, documentClient); // act var results = repository.GetAllAsync().Result; // assert A.CallTo(() => documentClient.ReadDatabaseAsync(A <Uri> .Ignored, null)).MustHaveHappenedOnceExactly(); A.CallTo(() => documentClient.ReadDocumentCollectionAsync(A <Uri> .Ignored, null)).MustHaveHappenedOnceExactly(); A.CallTo(() => documentClient.CreateDocumentQuery <HelpPageModel>(A <Uri> .Ignored, A <FeedOptions> .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => documentQuery.HasMoreResults).MustHaveHappened(3, Times.Exactly); A.CallTo(() => documentQuery.ExecuteNextAsync <HelpPageModel>(default(CancellationToken))).MustHaveHappened(2, Times.Exactly); A.Equals(results, expectedResults); }
public static IServiceCollection AddContentPageServices <TModel>(this IServiceCollection services, CosmosDbConnection cosmosDbConnection, bool isDevelopment, RetryOptions?retryOptions = null) where TModel : RequestTrace, IContentPageModel { _ = cosmosDbConnection ?? throw new ArgumentNullException(nameof(cosmosDbConnection)); var documentClient = BuildDocumentClient(cosmosDbConnection, retryOptions); object[] serviceArguments = { cosmosDbConnection, documentClient, isDevelopment }; services.AddSingleton(cosmosDbConnection); services.AddSingleton <IDocumentClient>(documentClient); services.AddSingleton <ICosmosRepository <TModel> >(x => ActivatorUtilities.CreateInstance <CosmosRepository <TModel> >(x, serviceArguments)); services.AddTransient <IContentPageService <TModel>, ContentPageService <TModel> >(); return(services); }
public static IServiceCollection AddSessionStateServices <TModel>(this IServiceCollection services, CosmosDbConnection cosmosDbConnection, bool isDevelopment) where TModel : class, new() { _ = cosmosDbConnection ?? throw new ArgumentNullException(nameof(cosmosDbConnection)); var documentClient = new DocumentClient(cosmosDbConnection !.EndpointUrl, cosmosDbConnection !.AccessKey); object[] serviceArguments = { cosmosDbConnection, documentClient, isDevelopment }; services.AddSingleton(cosmosDbConnection); services.AddSingleton <IDocumentClient>(documentClient); services.AddSingleton <ICosmosRepository <SessionStateModel <TModel> > >(x => ActivatorUtilities.CreateInstance <CosmosRepository <SessionStateModel <TModel> > >(x, serviceArguments)); services.AddTransient <IDocumentService <SessionStateModel <TModel> >, DocumentService <SessionStateModel <TModel> > >(); services.AddTransient <ISessionStateService <TModel>, SessionStateService <TModel> >(); return(services); }
public AzureGraphsExecutor(CosmosDbConnection config, IConsole console) { _config = config; _console = console; }
internal CosmosDbServiceBase(CosmosDbConnection connection) { DataConnection = connection; }
public static IServiceCollection AddSessionStateServices <TModel>(this IServiceCollection services, CosmosDbConnection cosmosDbConnection, bool isDevelopment) where TModel : class, new() { _ = cosmosDbConnection ?? throw new ArgumentNullException(nameof(cosmosDbConnection)); var retryOptions = new RetryOptions { MaxRetryAttemptsOnThrottledRequests = 20, MaxRetryWaitTimeInSeconds = 60 }; var documentClient = new DocumentClient(cosmosDbConnection !.EndpointUrl, cosmosDbConnection !.AccessKey, new ConnectionPolicy { RetryOptions = retryOptions }); object[] serviceArguments = { cosmosDbConnection, documentClient, isDevelopment }; services.AddSingleton(cosmosDbConnection); services.AddSingleton <IDocumentClient>(documentClient); services.AddSingleton <ICosmosRepository <SessionStateModel <TModel> > >(x => ActivatorUtilities.CreateInstance <CosmosRepository <SessionStateModel <TModel> > >(x, serviceArguments)); services.AddTransient <IDocumentService <SessionStateModel <TModel> >, DocumentService <SessionStateModel <TModel> > >(); services.AddTransient <ISessionStateService <TModel>, SessionStateService <TModel> >(); return(services); }
public ControllerBase(IOptions <CosmosDbSettings> cosmosDbSettings) { SharedDataConnection = CosmosDbConnection.Singleton(cosmosDbSettings.Value); }
public static ProfileService Connect(CosmosDbConnection dataConnection) => new ProfileService(dataConnection);
private ProfileService(CosmosDbConnection dataConnection) : base(dataConnection) { }