// We need the package from nuget Microsoft.Rest.ClientRuntime.Azure.Authentication and Microsoft.Azure.DataLake.Store public static void MainMethod() { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; //tenantId = @"72f988bf-86f1-41af-91ab-2d7cd011db47";// For tenant Microsoft string tenantId = @"cdc5aeea-15c5-4db6-b079-fcadd2505dc2";// For tenant Torus string clientId = secretProvider.GetSecretAsync("datacop-prod", "AdlsAadAuthAppId").Result; string clientKey = secretProvider.GetSecretAsync("datacop-prod", "AdlsAadAuthAppSecret").Result; Console.WriteLine($"For AAD application 'AdlsAadAuthApp'"); Console.WriteLine($"clientId: {clientId}"); Console.WriteLine($"clientKey: {clientKey}"); dataLakeClient = new DataLakeClient(tenantId, clientId, clientKey); RunDemo(); clientId = secretProvider.GetSecretAsync("datacop-prod", "IDEAsBuildVNextAppId").Result; clientKey = secretProvider.GetSecretAsync("datacop-prod", "IDEAsBuildVNextAppSecret").Result; Console.WriteLine($"For AAD application 'IDEAsBuildVNextApp'"); Console.WriteLine($"clientId: {clientId}"); Console.WriteLine($"clientKey: {clientKey}"); dataLakeClient = new DataLakeClient(tenantId, clientId, clientKey); RunDemo(); }
private static void Initialize(string keyVaultName) { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; // PPE resource: api://ead06413-cb7c-408e-a533-2cdbe58bf3a6 // Prod resource; api://9576eb06-ef2f-4f45-a131-e33d0e7ffb00 // For ideas-prod-c14 //Service = @"gdpr"; //VirtualCluster = @"ideas-prod-c14"; //WorkloadQueueName = @"gdpr"; //string tenantId = @"cdc5aeea-15c5-4db6-b079-fcadd2505dc2"; //string resource = @"api://9576eb06-ef2f-4f45-a131-e33d0e7ffb00"; //string clientId = secretProvider.GetSecretAsync(keyVaultName, "GdprClientId").Result; //string clientSecret = secretProvider.GetSecretAsync(keyVaultName, "GdprClientSecret").Result; // For ideas-prod-build-c14 Service = @"pls"; VirtualCluster = @"ideas-prod-build-c14"; WorkloadQueueName = @"build"; // The default value is "build". string tenantId = @"72f988bf-86f1-41af-91ab-2d7cd011db47"; string resource = @"api://d42d6163-88e5-4339-bbb3-28ec2fb3c574"; string clientId = secretProvider.GetSecretAsync(keyVaultName, "PlsAadAuthAppId").Result; string clientSecret = secretProvider.GetSecretAsync(keyVaultName, "PlsAadAuthAppSecret").Result; Token = AzureActiveDirectoryToken.GetAccessTokenV1Async(tenantId, clientId, clientSecret, resource).Result; }
private Constant() { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; this.SQLAccountUserId = secretProvider.GetSecretAsync("csharpmvcwebapikeyvault", "SQLAccountUserId").Result; this.SQLAccountPassword = secretProvider.GetSecretAsync("csharpmvcwebapikeyvault", "SQLAccountPassword").Result; this.StorageAccountKey = secretProvider.GetSecretAsync("csharpmvcwebapikeyvault", "StorageAccountKey").Result; }
private static void Initialize(string keyVaultName) { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; string applicationId = secretProvider.GetSecretAsync(keyVaultName, "CloudScopeLogMonitorApplicationId").Result; string clientId = secretProvider.GetSecretAsync(keyVaultName, "BuildLogMonitorClientId").Result; string clientKey = secretProvider.GetSecretAsync(keyVaultName, "BuildLogMonitorClientKey").Result; cloudScopeLogProvider = new CloudScopeLogProvider(applicationId, clientId, clientKey); }
// The doc link: https://docs.microsoft.com/en-us/azure/azure-monitor/platform/data-collector-api // https://docs.microsoft.com/en-us/azure/azure-monitor/log-query/log-query-overview // Query doc: https://docs.microsoft.com/en-us/azure/azure-monitor/log-query/get-started-portal // Query url: https://ms.portal.azure.com/#@microsoft.onmicrosoft.com/resource/subscriptions/6f7fbe56-fb42-4e46-b14d-dfc86acf0e0f/resourceGroups/CSharpMVCWebAPIApplicationResourceGroup/providers/Microsoft.OperationalInsights/workspaces/CSharpMVCWebAPIApplication/logs // It will cost a long time to create a table when you send a log request to a new table first. public static void MainMethod() { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; string workspaceId = secretProvider.GetSecretAsync("csharpmvcwebapikeyvault", "LogAnalyticsWorkspaceId").Result; string primaryKey = secretProvider.GetSecretAsync("csharpmvcwebapikeyvault", "LogAnalyticsPrimaryKey").Result; AzureMonitorLog azureMonitorLog = new AzureMonitorLog(workspaceId, primaryKey); // tagId is for separating different log locations string tagId = "9491c703-f581-4635-98b3-c2781ae59de2"; string message = "This is a test error log"; azureMonitorLog.LogErrorAsync(tagId, message).Wait(); }
private static void Initialize(string keyVaultName) { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; string workspaceId = secretProvider.GetSecretAsync(keyVaultName, "DataCopLogMonitorWorkspaceId").Result; string clientId = secretProvider.GetSecretAsync(keyVaultName, "BuildLogMonitorClientId").Result; string clientKey = secretProvider.GetSecretAsync(keyVaultName, "BuildLogMonitorClientKey").Result; datacopLogProvider = new DataCopLogProvider(workspaceId, clientId, clientKey); string endpoint = secretProvider.GetSecretAsync(keyVaultName, "CosmosDBEndPoint").Result; string key = secretProvider.GetSecretAsync(keyVaultName, "CosmosDBAuthKey").Result; AzureCosmosDBClient.Endpoint = endpoint; AzureCosmosDBClient.Key = key; }
static void Main(string[] args) { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; //string connectionString = secretProvider.GetSecretAsync("datacop-prod", "IDEAsPortalPPEConnectionString").Result; string connectionString = secretProvider.GetSecretAsync("csharpmvcwebapikeyvault", "SQLConnectionString").Result; var sqlDal = new SqlDataAccessLayer(connectionString); //string cmdText = "SELECT Date, CONVERT(decimal, SUM([Value])) AS MetricValue FROM [DataQuality].[CommercialActiveUsageStats] WITH (NOLOCK) WHERE Date = @Date AND DataRefreshState = 'Stable' AND DateAggregationType = 'RL28' AND [Key] IN ('Platform_web_Count') AND [Workload] IN ('Exchange') GROUP BY Date ORDER BY Date DESC"; string cmdText = @"SELECT count([userid]) as MetricValue FROM[dbo].[user_info] where[userid] > 3"; //Console.WriteLine(GetMetricValueAsDouble(sqlDal, "testName", CommandType.Text, cmdText, DateTime.UtcNow.AddDays(-1), 300).Result); cmdText = @"SELECT CAST(1 AS BIT) as MetricValue FROM[dbo].[user_info] where[userid] > 6"; cmdText = @"SELECT CASE WHEN EXISTS ( SELECT * FROM[dbo].[user_info] where[userid] = 2 ) THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END as MetricValue"; Console.WriteLine(GetMetricValueAsBool(sqlDal, "testName", CommandType.Text, cmdText, DateTime.UtcNow.AddDays(-1), 300).Result); Console.ReadKey(); }
public AzureServiceBusMultiThread() { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; string serviceBusConnectionString = secretProvider.GetSecretAsync(KeyVaultName, "ServiceBusConnectionString").Result; queueClient = new QueueClient(serviceBusConnectionString, QueueName); }
public static void MainMethod() { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; string kustoAppId = secretProvider.GetSecretAsync("datacop-prod", "KustoAppId").Result; string kustoAppKey = secretProvider.GetSecretAsync("datacop-prod", "KustoAppKey").Result; string kustoAuthorityId = secretProvider.GetSecretAsync("datacop-prod", "KustoAuthorityId").Result; // The value is that "https://icmcluster.kusto.windows.net" // It is not very necessary to save it in Azure KeyVault string kustoConnectionString = secretProvider.GetSecretAsync("datacopdev", "KustoConnectionString").Result; string query = @"let idx = 0; let cutoffDate = datetime_add('month',-idx , endofmonth(now())); Incidents | where ModifiedDate <= cutoffDate and SourceCreatedBy == 'DataCopMonitor' | summarize arg_max(ModifiedDate, OwningContactAlias, Status, CreateDate, ImpactStartDate, ResolveDate) by IncidentId | where Status == 'ACTIVE' | distinct IncidentId | count"; string url = $@"{kustoConnectionString}/IcmDataWarehouse"; var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(url) { FederatedSecurity = true, ApplicationClientId = kustoAppId, ApplicationKey = kustoAppKey, Authority = kustoAuthorityId }; var client = KustoClientFactory.CreateCslQueryProvider(kustoConnectionStringBuilder); Console.WriteLine(client.DefaultDatabaseName); client.DefaultDatabaseName = "IcmDataWarehouse"; IDataReader reader = client.ExecuteQuery(query); IList <string[]> a = reader.ToStringColumns(false); Console.WriteLine(a.Count); foreach (string[] strs in a) { foreach (string str in strs) { Console.Write(str + "\t"); } Console.WriteLine(); } }
public static X509Certificate2 GetCertificateFromBase64String() { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; var bundle = secretProvider.GetSecretAsync("datacop-prod", "CosmosRedmondClientCert").Result; byte[] privateKeyBytes = Convert.FromBase64String(bundle); return(new X509Certificate2(privateKeyBytes, (string)null, X509KeyStorageFlags.MachineKeySet)); }
/// <summary> /// Loads the configuration. /// </summary> public void LoadConfiguration() { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; this.TenantId = this.GetRequiredSetting <string>("TenantId"); this.ClientId = secretProvider.GetSecretAsync("datacop-prod", "AdlsAadAuthAppId").Result; this.ClientKey = secretProvider.GetSecretAsync("datacop-prod", "AdlsAadAuthAppSecret").Result; this.DataBricksBaseUrl = new Uri(secretProvider.GetSecretAsync("datacop-prod", "DataBricksUrl").Result); this.DataBricksToken = secretProvider.GetSecretAsync("datacop-prod", "DataBricksToken").Result; // Read libraries { var libraryExpressions = ReadLibraries(); this.Libraries = libraryExpressions.Select(t => GetLibrary(t.path)).ToList(); } this.NodeType = this.GetRequiredSetting <string>("NodeType"); this.SparkNumWorkersMin = this.GetRequiredSetting <int>("SparkNumWorkersMin"); this.SparkNumWorkersMax = this.GetRequiredSetting <int>("SparkNumWorkersMax"); this.NodeTypes = ReadNodeTypes(); this.MaxDegreeOfParallelism = this.GetRequiredSetting <int>("MaxDegreeOfParallelism"); this.TimeoutSeconds = this.GetRequiredSetting <int>("TimeoutSeconds"); this.DataLakeClient = this.DataLakeClient ?? new DataLakeClient(this.TenantId, this.ClientId, this.ClientKey); this.DatabricksClientWrapper = new DatabricksClientWrapper(DataBricksBaseUrl.OriginalString, DataBricksToken); this.SparkClient = new SparkClient(this.DatabricksClientWrapper); this.SparkClientSettings = new SparkClientSettings { Libraries = this.Libraries, NodeType = this.NodeType, NodeTypes = this.NodeTypes, ClientId = this.ClientId, ClientKey = this.ClientKey, NumWorkersMin = this.SparkNumWorkersMin, NumWorkersMax = this.SparkNumWorkersMax, MaxDegreeOfParallelism = this.MaxDegreeOfParallelism, TimeoutSeconds = this.TimeoutSeconds }; }
public static void MainMethod() { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; client_id = "83ac8948-e5e1-4bbd-97ea-798a13dc8bc6"; client_secret = secretProvider.GetSecretAsync("datacop-prod", "AADDataCopClientSecret").Result; resource = "83ac8948-e5e1-4bbd-97ea-798a13dc8bc6"; HttpClientDemo(); HttpWebRequestDemo(); }
/// <summary> /// Retrieves the secret value, based on the given name /// </summary> /// <param name="secretName">The name of the secret key</param> /// <returns>Returns a <see cref="Secret"/> that contains the secret key</returns> /// <exception cref="ArgumentException">The <paramref name="secretName"/> must not be empty</exception> /// <exception cref="ArgumentNullException">The <paramref name="secretName"/> must not be null</exception> /// <exception cref="SecretNotFoundException">The secret was not found, using the given name</exception> public async Task <Secret> GetSecretAsync(string secretName) { Guard.NotNullOrWhitespace(secretName, nameof(secretName), "Requires a non-blank secret name when mutating secret names"); Secret secret = await SafeguardMutateSecretAsync(secretName, mutatedSecretName => { return(_implementation.GetSecretAsync(mutatedSecretName)); }); return(secret); }
/// <summary> /// Retrieves the secret value, based on the given name /// </summary> /// <param name="secretName">The name of the secret key</param> /// <param name="ignoreCache">Indicates if the cache should be used or skipped</param> /// <returns>Returns a <see cref="Task{TResult}"/> that contains the secret key</returns> /// <exception cref="ArgumentException">The name must not be empty</exception> /// <exception cref="ArgumentNullException">The name must not be null</exception> /// <exception cref="SecretNotFoundException">The secret was not found, using the given name</exception> public async Task <Secret> GetSecretAsync(string secretName, bool ignoreCache) { if (ignoreCache == false && MemoryCache.TryGetValue(secretName, out Secret cachedSecret)) { return(cachedSecret); } Task <Secret> getSecret = _secretProvider.GetSecretAsync(secretName); Secret secret = getSecret == null ? null : await getSecret; MemoryCache.Set(secretName, secret, CacheEntry); return(secret); }
/// <summary> /// Retrieves the secret value, based on the given name /// </summary> /// <param name="secretName">The name of the secret key</param> /// <param name="ignoreCache">Indicates if the cache should be used or skipped</param> /// <returns>Returns a <see cref="Task{TResult}"/> that contains the secret key</returns> /// <exception cref="ArgumentException">The name must not be empty</exception> /// <exception cref="ArgumentNullException">The name must not be null</exception> /// <exception cref="SecretNotFoundException">The secret was not found, using the given name</exception> public async Task <Secret> GetSecretAsync(string secretName, bool ignoreCache) { Guard.NotNullOrWhitespace(secretName, nameof(secretName), "Requires a non-blank secret name to look up the secret"); if (ignoreCache == false && MemoryCache.TryGetValue(secretName, out Secret cachedSecret)) { return(cachedSecret); } Task <Secret> getSecret = _secretProvider.GetSecretAsync(secretName); Secret secret = getSecret == null ? null : await getSecret; MemoryCache.Set(secretName, secret, CacheEntry); return(secret); }
public static async Task SendMainAsync() { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; string serviceBusConnectionString = secretProvider.GetSecretAsync(KeyVaultName, "ServiceBusConnectionString").Result; queueClient = new QueueClient(serviceBusConnectionString, QueueName); Console.WriteLine("======================================================"); Console.WriteLine("Press ENTER key to exit after sending all the messages."); Console.WriteLine("======================================================"); // Send messages. await SendMessagesAsync(); await queueClient.CloseAsync(); }
public async Task OnGet() { initBlobCount = -1; initTxtCount = -1; var apiKey = await _secretProvider.GetSecretAsync("HTC-API-Key"); HttpClient.DefaultRequestHeaders.Clear(); HttpClient.DefaultRequestHeaders.Add("x-api-key", apiKey.Value); var autoEvent = new AutoResetEvent(false); Timer _tm = new Timer(refreshData, autoEvent, 20000, 20000); //read cookie from Request object string cookieBoxId = Request.Cookies["boxId"]; string cookieActivationCode = Request.Cookies["activationCode"]; if (Request.Query.ContainsKey("boxId")) { // The user is asking/forcing to connect to a different (existing!) box, so we override this cookieBoxId = Request.Query["boxId"]; } if (string.IsNullOrEmpty(cookieBoxId)) { JObject responseString = await RegisterNewBox(); var respBoxId = responseString.GetValue("boxId").ToString(); var respActivationCode = responseString.GetValue("activationCode").ToString(); var respBoxStatus = responseString.GetValue("status").ToString(); Response.Cookies.Append("boxId", respBoxId); Response.Cookies.Append("activationCode", respActivationCode); BoxId = respBoxId; ActivationCode = respActivationCode; BoxStatus = respBoxStatus; } else { BoxId = cookieBoxId; ActivationCode = cookieActivationCode; BoxStatus = (await GetBoxStatus()).GetValue("status").ToString(); } }
public static async Task ReceiveMainAsync() { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; string serviceBusConnectionString = secretProvider.GetSecretAsync(KeyVaultName, "ServiceBusConnectionString").Result; queueClient = new QueueClient(serviceBusConnectionString, QueueName); Console.WriteLine("======================================================"); Console.WriteLine("Press ENTER key to exit after receiving all the messages."); Console.WriteLine("======================================================"); // Register QueueClient's MessageHandler and receive messages in a loop await RegisterOnMessageHandlerAndReceiveMessages(); Console.ReadKey(); //Thread.Sleep(3000); await queueClient.CloseAsync(); }
public async Task <string> GetSecretAsync(string secretName, bool ignoreCache) { // Check if the secret is already cached, return it if it is if (ignoreCache == false && memoryCache.TryGetValue(secretName, out string secretValue)) { telemetryProvider.IncreaseGauge("Cache Hit"); telemetryProvider.LogTrace($"Secret '{secretName}' cached"); return(secretValue); } // Fetch latest secret from Key Vault var secret = await secretProvider.GetSecretAsync(secretName); // Store found secret in memory cache telemetryProvider.IncreaseGauge("Cache Miss"); telemetryProvider.LogTrace($"Secret '{secretName}' was not cached"); memoryCache.Set(secretName, secret, defaultCacheExpiryDuration); return(secret); }
static async Task SendMessagesAsync() { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; string serviceBusConnectionString = secretProvider.GetSecretAsync(KeyVaultName, "ServiceBusConnectionString").Result; try { for (var i = 0; i < NumberOfMessages; i++) { DateTime beforDT = System.DateTime.Now; //耗时巨大的代码 IQueueClient queueClient = new QueueClient(serviceBusConnectionString, QueueName); DateTime afterDT = System.DateTime.Now; TimeSpan ts = afterDT.Subtract(beforDT); beforDT = afterDT; Console.WriteLine("create queue client time cost: {0}ms.", ts.TotalMilliseconds); // Create a new message to send to the queue. string messageBody = $"Message {i}"; Message message = new Message(Encoding.UTF8.GetBytes(messageBody)); message.MessageId = $"{i}"; // Write the body of the message to the console. Console.WriteLine($"Sending message: {messageBody}"); beforDT = System.DateTime.Now; // Send the message to the queue. await queueClient.SendAsync(message); afterDT = System.DateTime.Now; ts = afterDT.Subtract(beforDT); Console.WriteLine("sned message time cost: {0}ms.", ts.TotalMilliseconds); await queueClient.CloseAsync(); } } catch (Exception exception) { Console.WriteLine($"{DateTime.Now} :: Exception: {exception.Message}"); } }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); string secretName = req.Query["secretName"]; string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); dynamic data = JsonConvert.DeserializeObject(requestBody); secretName = secretName ?? data?.secretName; var secret = await secretProvider.GetSecretAsync(secretName); string responseMessage = string.IsNullOrEmpty(secretName) ? "This HTTP triggered function executed successfully. Pass a secretName in the query string or in the request body for a response." : $"Hello this HTTP triggered function retrieved the {secretName} successfully: {secret.Value}"; return(new OkObjectResult(responseMessage)); }
/// <summary> /// Retrieves the secret value, based on the given name /// </summary> /// <param name="secretName">The name of the secret key</param> /// <param name="ignoreCache">Indicates if the cache should be used or skipped</param> /// <returns>Returns a <see cref="Task{TResult}"/> that contains the secret key</returns> /// <exception cref="ArgumentException">The name must not be empty</exception> /// <exception cref="ArgumentNullException">The name must not be null</exception> /// <exception cref="SecretNotFoundException">The secret was not found, using the given name</exception> public async Task <Secret> GetSecretAsync(string secretName, bool ignoreCache) { // Look-up the cached secret if (ignoreCache == false && _memoryCache.TryGetValue(secretName, out Secret cachedSecret)) { return(cachedSecret); } // Read secret from provider Task <Secret> getSecret = _secretProvider.GetSecretAsync(secretName); Secret secret = getSecret == null ? null : await getSecret; // Set cache options. var cacheEntryOptions = new MemoryCacheEntryOptions() // Keep in cache for this time, reset time if accessed. .SetSlidingExpiration(_cacheConfiguration.Duration); // Save data in cache. _memoryCache.Set(secretName, secret, cacheEntryOptions); return(secret); }
static async Task RegisterOnMessageHandlerAndReceiveMessages() { ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; string serviceBusConnectionString = secretProvider.GetSecretAsync(KeyVaultName, "ServiceBusConnectionString").Result; // Configure the MessageHandler Options in terms of exception handling, number of concurrent messages to deliver etc. var messageHandlerOptions = new MessageHandlerOptions(ExceptionReceivedHandler) { // Maximum number of Concurrent calls to the callback `ProcessMessagesAsync`, set to 1 for simplicity. // Set it according to how many messages the application wants to process in parallel. MaxConcurrentCalls = 1, // Indicates whether MessagePump should automatically complete the messages after returning from User Callback. // False below indicates the Complete will be handled by the User Callback as in `ProcessMessagesAsync` below. AutoComplete = true }; IQueueClient queueClient = new QueueClient(serviceBusConnectionString, QueueName); // Register the function that will process messages queueClient.RegisterMessageHandler(ProcessMessagesAsync, messageHandlerOptions); //await queueClient.CloseAsync(); }
/// <summary> /// Retrieves the secret value, based on the given name. /// </summary> /// <param name="secretName">The name of the secret key</param> /// <returns>Returns a <see cref="T:Arcus.Security.Core.Secret" /> that contains the secret key</returns> /// <exception cref="T:System.ArgumentException">The <paramref name="secretName" /> must not be empty</exception> /// <exception cref="T:System.ArgumentNullException">The <paramref name="secretName" /> must not be null</exception> /// <exception cref="T:Arcus.Security.Core.SecretNotFoundException">The secret was not found, using the given name</exception> public async Task <Secret> GetSecretAsync(string secretName) { Guard.NotNullOrWhitespace(secretName, nameof(secretName), "Requires a non-blank secret name to access the secret"); return(await WhenAuthorized(() => _secretProvider.GetSecretAsync(secretName))); }
public static void MainMethod() { string keyVaultName = "datacop-ppe"; //string keyVaultName = "datacop-prod"; string queueName = "cosmostest"; //string queueName = "alert"; //string queueName = "onboardingrequest"; //string queueName = "orchestratortrigger"; //string queueName = "onboardingresponse"; ISecretProvider secretProvider = KeyVaultSecretProvider.Instance; string serviceBusConnectionString = secretProvider.GetSecretAsync(keyVaultName, "ServiceBusConnectionString").Result; IQueueClient queueClient = new QueueClient(serviceBusConnectionString, queueName); //Send message to the queue. //Create a new message to send to the queue. string requestId = Guid.NewGuid().ToString(); string datasetId = Guid.NewGuid().ToString(); // Message for merging adls and cosmos onboarding test //string messageBody = "{\"requestId\":\"" + requestId + "\",\"requestType\":\"Create\",\"dataset\":{\"id\":\"" + datasetId + "\",\"name\":\"ExcelActiveDevices\",\"createTime\":\"0001-01-01T00:00:00\",\"lastModifiedTime\":\"0001-01-01T00:00:00\",\"connectionInfo\":{\"cosmosVC\":\"https://cosmos14.osdinfra.net/cosmos/Ideas.prod/\",\"dataLakeStore\":\"ideas-prod-c14.azuredatalakestore.net\",\"streamPath\":\"local/Partner/PreRelease/dev/activeusage/excelcommercialdevice/%Y/%m/ExcelActiveDevices_%Y_%m_%d.ss\"},\"dataFabric\":\"ADLS\",\"category\":\"None\",\"startDate\":\"2019-06-04T00:00:00Z\",\"rollingWindow\":\"120.00:00:00\",\"grain\":\"Daily\",\"sla\":\"6.0:0:0\",\"isEnabled\":true,\"ttl\":-1},\"alert\":{\"targetIcMConnector\":\"64c4853b-78cd-41ff-8eff-65083863a2e1\",\"containerPublicId\":\"965b31d9-e7e4-45bf-85d3-39810e289096\",\"serviceCustomFieldNames\":[\"DatasetId\",\"AlertType\",\"DisplayInSurface\",\"BusinessOwner\"],\"severity\":4,\"alertThreshold\":0,\"alertIntervalMins\":0,\"isAlertSuppressionEnabled\":true,\"suppressionMins\":60,\"routingId\":\"IDEAS://IDEAsDataCopTest\",\"owningTeamId\":\"IDEAS\\\\IDEAsDataCopTest\",\"ttl\":-1}}"; //messageBody = "{\"requestId\":\"" + requestId + "\",\"requestType\":\"Create\",\"dataset\":{\"id\":\"" + datasetId + "\",\"name\":\"ExcelActiveDevices\",\"createTime\":\"0001-01-01T00:00:00\",\"lastModifiedTime\":\"0001-01-01T00:00:00\",\"connectionInfo\":{\"dataLakeStore\":\"ideas-prod-c14.azuredatalakestore.net\",\"streamPath\":\"local/Partner/PreRelease/dev/activeusage/excelcommercialdevice/%Y/%m/ExcelActiveDevices_%Y_%m_%d.ss\"},\"dataFabric\":\"ADLS\",\"category\":\"None\",\"startDate\":\"2019-06-04T00:00:00Z\",\"rollingWindow\":\"120.00:00:00\",\"grain\":\"Daily\",\"sla\":\"6.0:0:0\",\"isEnabled\":true,\"ttl\":-1},\"alert\":{\"targetIcMConnector\":\"64c4853b-78cd-41ff-8eff-65083863a2e1\",\"containerPublicId\":\"965b31d9-e7e4-45bf-85d3-39810e289096\",\"serviceCustomFieldNames\":[\"DatasetId\",\"AlertType\",\"DisplayInSurface\",\"BusinessOwner\"],\"severity\":4,\"alertThreshold\":0,\"alertIntervalMins\":0,\"isAlertSuppressionEnabled\":true,\"suppressionMins\":60,\"routingId\":\"IDEAS://IDEAsDataCopTest\",\"owningTeamId\":\"IDEAS\\\\IDEAsDataCopTest\",\"ttl\":-1}}"; //messageBody = "{\"requestId\":\"" + requestId + "\",\"requestType\":\"Create\",\"dataset\":{\"id\":\"" + datasetId + "\",\"name\":\"ExcelActiveDevices\",\"createTime\":\"0001-01-01T00:00:00\",\"lastModifiedTime\":\"0001-01-01T00:00:00\",\"connectionInfo\":{\"cosmosVC\":\"https://cosmos14.osdinfra.net/cosmos/Ideas.prod/\",\"streamPath\":\"local/Partner/PreRelease/dev/activeusage/excelcommercialdevice/%Y/%m/ExcelActiveDevices_%Y_%m_%d.ss\"},\"dataFabric\":\"Cosmos\",\"category\":\"None\",\"startDate\":\"2019-06-04T00:00:00Z\",\"rollingWindow\":\"120.00:00:00\",\"grain\":\"Daily\",\"sla\":\"6.0:0:0\",\"isEnabled\":true,\"ttl\":-1},\"alert\":{\"targetIcMConnector\":\"64c4853b-78cd-41ff-8eff-65083863a2e1\",\"containerPublicId\":\"965b31d9-e7e4-45bf-85d3-39810e289096\",\"serviceCustomFieldNames\":[\"DatasetId\",\"AlertType\",\"DisplayInSurface\",\"BusinessOwner\"],\"severity\":4,\"alertThreshold\":0,\"alertIntervalMins\":0,\"isAlertSuppressionEnabled\":true,\"suppressionMins\":60,\"routingId\":\"IDEAS://IDEAsDataCopTest\",\"owningTeamId\":\"IDEAS\\\\IDEAsDataCopTest\",\"ttl\":-1}}"; //messageBody = "{\"requestId\":\"" + requestId + "\",\"requestType\":\"Adhoc\",\"dataset\":{\"id\":\"" + datasetId + "\",\"name\":\"dataForKatana\",\"createTime\":\"0001-01-01T00:00:00\",\"lastModifiedTime\":\"0001-01-01T00:00:00\",\"connectionInfo\":{\"cosmosVC\":\"https://cosmos14.osdinfra.net/cosmos/Ideas.prod/\",\"streamPath\":\"shares/AD_DataAnalytics/AD_DataAnalytics/Data/PublishedForKatana/IDEA/%Y/%m/%d/IDEA.DNA.Public.UserActivity.Misc_MAU_Daily/dataForKatana.ss\"},\"dataFabric\":\"Cosmos\",\"category\":\"None\",\"startDate\":\"2019-08-22T00:00:00Z\",\"endDate\":\"2019-08-25T00:00:00Z\",\"grain\":\"Daily\",\"sla\":\"3.0:0:0\",\"isEnabled\":false,\"ttl\":-1}}"; //string requestsStr = FileOperation.ReadFile.ThirdMethod(@"D:\data\company_work\M365\IDEAs\request.txt"); //string[] requestsStrSplits = requestsStr.Split(new char[] { '\n' }); //foreach (var requestsStrSplit in requestsStrSplits) for (int i = 1; i < 7; i++) { //string requestsStrSplit = FileOperation.ReadFile.ThirdMethod($@"D:\data\company_work\M365\IDEAs\request\{i}.txt"); //Message message = new Message(Encoding.UTF8.GetBytes(requestsStrSplit)); //message.MessageId = Guid.NewGuid().ToString(); //Console.WriteLine(requestsStrSplit); //queueClient.SendAsync(message).Wait(); break; } //string response = "{\"requestId\":\"c7c864d1-9a5e-4a02-afa4-fb2bf3399273\",\"datasetId\":\"7e118c1e-f2b3-462d-97ce-f45bc7a378f8\",\"status\":200,\"scores\":{\"scoreTime\":\"2019-09-19T08:37:25.1608155Z\",\"score\":100.0,\"measures\":[{\"type\":\"Availability\",\"score\":100.0,\"errors\":[]}]},\"requestor\":\"OnboardRequest\"}"; //string messageStr = "{\"requestId\":\"136503cc-745f-4c6e-a0f3-ebf4555b1f14\",\"requestType\":\"Adhoc\",\"dataset\":{\"id\":\"f4967631-884d-41a5-92ff-16be925bdf1b\",\"name\":\"SandCOATPRaw\",\"createTime\":\"0001-01-01T00:00:00\",\"lastModifiedTime\":\"0001-01-01T00:00:00\",\"connectionInfo\":{\"cosmosVC\":\"https://cosmos14.osdinfra.net/cosmos/Ideas.prod/\",\"dataLakeStore\":\"\",\"streamPath\":\"shares/ffo.antispam/SafeAttachment/%Y/%m/%d/ATPUsage.ss\"},\"dataFabric\":\"Cosmos\",\"category\":\"None\",\"startDate\":\"2019-05-01T00:00:00Z\",\"rollingWindow\":\"60.00:00:00\",\"grain\":\"Daily\",\"sla\":\"3.0:0:0\",\"isEnabled\":false,\"ttl\":-1}}"; //for (int i = 0; i < 10; i++) //{ // Message message = new Message(Encoding.UTF8.GetBytes(messageStr)); // message.MessageId = Guid.NewGuid().ToString(); // queueClient.SendAsync(message).Wait(); //} //Console.WriteLine(datasetId); //Console.WriteLine("End..."); // Recieve message from the queue AzureServiceBus serviceBus = new AzureServiceBus(); serviceBus.QueueClient = queueClient; serviceBus.RegisterOnMessageHandlerAndReceiveMessages(); }