/// <summary> /// Check if a queue exists /// </summary> /// <param name="queue">Queue connection definition</param> /// <returns>True if the queues exists, otherwise; false.</returns> public bool ExistQueue(MQConnection queue) { var exist = _admin.Exist(queue); if (queue.IsSkippingRoute()) { return(false); } if (!exist) { Core.Log.Warning("The queue Route={0}, Name={1} doesn't exist.", queue.Route, queue.Name); } return(exist); }
/// <summary> /// Create a queue and set the permissions, if the queue is already created then only tries to set permissions. /// </summary> /// <param name="queue">Queue connection definition</param> /// <returns>True if the queue was created, otherwise; false.</returns> public bool CreateQueue(MQConnection queue) { if (_admin == null) { return(true); } if (queue.IsSkippingRoute()) { return(false); } var exist = _admin.Exist(queue); if (!exist) { try { Core.Log.InfoBasic("Creating queue: Route={0}, Name={1}", queue.Route, queue.Name); exist = _admin.Create(queue); } catch (Exception ex) { Core.Log.Error(ex, "Error creating the queue: Route={0}, Name={1}", queue.Route, queue.Name); } } if (exist && Security != null && Security.Users?.Any() == true) { foreach (var user in Security.Users) { try { Core.Log.InfoBasic("Settings '{0}' permissions to user '{1}' on queue: Route={2}, Name={3}", user.Permissions, user.Name, queue.Route, queue.Name); var accessRights = user.GetAccessRights(); _admin.SetPermission(queue, user.Name, accessRights); } catch (Exception ex) { Core.Log.Error(ex, "Error when trying to set permissions to user '{0}' on queue: Route={1}, Name={2}", user.Name, queue.Route, queue.Name); } } } return(exist); }
/// <summary> /// Purge a queue /// </summary> /// <param name="queue">Queue connection definition</param> public void PurgeQueue(MQConnection queue) { var exist = _admin.Exist(queue); if (queue.IsSkippingRoute()) { return; } if (!exist) { return; } try { Core.Log.InfoBasic("Purging queue: Route={0}, Name={1}", queue.Route, queue.Name); _admin.Purge(queue); } catch (Exception ex) { Core.Log.Error(ex, "Error purging the queue: Route={0}, Name={1}", queue.Route, queue.Name); } }
/// <summary> /// Delete a queue /// </summary> /// <param name="queue">Queue connection definition</param> /// <returns>True if the queue was deleted, otherwise; false.</returns> public bool DeleteQueue(MQConnection queue) { var exist = _admin.Exist(queue); if (queue.IsSkippingRoute()) { return(false); } if (!exist) { return(true); } try { Core.Log.InfoBasic("Deleting queue: Route={0}, Name={1}", queue.Route, queue.Name); return(_admin.Delete(queue)); } catch (Exception ex) { Core.Log.Error(ex, "Error deleting the queue: Route={0}, Name={1}", queue.Route, queue.Name); return(false); } }