/// <summary> /// Create the cdm message processor /// </summary> /// <param name="storage"></param> /// <param name="encoder"></param> /// <param name="logger"></param> public CdmMessageProcessor(IStorageAdapter storage, IRecordEncoder encoder, ILogger logger) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _encoder = encoder ?? throw new ArgumentNullException(nameof(encoder)); _storage = storage ?? throw new ArgumentNullException(nameof(storage)); _lock = new SemaphoreSlim(1, 1); _samplesCacheSize = 0; _cacheUploadTriggered = false; _samplesCache = new Dictionary <string, List <MonitoredItemMessageModel> >(); _dataSetsCache = new Dictionary <string, List <DataSetMessageModel> >(); _cdmCorpus = new CdmCorpusDefinition(); var cdmLogger = _logger.ForContext(typeof(CdmStatusLevel)); _cdmCorpus.SetEventCallback(new EventCallback { Invoke = (level, msg) => LogCdm(cdmLogger, level, msg) }); _cdmCorpus.Storage.Mount("adls", _storage.Adapter); var gitAdapter = new GithubAdapter(); _cdmCorpus.Storage.Mount("cdm", gitAdapter); _cdmCorpus.Storage.DefaultNamespace = "adls"; _cdmCorpus.AppId = "Azure Industrial IoT"; _manifestResolved = null; _cacheUploadInterval = TimeSpan.FromSeconds(20); _cacheUploadTimer = new Timer(CacheTimer_ElapsedAsync, null, _cacheUploadInterval, Timeout.InfiniteTimeSpan); }
// NOTE: The Github adapter is on the deprecation path, in favor of using a remote adapter. It is currently // used for testing purposes and its functionality can be similarly achieved by using a remote adapter. // The Github adapter currently points to the public standards schema documents on the CDM repo (on master) and // is not configurable to point to a different repo. static void ConfigureGithubAdapter() { // Default values for the optional parameters used by the Github adapter. string timeout = "2000"; string maximumTimeout = "10000"; string numberOfRetries = "2"; // Ask the user if optional parameters should be configured, or if defaults should just be used. if (ConfigureOptionalParameters("GithubAdapter")) { // Configure optional parameters. timeout = GetOptionalParameterValueFromUser("timeout", "GithubAdapter", timeout /* this is just to show what the value should look like. */); maximumTimeout = GetOptionalParameterValueFromUser("maximum timeout", "GithubAdapter", maximumTimeout); numberOfRetries = GetOptionalParameterValueFromUser("number of retries", "GithubAdapter", numberOfRetries); } // Create a Github adapter with the parameter values given by the user. var adapter = new GithubAdapter() { Timeout = TimeSpan.FromMilliseconds(int.Parse(timeout)), MaximumTimeout = TimeSpan.FromMilliseconds(int.Parse(maximumTimeout)), NumberOfRetries = int.Parse(numberOfRetries) // WaitTimeCallback is another optional parameter and can also be configured here. }; // List the newly configured adapter's properties. Console.WriteLine("\nGithubAdapter configured. Properties of this GithubAdapter are:"); Console.WriteLine(" Timeout: " + adapter.Timeout.Value.TotalMilliseconds); Console.WriteLine(" MaximumTimeout: " + adapter.MaximumTimeout.Value.TotalMilliseconds); Console.WriteLine(" NumberOfRetries: " + adapter.NumberOfRetries); Console.WriteLine(); }
public async Task WhenFindingLatestRelease_OneReleaseIsReturned() { var adapter = new GithubAdapter(); var release = await adapter.FindLatestReleaseAsync(CancellationToken.None); Assert.IsNotNull(release); Assert.IsTrue(release.TagVersion.Major >= 1); }
public void should_object_contain_sha_key() { // arrange var adapter = new GithubAdapter("alexanderbeletsky", "blog.beletsky.net"); // act var references = adapter.GetAllReferences(); // assert references.First().Object.Sha.Should().NotBeEmpty(); }
public void should_be_at_least_one_reference() { // arrange var adapter = new GithubAdapter("alexanderbeletsky", "blog.beletsky.net"); // act var references = adapter.GetAllReferences(); // assert references.Count.Should().BeGreaterOrEqualTo(1); }
public void should_contain_at_least_one_item_in_tree() { // arrange var adapter = new GithubAdapter("alexanderbeletsky", "blog.beletsky.net"); // act var references = adapter.GetAllReferences(); var tree = adapter.GetTrees(references.First().Object.Sha); // assert tree.Tree.Count.Should().BeGreaterOrEqualTo(1); }
public void should_trees_contain_tree() { // arrange var adapter = new GithubAdapter("alexanderbeletsky", "blog.beletsky.net"); // act var references = adapter.GetAllReferences(); var tree = adapter.GetTrees(references.First().Object.Sha); // assert tree.Tree.Should().NotBeNull(); }
public void should_blob_contain_content_field() { // arrange var adapter = new GithubAdapter("alexanderbeletsky", "blog.beletsky.net"); // act var references = adapter.GetAllReferences(); var trees = adapter.GetTrees(references.First().Object.Sha); var blob = adapter.GetBlob(trees.Tree.First().Sha); // assert blob.Content.Should().NotBeEmpty(); }
public void should_contain_ref_and_object_and_url_fields() { // arrange var adapter = new GithubAdapter("alexanderbeletsky", "blog.beletsky.net"); // act var references = adapter.GetAllReferences(); // assert references.First().Ref.Should().NotBeEmpty(); references.First().Url.Should().NotBeEmpty(); references.First().Object.Should().NotBeNull(); }
public void should_tree_contain_path_and_url_and_sha() { // arrange var adapter = new GithubAdapter("alexanderbeletsky", "blog.beletsky.net"); // act var references = adapter.GetAllReferences(); var tree = adapter.GetTrees(references.First().Object.Sha); // assert tree.Tree.First().Path.Should().NotBeEmpty(); tree.Tree.First().Url.Should().NotBeEmpty(); tree.Tree.First().Sha.Should().NotBeEmpty(); }
/// <summary> /// Create the cdm message processor /// </summary> /// <param name="config"></param> /// <param name="logger"></param> /// <param name="storage"></param> public CdmMessageProcessor(ICdmClientConfig config, ILogger logger, IAdlsStorage storage) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _config = config ?? throw new ArgumentNullException(nameof(config)); _storage = storage ?? throw new ArgumentNullException(nameof(storage)); _lock = new SemaphoreSlim(1, 1); _samplesCacheSize = 0; _cacheUploadTimer = new Timer(CacheTimer_ElapesedAsync); _cacheUploadTriggered = false; _cacheUploadInterval = TimeSpan.FromSeconds(20); _samplesCache = new Dictionary <string, List <MonitoredItemSampleModel> >(); _dataSetsCache = new Dictionary <string, List <DataSetMessageModel> >(); _cdmCorpus = new CdmCorpusDefinition(); _cdmCorpus.SetEventCallback(new EventCallback { Invoke = (level, msg) => { switch (level) { case CdmStatusLevel.Error: _logger.Error("CDM message: {0}", msg); break; case CdmStatusLevel.Warning: _logger.Warning("CDM message: {0}", msg); break; case CdmStatusLevel.Progress: _logger.Verbose("CDM message: {0}", msg); break; case CdmStatusLevel.Info: _logger.Debug("CDM message: {0}", msg); break; } } }); _adapter = new ADLSAdapter($"{config.ADLSg2HostName}", $"/{config.ADLSg2ContainerName}/{config.RootFolder}", config.TenantId, config.AppId, config.AppSecret); _cdmCorpus.Storage.Mount("adls", _adapter); var gitAdapter = new GithubAdapter(); _cdmCorpus.Storage.Mount("cdm", gitAdapter); _cdmCorpus.Storage.DefaultNamespace = "adls"; }
public UpdateService(IServiceProvider serviceProvider) { this.githubAdapter = serviceProvider.GetService <GithubAdapter>(); this.taskDialog = serviceProvider.GetService <ITaskDialog>(); }
public UpdateService(IServiceProvider serviceProvider) { this.githubAdapter = serviceProvider.GetService <GithubAdapter>(); }