public async Task <long> GetMessageCountAsync(string queueName) { if (Token.IsExpired) { Token = GetNewToken(); } return(await GetQueueMessages(ConnectionValues.ServiceBusEndpoint, queueName, Token)); }
public void BuildToken() { ServiceBusConnectionValues values = ServiceBusConnectionValues.CreateFromConnectionString(connectionString); TimeSpan validFor = new TimeSpan(1, 0, 0); DateTime expiresOn = DateTime.Now.Add(validFor); ServiceBusToken token = ServiceBusTokenManager.GetToken(values, validFor.TotalSeconds); Assert.AreEqual(token.IsExpired, false); Assert.AreEqual(token.ExpiresOn > expiresOn, true); Assert.AreNotEqual(token.Value, string.Empty); Trace.WriteLine(token.Value); }
private async Task <long> GetQueueMessages(string serviceBusUrl, string queueName, ServiceBusToken token) { var apiVersion = "2017-04"; var queueEndpoint = $"{serviceBusUrl}{queueName}/?api-version={apiVersion}"; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Add("Authorization", token.Value); var xmlResponse = await client.RestGet(queueEndpoint); var messageCount = new Regex(@"<MessageCount>(.+?)<\/MessageCount>").Match(xmlResponse).Groups[1].Value; return(long.Parse(messageCount)); } }
public ServiceBusQueueClient(ServiceBusConnectionValues connectionValues) { ConnectionValues = connectionValues; Token = GetNewToken(); }