public void DeleteQueues(Property[] inputs, RequiredProperties required, Property[] returns, MethodType methodType, ServiceObject serviceObject) { Utilities.ServiceUtilities serviceUtilities = new Utilities.ServiceUtilities(serviceBroker); serviceObject.Properties.InitResultTable(); NamespaceManager namespaceManager = null; try { string queuepath = string.Empty; if (inputs.Length == 0) { queuepath = serviceObject.MetaData.DisplayName; } else { queuepath = inputs.Where(p => p.Name.Equals("queue")).First().Value.ToString(); } namespaceManager = serviceUtilities.GetNamespaceManager(inputs.Where(p => p.Name.Equals("requesttimeout")).FirstOrDefault()); namespaceManager.DeleteQueue(queuepath); returns.Where(p => p.Name.Equals("responsestatus")).First().Value = ResponseStatus.Success; returns.Where(p => p.Name.Equals("responsestatusdescription")).First().Value = "Queue deleted"; } catch (Exception ex) { returns.Where(p => p.Name.Equals("responsestatus")).First().Value = ResponseStatus.Error; returns.Where(p => p.Name.Equals("responsestatusdescription")).First().Value = ex.Message; } finally { namespaceManager = null; } serviceObject.Properties.BindPropertiesToResultTable(); }
public void ListQueues(Property[] inputs, RequiredProperties required, Property[] returns, MethodType methodType, ServiceObject serviceObject) { Utilities.ServiceUtilities serviceUtilities = new Utilities.ServiceUtilities(serviceBroker); serviceObject.Properties.InitResultTable(); NamespaceManager namespaceManager = null; System.Data.DataRow dr; try { namespaceManager = serviceUtilities.GetNamespaceManager(inputs.Where(p => p.Name.Equals("requesttimeout")).FirstOrDefault()); IEnumerable <QueueDescription> Qs = namespaceManager.GetQueues(); foreach (QueueDescription Queue in Qs) { dr = serviceBroker.ServicePackage.ResultTable.NewRow(); foreach (Property prop in returns) { switch (prop.Name) { case "defaultmessagetimetolive": dr[prop.Name] = Queue.DefaultMessageTimeToLive.TotalSeconds; break; case "duplicatedetectionhistorytimewindow": dr[prop.Name] = Queue.DuplicateDetectionHistoryTimeWindow.TotalSeconds; break; case "enablebatchedoperations": prop.Value = Queue.EnableBatchedOperations; break; case "enabledeadletteringonmessageexpiration": dr[prop.Name] = Queue.EnableDeadLetteringOnMessageExpiration; break; case "isreadonly": dr[prop.Name] = Queue.IsReadOnly; break; case "lockduration": dr[prop.Name] = Queue.LockDuration.TotalSeconds; break; case "maxdeliverycount": dr[prop.Name] = Queue.MaxDeliveryCount; break; case "maxsizeinmegabytes": dr[prop.Name] = Queue.MaxSizeInMegabytes; break; case "messagecount": dr[prop.Name] = Queue.MessageCount; break; case "queue": dr[prop.Name] = Queue.Path; break; case "requiresduplicatedetection": dr[prop.Name] = Queue.RequiresDuplicateDetection; break; case "requiressession": dr[prop.Name] = Queue.RequiresSession; break; case "sizeinbytes": dr[prop.Name] = Queue.SizeInBytes; break; } } dr["responsestatus"] = ResponseStatus.Success; dr["responsestatusdescription"] = "Queues listed"; serviceBroker.ServicePackage.ResultTable.Rows.Add(dr); } } catch (Exception ex) { dr = serviceBroker.ServicePackage.ResultTable.NewRow(); dr["responsestatus"] = ResponseStatus.Error; dr["responsestatusdescription"] = ex.Message; serviceBroker.ServicePackage.ResultTable.Rows.Add(dr); return; } finally { namespaceManager = null; } }
public void CreateQueues(Property[] inputs, RequiredProperties required, Property[] returns, MethodType methodType, ServiceObject serviceObject) { Utilities.ServiceUtilities serviceUtilities = new Utilities.ServiceUtilities(serviceBroker); serviceObject.Properties.InitResultTable(); NamespaceManager namespaceManager = null; QueueDescription ReturnQueue = null; try { string queuepath = string.Empty; if (inputs.Length == 0) { queuepath = serviceObject.MetaData.DisplayName; } else { queuepath = inputs.Where(p => p.Name.Equals("queue")).First().Value.ToString(); } namespaceManager = serviceUtilities.GetNamespaceManager(inputs.Where(p => p.Name.Equals("requesttimeout")).FirstOrDefault()); if (serviceObject.Methods[0].Name.Equals("createqueuefulldetails")) { QueueDescription Queue = new QueueDescription(queuepath); foreach (Property prop in inputs) { if (prop.Value != null) { switch (prop.Name) { case "queue": Queue.Path = queuepath; break; case "defaultmessagetimetolive": Queue.DefaultMessageTimeToLive = new TimeSpan(long.Parse(prop.Value.ToString()) * TimeSpan.TicksPerSecond); break; case "duplicatedetectionhistorytimewindow": Queue.DuplicateDetectionHistoryTimeWindow = new TimeSpan(long.Parse(prop.Value.ToString()) * TimeSpan.TicksPerSecond); break; case "lockduration": Queue.LockDuration = new TimeSpan(long.Parse(prop.Value.ToString()) * TimeSpan.TicksPerSecond); break; case "maxsizeinmegabytes": Queue.MaxSizeInMegabytes = long.Parse(prop.Value.ToString()); break; case "enabledeadletteringonmessageexpiration": Queue.EnableDeadLetteringOnMessageExpiration = bool.Parse(prop.Value.ToString()); break; case "requiresduplicatedetection": Queue.RequiresDuplicateDetection = bool.Parse(prop.Value.ToString()); break; case "requiressession": Queue.RequiresSession = bool.Parse(prop.Value.ToString()); break; } } } ReturnQueue = namespaceManager.CreateQueue(Queue); } else { // create with defaults ReturnQueue = namespaceManager.CreateQueue(queuepath); } foreach (Property prop in returns) { switch (prop.Name) { case "defaultmessagetimetolive": prop.Value = ReturnQueue.DefaultMessageTimeToLive.TotalSeconds; break; case "duplicatedetectionhistorytimewindow": prop.Value = ReturnQueue.DuplicateDetectionHistoryTimeWindow.TotalSeconds; break; case "enablebatchedoperations": prop.Value = ReturnQueue.EnableBatchedOperations; break; case "enabledeadletteringonmessageexpiration": prop.Value = ReturnQueue.EnableDeadLetteringOnMessageExpiration; break; case "isreadonly": prop.Value = ReturnQueue.IsReadOnly; break; case "lockduration": prop.Value = ReturnQueue.LockDuration.TotalSeconds; break; case "maxdeliverycount": prop.Value = ReturnQueue.MaxDeliveryCount; break; case "maxsizeinmegabytes": prop.Value = ReturnQueue.MaxSizeInMegabytes; break; case "messagecount": prop.Value = ReturnQueue.MessageCount; break; case "queue": prop.Value = ReturnQueue.Path; break; case "requiresduplicatedetection": prop.Value = ReturnQueue.RequiresDuplicateDetection; break; case "requiressession": prop.Value = ReturnQueue.RequiresSession; break; case "sizeinbytes": prop.Value = ReturnQueue.SizeInBytes; break; } } returns.Where(p => p.Name.Equals("responsestatus")).First().Value = ResponseStatus.Success; returns.Where(p => p.Name.Equals("responsestatusdescription")).First().Value = "Queue created"; } catch (Exception ex) { returns.Where(p => p.Name.Equals("responsestatus")).First().Value = ResponseStatus.Error; returns.Where(p => p.Name.Equals("responsestatusdescription")).First().Value = ex.Message; } finally { namespaceManager = null; } serviceObject.Properties.BindPropertiesToResultTable(); }
public void ListEventHubs(Property[] inputs, RequiredProperties required, Property[] returns, MethodType methodType, ServiceObject serviceObject) { Utilities.ServiceUtilities serviceUtilities = new Utilities.ServiceUtilities(serviceBroker); serviceObject.Properties.InitResultTable(); NamespaceManager namespaceManager = null; System.Data.DataRow dr; try { namespaceManager = serviceUtilities.GetNamespaceManager(inputs.Where(p => p.Name.Equals("requesttimeout")).FirstOrDefault()); IEnumerable <EventHubDescription> EHs = namespaceManager.GetEventHubs(); foreach (EventHubDescription EventHub in EHs) { dr = serviceBroker.ServicePackage.ResultTable.NewRow(); foreach (Property prop in returns) { switch (prop.Name) { case "createdat": dr[prop.Name] = EventHub.CreatedAt; break; case "isreadonly": dr[prop.Name] = EventHub.IsReadOnly; break; case "messageretentionindays": prop.Value = EventHub.MessageRetentionInDays; break; case "partitioncount": dr[prop.Name] = EventHub.PartitionCount; break; case "partitionids": dr[prop.Name] = string.Join(",", EventHub.PartitionIds); break; case "path": dr[prop.Name] = EventHub.Path; break; case "status": dr[prop.Name] = EventHub.Status.ToString(); break; case "updatedat": dr[prop.Name] = EventHub.UpdatedAt; break; case "usermetadata": dr[prop.Name] = EventHub.UserMetadata; break; case "eventhub": dr[prop.Name] = EventHub.Path; break; } } dr["responsestatus"] = ResponseStatus.Success; dr["responsestatusdescription"] = "Event Hubs listed"; serviceBroker.ServicePackage.ResultTable.Rows.Add(dr); } } catch (Exception ex) { dr = serviceBroker.ServicePackage.ResultTable.NewRow(); dr["responsestatus"] = ResponseStatus.Error; dr["responsestatusdescription"] = ex.Message; serviceBroker.ServicePackage.ResultTable.Rows.Add(dr); return; } finally { namespaceManager = null; } }
public void CreateEventHubs(Property[] inputs, RequiredProperties required, Property[] returns, MethodType methodType, ServiceObject serviceObject) { Utilities.ServiceUtilities serviceUtilities = new Utilities.ServiceUtilities(serviceBroker); serviceObject.Properties.InitResultTable(); NamespaceManager namespaceManager = null; EventHubDescription ReturnEventHub = null; try { string eventhubpath = string.Empty; if (inputs.Length == 0) { eventhubpath = serviceObject.MetaData.DisplayName; } else { eventhubpath = inputs.Where(p => p.Name.Equals("eventhub")).First().Value.ToString(); } namespaceManager = serviceUtilities.GetNamespaceManager(inputs.Where(p => p.Name.Equals("requesttimeout")).FirstOrDefault()); if (serviceObject.Methods[0].Name.Equals("createeventhubfulldetails")) { EventHubDescription EventHub = new EventHubDescription(eventhubpath); foreach (Property prop in inputs) { if (prop.Value != null) { switch (prop.Name) { case "eventhub": EventHub.Path = eventhubpath; break; case "partitioncount": EventHub.PartitionCount = int.Parse(prop.Value.ToString()); break; case "messageretentionindays": EventHub.MessageRetentionInDays = int.Parse(prop.Value.ToString()); break; } } } ReturnEventHub = namespaceManager.CreateEventHub(EventHub); } else { // create with defaults ReturnEventHub = namespaceManager.CreateEventHub(eventhubpath); } foreach (Property prop in returns) { switch (prop.Name) { case "createdat": prop.Value = ReturnEventHub.CreatedAt; break; case "isreadonly": prop.Value = ReturnEventHub.IsReadOnly; break; case "messageretentionindays": prop.Value = ReturnEventHub.MessageRetentionInDays; break; case "partitioncount": prop.Value = ReturnEventHub.PartitionCount; break; case "partitionids": prop.Value = string.Join(",", ReturnEventHub.PartitionIds); break; case "path": prop.Value = ReturnEventHub.Path; break; case "status": prop.Value = ReturnEventHub.Status.ToString(); break; case "updatedat": prop.Value = ReturnEventHub.UpdatedAt; break; case "usermetadata": prop.Value = ReturnEventHub.UserMetadata; break; } } returns.Where(p => p.Name.Equals("responsestatus")).First().Value = ResponseStatus.Success; returns.Where(p => p.Name.Equals("responsestatusdescription")).First().Value = "Event Hub created"; } catch (Exception ex) { returns.Where(p => p.Name.Equals("responsestatus")).First().Value = ResponseStatus.Error; returns.Where(p => p.Name.Equals("responsestatusdescription")).First().Value = ex.Message; } finally { namespaceManager = null; } serviceObject.Properties.BindPropertiesToResultTable(); }
public void SendEventHubMessage(Property[] inputs, RequiredProperties required, Property[] returns, MethodType methodType, ServiceObject serviceObject) { Utilities.ServiceUtilities serviceUtilities = new Utilities.ServiceUtilities(serviceBroker); serviceObject.Properties.InitResultTable(); EventHubClient Client = null; EventData eventData = null; try { string eventhubpath = string.Empty; if (inputs.Length == 0) { eventhubpath = serviceObject.MetaData.DisplayName; } else { eventhubpath = inputs.Where(p => p.Name.Equals("eventhub")).First().Value.ToString(); } if (inputs.Where(p => p.Name.Equals("data")).Count() > 0) { string msgBody = inputs.Where(p => p.Name.Equals("data")).First().Value.ToString(); eventData = new EventData(new MemoryStream(Encoding.UTF8.GetBytes(msgBody))); } else { throw new Exception("Data is required to send an Event Hub Message"); } Client = serviceUtilities.GetEventHubClient(eventhubpath); Client.Send(eventData); //foreach (Property prop in returns) //{ // switch (prop.Name) // { // case "createdat": // prop.Value = Client.CreatedAt; // break; // case "isreadonly": // prop.Value = Client.IsReadOnly; // break; // case "messageretentionindays": // prop.Value = Client.MessageRetentionInDays; // break; // case "partitioncount": // prop.Value = Client.PartitionCount; // break; // case "partitionids": // prop.Value = string.Join(",", Client.PartitionIds); // break; // case "path": // prop.Value = Client.Path; // break; // case "status": // prop.Value = Client.Status.ToString(); // break; // case "updatedat": // prop.Value = Client.UpdatedAt; // break; // case "usermetadata": // prop.Value = Client.UserMetadata; // break; // } //} returns.Where(p => p.Name.Equals("eventhub")).First().Value = inputs.Where(p => p.Name.Equals("eventhub")).First().Value.ToString(); returns.Where(p => p.Name.Equals("data")).First().Value = inputs.Where(p => p.Name.Equals("data")).First().Value.ToString(); returns.Where(p => p.Name.Equals("responsestatus")).First().Value = ResponseStatus.Success; returns.Where(p => p.Name.Equals("responsestatusdescription")).First().Value = "Event Hub message sent"; } catch (Exception ex) { returns.Where(p => p.Name.Equals("responsestatus")).First().Value = ResponseStatus.Error; returns.Where(p => p.Name.Equals("responsestatusdescription")).First().Value = ex.Message; } finally { try { Client.Close(); } catch { } Client = null; } serviceObject.Properties.BindPropertiesToResultTable(); }
public void ListTopics(Property[] inputs, RequiredProperties required, Property[] returns, MethodType methodType, ServiceObject serviceObject) { Utilities.ServiceUtilities serviceUtilities = new Utilities.ServiceUtilities(serviceBroker); serviceObject.Properties.InitResultTable(); System.Data.DataRow dr; NamespaceManager namespaceManager = null; try { namespaceManager = serviceUtilities.GetNamespaceManager(inputs.Where(p => p.Name.Equals("requesttimeout")).FirstOrDefault()); IEnumerable <TopicDescription> Ts = namespaceManager.GetTopics(); foreach (TopicDescription Topic in Ts) { dr = serviceBroker.ServicePackage.ResultTable.NewRow(); foreach (Property prop in returns) { switch (prop.Name) { case "defaultmessagetimetolive": dr[prop.Name] = Topic.DefaultMessageTimeToLive.TotalSeconds; break; case "duplicatedetectionhistorytimewindow": dr[prop.Name] = Topic.DuplicateDetectionHistoryTimeWindow.TotalSeconds; break; case "enablebatchedoperations": prop.Value = Topic.EnableBatchedOperations; break; case "isreadonly": dr[prop.Name] = Topic.IsReadOnly; break; case "maxsizeinmegabytes": dr[prop.Name] = Topic.MaxSizeInMegabytes; break; case "topic": dr[prop.Name] = Topic.Path; break; case "requiresduplicatedetection": dr[prop.Name] = Topic.RequiresDuplicateDetection; break; case "sizeinbytes": dr[prop.Name] = Topic.SizeInBytes; break; } } dr["responsestatus"] = ResponseStatus.Success; dr["responsestatusdescription"] = "Topics listed"; serviceBroker.ServicePackage.ResultTable.Rows.Add(dr); } } catch (Exception ex) { dr = serviceBroker.ServicePackage.ResultTable.NewRow(); dr["responsestatus"] = ResponseStatus.Error; dr["responsestatusdescription"] = ex.Message; serviceBroker.ServicePackage.ResultTable.Rows.Add(dr); return; } finally { namespaceManager = null; } }
public void LoadTopic(Property[] inputs, RequiredProperties required, Property[] returns, MethodType methodType, ServiceObject serviceObject) { Utilities.ServiceUtilities serviceUtilities = new Utilities.ServiceUtilities(serviceBroker); serviceObject.Properties.InitResultTable(); NamespaceManager namespaceManager = null; TopicDescription Topic = null; try { string topicpath = string.Empty; if (inputs.Length == 0) { topicpath = serviceObject.MetaData.DisplayName; } else { topicpath = inputs.Where(p => p.Name.Equals("topic")).First().Value.ToString(); } namespaceManager = serviceUtilities.GetNamespaceManager(inputs.Where(p => p.Name.Equals("requesttimeout")).FirstOrDefault()); Topic = namespaceManager.GetTopic(topicpath); foreach (Property prop in returns) { switch (prop.Name) { case "defaultmessagetimetolive": prop.Value = Topic.DefaultMessageTimeToLive.TotalSeconds; break; case "duplicatedetectionhistorytimewindow": prop.Value = Topic.DuplicateDetectionHistoryTimeWindow.TotalSeconds; break; case "enablebatchedoperations": prop.Value = Topic.EnableBatchedOperations; break; case "isreadonly": prop.Value = Topic.IsReadOnly; break; case "maxsizeinmegabytes": prop.Value = Topic.MaxSizeInMegabytes; break; case "topic": prop.Value = Topic.Path; break; case "requiresduplicatedetection": prop.Value = Topic.RequiresDuplicateDetection; break; case "sizeinbytes": prop.Value = Topic.SizeInBytes; break; } returns.Where(p => p.Name.Equals("responsestatus")).First().Value = ResponseStatus.Success; returns.Where(p => p.Name.Equals("responsestatusdescription")).First().Value = "Topic loaded"; } } catch (Exception ex) { returns.Where(p => p.Name.Equals("responsestatus")).First().Value = ResponseStatus.Error; returns.Where(p => p.Name.Equals("responsestatusdescription")).First().Value = ex.Message; } finally { namespaceManager = null; Topic = null; } serviceObject.Properties.BindPropertiesToResultTable(); }
public void ListSubscriptions(Property[] inputs, RequiredProperties required, Property[] returns, MethodType methodType, ServiceObject serviceObject) { Utilities.ServiceUtilities serviceUtilities = new Utilities.ServiceUtilities(serviceBroker); serviceObject.Properties.InitResultTable(); System.Data.DataRow dr; NamespaceManager namespaceManager = null; try { string topicpath = string.Empty; if (inputs.Length == 0) { topicpath = serviceObject.MetaData.DisplayName; } else { topicpath = inputs.Where(p => p.Name.Equals("topic")).First().Value.ToString(); } namespaceManager = serviceUtilities.GetNamespaceManager(inputs.Where(p => p.Name.Equals("requesttimeout")).FirstOrDefault()); IEnumerable <SubscriptionDescription> Ss = namespaceManager.GetSubscriptions(topicpath); foreach (SubscriptionDescription Subscription in Ss) { dr = serviceBroker.ServicePackage.ResultTable.NewRow(); foreach (Property prop in returns) { switch (prop.Name) { case "defaultmessagetimetolive": dr[prop.Name] = Subscription.DefaultMessageTimeToLive.TotalSeconds; break; case "enablebatchedoperations": dr[prop.Name] = Subscription.EnableBatchedOperations; break; case "enabledeadletteringonfilterevaluationexceptions": dr[prop.Name] = Subscription.EnableDeadLetteringOnFilterEvaluationExceptions; break; case "enabledeadletteringonmessageexpiration": dr[prop.Name] = Subscription.EnableDeadLetteringOnMessageExpiration; break; case "isreadonly": dr[prop.Name] = Subscription.IsReadOnly; break; case "lockduration": dr[prop.Name] = Subscription.LockDuration.TotalSeconds; break; case "maxdeliverycount": dr[prop.Name] = Subscription.MaxDeliveryCount; break; case "messagecount": dr[prop.Name] = Subscription.MessageCount; break; case "subscription": dr[prop.Name] = Subscription.Name; break; case "requiressession": dr[prop.Name] = Subscription.RequiresSession; break; case "topic": dr[prop.Name] = Subscription.TopicPath; break; } } serviceBroker.ServicePackage.ResultTable.Rows.Add(dr); } } catch (Exception ex) { dr = serviceBroker.ServicePackage.ResultTable.NewRow(); dr["responsestatus"] = ResponseStatus.Error; dr["responsestatusdescription"] = ex.Message; serviceBroker.ServicePackage.ResultTable.Rows.Add(dr); return; } finally { namespaceManager = null; } }
public void LoadSubscription(Property[] inputs, RequiredProperties required, Property[] returns, MethodType methodType, ServiceObject serviceObject) { Utilities.ServiceUtilities serviceUtilities = new Utilities.ServiceUtilities(serviceBroker); serviceObject.Properties.InitResultTable(); NamespaceManager namespaceManager = null; SubscriptionDescription Subscription = null; try { string subscriptionpath = string.Empty; if (inputs.Length == 1) { subscriptionpath = serviceObject.MetaData.DisplayName; } else { subscriptionpath = inputs.Where(p => p.Name.Equals("subscription")).First().Value.ToString(); } string topicpath = string.Empty; topicpath = inputs.Where(p => p.Name.Equals("topic")).First().Value.ToString(); namespaceManager = serviceUtilities.GetNamespaceManager(inputs.Where(p => p.Name.Equals("requesttimeout")).FirstOrDefault()); Subscription = namespaceManager.GetSubscription(topicpath, subscriptionpath); foreach (Property prop in returns) { switch (prop.Name) { case "defaultmessagetimetolive": prop.Value = Subscription.DefaultMessageTimeToLive.TotalSeconds; break; case "enablebatchedoperations": prop.Value = Subscription.EnableBatchedOperations; break; case "enabledeadletteringonfilterevaluationexceptions": prop.Value = Subscription.EnableDeadLetteringOnFilterEvaluationExceptions; break; case "enabledeadletteringonmessageexpiration": prop.Value = Subscription.EnableDeadLetteringOnMessageExpiration; break; case "isreadonly": prop.Value = Subscription.IsReadOnly; break; case "lockduration": prop.Value = Subscription.LockDuration.TotalSeconds; break; case "maxdeliverycount": prop.Value = Subscription.MaxDeliveryCount; break; case "messagecount": prop.Value = Subscription.MessageCount; break; case "subscription": prop.Value = Subscription.Name; break; case "requiressession": prop.Value = Subscription.RequiresSession; break; case "topic": prop.Value = Subscription.TopicPath; break; } } returns.Where(p => p.Name.Equals("responsestatus")).First().Value = ResponseStatus.Success; returns.Where(p => p.Name.Equals("responsestatusdescription")).First().Value = "Subscription loaded"; } catch (Exception ex) { returns.Where(p => p.Name.Equals("responsestatus")).First().Value = ResponseStatus.Error; returns.Where(p => p.Name.Equals("responsestatusdescription")).First().Value = ex.Message; } finally { namespaceManager = null; Subscription = null; } serviceObject.Properties.BindPropertiesToResultTable(); }