public static IQueueAck SendItem(QueueApi q, QueueItem item, int connectTimeOut) { var ack = q.PublishItem(item, connectTimeOut); //Console.WriteLine("State:{0},Creation:{1},Host:{2},Label:{3}, Identifier:{4}, Duration:{5}, item:{6}", ack.MessageState, ack.Creation, ack.Host, ack.Label, ack.Identifier, ack.Duration, item); return(ack); }
public static QueueApi GetApi(string queueName, string hostAddress) { QueueApi q = new QueueApi(queueName, hostAddress); q.IsAsync = false; return(q); }
public static QueueApi GetApi(QueueHost host) { QueueApi q = new QueueApi(host); q.IsAsync = false; return(q); }
protected override void OnAsyncExecutingWorker(AsyncCallEventArgs e) { base.OnAsyncExecutingWorker(e); try { DataSet ds = new DataSet("RemoteQueue"); ds.ReadXml(filename); dt = ds.Tables[0]; int count = dt.Rows.Count; this.ProgressBar1.Maximum = count; var hostPipe = QueueHost.Parse("ipc:.:nistec_queue_manager?" + queueName); QueueApi Client = new QueueApi(hostPipe); foreach (DataRow dr in dt.Rows) { Client.Enqueue(QueueItem.Create(dr)); this.ProgressBar1.Increment(1); } } catch (Exception ex) { MsgBox.ShowError(ex.Message); } finally { //Closewindow(); } }
public static void DoQuery(QueueHost host) { QueueApi q = new QueueApi(host); var req = new QueueRequest() { QCommand = QueueCmd.ReportQueueItems, DuplexType = DuplexTypes.NoWaite, Host = "NC_Quick" }; var ts = q.SendDuplexStream(req, 1000000); if (ts != null) { //var stream = ts.ReadStream(null); //Nistec.Serialization.BinaryStreamer bs = new Nistec.Serialization.BinaryStreamer(stream); //var olist= bs.Decode(); //var olist = ts.ReadValue(); var list = ts.ReadValue <IEnumerable <PersistItem> >(); Console.WriteLine(list); } else { Console.WriteLine("Get nothing!"); } }
IQueueAck ExecRout(QueueItem item, QueueHost qh) { if (qh == null) { throw new MessageException(MessageState.InvalidMessageHost, "Invalid QueueHost for Routing " + item.Host); } IQueueAck ack = null; if (qh.IsLocal) { item.Host = qh.HostName; MQueue Q = Get(item.Host); if (Q == null) { throw new MessageException(MessageState.InvalidMessageHost, "message.RoutHostName not found " + item.Host); } ack = Q.Enqueue(item); return(ack);// ptr.MessageState; } var api = new QueueApi(qh.NetProtocol); ack = api.SendAsync(item, 0); return(ack); }
public QueueListener(QueueAdapter adapter, int interval) : base(adapter, interval) { _api = new QueueApi(adapter.Source); _api.ReadTimeout = adapter.ReadTimeout; //_Listener= new ListenerQ(this, adapter); }
public static void SendItem(bool isAsync) { var host = QueueHost.Parse("tcp:127.0.0.1:15000?NC_Bulk"); QueueApi q = QueueClient.GetApi(host); var item = QueueClient.CreateQueueItem("Hello world " + DateTime.Now.ToString("s"), "test"); item.Host = "NC_Bulk"; //IQueueAck ack = null; QueueClient.EnqueueItem(q, item, 0, (IQueueAck ack) => { Console.WriteLine("State:{0},Creation:{1},Host:{2},Label:{3}, Identifier:{4}, Duration:{5}, item:{6}", ack.MessageState, ack.Creation, ack.Host, ack.Label, ack.Identifier, ack.Duration, item.Id); }); //if (q.IsAsync) //{ // IQueueAck ack = QueueClient.SendItemAsync(q, item, 0); // Console.WriteLine("State:{0},Creation:{1},Host:{2},Label:{3}, Identifier:{4}, Duration:{5}, item:{6}", ack.MessageState, ack.Creation, ack.Host, ack.Label, ack.Identifier, ack.Duration, item.Id); //} //else //{ // QueueClient.SendItemAsync(q, item, 0, (IQueueAck ack) => // { // Console.WriteLine("State:{0},Creation:{1},Host:{2},Label:{3}, Identifier:{4}, Duration:{5}, item:{6}", ack.MessageState, ack.Creation, ack.Host, ack.Label, ack.Identifier, ack.Duration, item.Id); // }); //} //var duration = DateTime.Now.Subtract(start); //var milliseconds = duration.TotalMilliseconds; //Console.WriteLine("duration: {0}, item: {1}", milliseconds, item); }
public static QueueApi GetApi(string queueName, HostProtocol protocol, string endpoint, int port, string hostName) { QueueApi q = new QueueApi(queueName, protocol, endpoint, port, hostName); q.IsAsync = false; return(q); }
public static void EnqueueItem(QueueApi q, QueueItem item, int connectTimeOut, Action <IQueueAck> action) { q.EnqueueAsync(item, connectTimeOut, action); //DateTime start = DateTime.Now; //q.SendAsync(item, connectTimeOut, (ack) => //{ // //Console.WriteLine("State:{0},Creation:{1},Host:{2},Label:{3}, Identifier:{4}, Duration:{5}, item:{6}", ack.MessageState, ack.Creation, ack.Host, ack.Label, ack.Identifier, ack.Duration, item); //}); }
public async Task SendQueueMessageAyncTestAsync() { Configuration config = await TestHelper.GetConfigurationAsync(); QueueApi queueApi = new QueueApi(config); SendReceipt sr = await queueApi.SendQueueMessageAync(ContestFactory.CreateChallengeRequestJson()); Assert.IsNotNull(sr); }
public async Task ReceiveQueueMessageAyncTestAsync() { Configuration config = await TestHelper.GetConfigurationAsync(); QueueApi queueApi = new QueueApi(config); await queueApi.SendQueueMessageAync(ContestFactory.CreateChallengeRequestJson()); Azure.Response <QueueMessage[]> response = await queueApi.ReceiveQueueMessageAync(); Assert.IsNotNull(response); }
public void SendSubscriber(TopicSubscriber subscriber, QueueItem item) { try { var api = QueueApi.Get(subscriber.Protocol); //var message = item.ToMessage();// Message.Create(item.GetItemStream()); api.Send(item); } catch (Exception ex) { Netlog.Exception("Topic Sender Subscriber error ", ex); } }
public async Task <string> EditQueueOperatorsRestApi(string queueNumber, IEnumerable <string> extensionList) { List <string> StMembers = new List <string>(); if (extensionList != null) { foreach (var item in extensionList) { StMembers.Add(item + ",0"); } } string token = await GetNewTokenRest(); QueueApi queueApi = new QueueApi(); queueApi.Extension = queueNumber.ToString(); queueApi.StaticMembers = StMembers; string json = queueApi.ToJson(); int Failretry = 0; retry: ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return(true); }); HttpClient client = new HttpClient(); var content = new StringContent(json, Encoding.UTF8, "application/json"); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); string Postadd = "https://" + IssabeLIP + "/pbxapi/queues/" + queueNumber.ToString(); var response = await client.PutAsync(Postadd, content); string res; //= response.ToString(); if (response.IsSuccessStatusCode) { res = "true"; } else // if (res.Contains("StatusCode: 500") || response.StatusCode.ToString() == "500") { Failretry += 1; if (Failretry < 10) { goto retry; } else { res = "ثبت با خطا روبرو شد با مدیر سیستم تماس بگیرید"; } } return(res); }
public static void PublishItem() { var host = QueueHost.Parse("tcp:127.0.0.1:15000?Netcell"); QueueApi q = QueueClient.GetApi(host); var item = QueueClient.CreateQueueItem("Hello world " + DateTime.Now.ToString("s"), "test"); item.Host = "Netcell"; item.QCommand = QueueCmd.Enqueue; //IQueueAck ack = null; QueueClient.PublishItem(q, item, 0, (IQueueAck ack) => { Console.WriteLine("State:{0},Creation:{1},Host:{2},Label:{3}, Identifier:{4}, Duration:{5}, item:{6}", ack.MessageState, ack.Creation, ack.Host, ack.Label, ack.Identifier, ack.Duration, item.Id); }); }
public static void DoGet(QueueHost host) { QueueApi q = new QueueApi(host); q.Timeout = 500000000; var item = q.Receive(DuplexTypes.WaitOne); if (item != null) { Console.WriteLine(item.Print()); } else { Console.WriteLine("Get nothing!"); } }
public static void DoGet(QueueHost host) { QueueApi q = new QueueApi(host); q.ConnectTimeout = 500000000; //q.ReadTimeout = -1; var item = q.Dequeue();// DuplexTypes.WaitOne); if (item != null) { Console.WriteLine(item.Print()); } else { Console.WriteLine("Get nothing!"); } }
public IList <QueueWithTopEnqueuedJobsDto> Queues() { var queuesData = Data.GetEnumeration <JobQueueDto>().ToList(); var queues = queuesData.GroupBy(q => q.Queue).ToDictionary(q => q.Key, q => q.Count()); var query = from kvp in queues let enqueuedJobIds = QueueApi.GetEnqueuedJobIds(kvp.Key, 0, 5, false) let counters = QueueApi.GetEnqueuedAndFetchedCount(queuesData, kvp.Key) select new QueueWithTopEnqueuedJobsDto { Name = kvp.Key, Length = counters.EnqueuedCount, Fetched = counters.FetchedCount, FirstJobs = EnqueuedJobs(enqueuedJobIds) }; return(query.ToList()); }
public IQueueAck SendSubscriber(TopicSubscriber subscriber, QueueItem copy) { try { copy.Host = subscriber.HostName; var api = new QueueApi(subscriber.QHost); var ack = api.PublishItem(copy); if (!ack.MessageState.IsStateOk()) { Controller.JournalAddItem(copy); } return(ack); } catch (Exception ex) { Logger.Exception("Topic Sender Subscriber error ", ex); Controller.JournalAddItem(copy); return(new QueueAck(MessageState.FailedEnqueue, copy)); } }
static void Main(string[] args) { Console.WriteLine("QueueTasker started..."); var host = QueueHost.Parse("ipc:.:nistec_queue_channel?NC_Quick"); QueueApi q = new QueueApi(host); while (true) { var msg = q.Report(QueueCmdReport.ReportQueueStatistic, "NC_Quick"); Console.WriteLine("State:{0},Creation:{1},Host:{2},Label:{3}", msg.MessageState, msg.Creation, msg.Host, msg.Label); Thread.Sleep(10000); } Console.WriteLine("QueueTasker finished..."); Console.ReadLine(); }
static void SendItem(QueueApi q, long item) { DateTime start = DateTime.Now; QueueItem msg = new QueueItem(); msg.SetBody("Hello world " + DateTime.Now.ToString("s")); if (q.IsAsync) { q.SendAsync(msg, 50000000, (ack) => { Console.WriteLine("State:{0},Creation:{1},Host:{2},Label:{3}, Identifier:{4}, Duration:{5}, item:{6}", ack.MessageState, ack.Creation, ack.Host, ack.Label, ack.Identifier, ack.Duration, item); }); } else { var ack = q.Enqueue(msg, 50000000); Console.WriteLine("State:{0},Creation:{1},Host:{2},Label:{3}, Identifier:{4}, Duration:{5}, item:{6}", ack.MessageState, ack.Creation, ack.Host, ack.Label, ack.Identifier, ack.Duration, item); } //var duration = DateTime.Now.Subtract(start); //var milliseconds = duration.TotalMilliseconds; //Console.WriteLine("duration: {0}, item: {1}", milliseconds, item); }
public IQueueAck SendItem(QueueItem item) { try { string address = item.Host;//.Args["HostAddress"]; QueueHost qh = QueueHost.Parse(address); item.Host = qh.HostName; var api = new QueueApi(qh); var ack = api.PublishItem(item); if (!ack.MessageState.IsStateOk()) { Controller.JournalAddItem(item); } return(ack); } catch (Exception ex) { Logger.Exception("Topic Sender Subscriber error ", ex); Controller.JournalAddItem(item); return(new QueueAck(MessageState.FailedEnqueue, item)); } }
static void SendMulti(QueueApi q, int maxItems) { long counter = 0; int interval = 1; DateTime start = DateTime.Now; for (int i = 0; i < maxItems; i++) { //Task.Factory.StartNew(() => SendItem(q, i)); QueueItem msg = new QueueItem(); msg.Label = i.ToString(); msg.SetBody("Hello world " + DateTime.Now.ToString("s")); Task.Factory.StartNew(() => { if (q.IsAsync) { q.SendAsync(msg, 50000000, (ack) => { Console.WriteLine("State:{0},Creation:{1},Host:{2},Label:{3}, Identifier:{4}, Duration:{5}", ack.MessageState, ack.Creation, ack.Host, ack.Label, ack.Identifier, ack.Duration); Interlocked.Increment(ref counter); }); } else { var ack = q.Enqueue(msg, 50000000); Console.WriteLine("State:{0},Creation:{1},Host:{2},Label:{3}, Identifier:{4}, Duration:{5}", ack.MessageState, ack.Creation, ack.Host, ack.Label, ack.Identifier, ack.Duration); Interlocked.Increment(ref counter); } }); //Thread.Sleep(interval); } while (Interlocked.Read(ref counter) < (maxItems)) { Thread.Sleep(interval); } //while (true) //{ // if (counter > maxItems) // break; // Interlocked.Increment(ref counter); // Task.Factory.StartNew(() => SendItem(q, Interlocked.Read(ref counter))); // //SendItem(q,counter); // //QueueItem msg = new QueueItem(); // //msg.SetBodyText("Hello world " + DateTime.Now.ToString("s")); // //q.SendAsync(msg, 5000, (ack) => // //{ // // Console.WriteLine("State:{0},Creation:{1},Host:{2},Label:{3}, Identifier:{4}", ack.MessageState, ack.Creation, ack.Host, ack.Label, ack.Identifier); // //}); // //Console.WriteLine("State:{0},Creation:{1},Host:{2},Label:{3}, Identifier:{4}", ack.MessageState,ack.Creation,ack.Host,ack.Label, ack.Identifier); // //counter++; // Thread.Sleep(interval); //} var duration = DateTime.Now.Subtract(start); var milliseconds = duration.TotalMilliseconds; Console.WriteLine("duration: {0}, count: {1}, itemDuration: {2}", milliseconds - (interval * counter), counter, (milliseconds - (interval * counter)) / counter); }
public static IQueueAck SendItemAsync(QueueApi q, QueueItem item, int connectTimeOut) { return(q.SendAsync(item, connectTimeOut)); }
public JobList <FetchedJobDto> FetchedJobs(string queue, int from, int perPage) { var fetchedJobIds = QueueApi.GetEnqueuedJobIds(queue, from, perPage, true); return(FetchedJobs(fetchedJobIds)); }
public JobList <EnqueuedJobDto> EnqueuedJobs(string queue, int from, int perPage) { var enqueuedJobIds = QueueApi.GetEnqueuedJobIds(queue, from, perPage, false); return(EnqueuedJobs(enqueuedJobIds)); }
//public TopicListener(AdapterProperties[] queues) // : base(queues) //{ //} public TopicListener(QueueAdapter adapter, int interval) : base(adapter, interval) { _api = new QueueApi(adapter.Source); //_Listener= new ListenerQ(this, adapter); }
public static IQueueAck PublishItem(QueueApi q, QueueItem item, int connectTimeOut) { return(q.PublishItem(item, connectTimeOut)); }
public static void PublishItem(QueueApi q, QueueItem item, int connectTimeOut, Action <IQueueAck> action) { q.PublishItem(item, connectTimeOut, action); }
public async Task <QueueApiViewModel> GetQueueRestApi(long queueNumber) { retry: string token = await GetNewTokenRest(); ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return(true); }); HttpClient client = new HttpClient(); string postadd = "https://" + IssabeLIP + "/pbxapi/queues/" + queueNumber.ToString(); var request = new HttpRequestMessage(HttpMethod.Get, postadd); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); var response = await client.SendAsync(request); string res = await response.Content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { if (res.Contains("password")) { res = res.Substring(31); res = res.Substring(0, (res.Length - 2)); //return res; QueueApi queue = QueueApi.FromJson(res); QueueApiViewModel queuemodel = new QueueApiViewModel(); queuemodel.Extension = Convert.ToInt32(queue.Extension); queuemodel.Name = queue.Name; queuemodel.Password = queue.Password; //queuemodel.StaticMembers.Add("2000");// = queue.StaticMembers; queuemodel.RingStrategy = queue.RingStrategy; queuemodel.SkipBusyAgents = queue.SkipBusyAgents; queuemodel.JoinAnnounceId = queue.JoinAnnounceId; queuemodel.MonitorFormat = queue.MonitorFormat; //queuemodel.MonitorJoin = "yes"; queuemodel.MonitorType = queue.MonitorType; queuemodel.MaxWait = queue.MaxWait; // queuemodel.SoundThankYou = "queue-thankyou"; //queuemodel.SoundCallsWaiting = "queue-callswaiting"; //queuemodel.SoundThereAre = "queue-thereare"; // queuemodel.SoundYouAreNext = "queue-youarenext"; queuemodel.TimeoutPriority = queue.TimeoutPriority; /////Max Wait Time Mode queuemodel.Timeout = queue.Timeout; /////////// Agent Timeout queuemodel.AgentRetry = queue.AgentRetry; queuemodel.ReportHoldTime = queue.ReportHoldTime; queuemodel.AutoPause = queue.AutoPause; queuemodel.AutoPauseDelay = Convert.ToInt32(queue.AutoPauseDelay); queuemodel.AutoPauseIfBusy = queue.AutoPauseIfBusy; queuemodel.AutoPauseIfUnavailable = queue.AutoPauseIfUnavailable; queuemodel.MaxCallersWaiting = queue.MaxCallersWaiting; queuemodel.JoinEmpty = queue.JoinEmpty; queuemodel.LeaveWhenEmpty = queue.LeaveWhenEmpty; queuemodel.AnnounceFrequency = queue.AnnounceFrequency; queuemodel.AnnounceHoldtime = queue.AnnounceHoldtime; queuemodel.AnnouncePosition = queue.AnnouncePosition; //queuemodel.EventMemberStatus = "yes"; //queuemodel.EventWhenCalled = "yes"; queuemodel.CronSchedule = queue.CronSchedule; return(queuemodel); } else { return(null); } } else if (response.StatusCode.ToString() == "500") { //GetNewToken(); goto retry; } else { return(null); } //ExtensionApiViewModel extensionViewModel = new ExtensionApiViewModel(); //extensionViewModel.Extension = extension.Extension.Value; //extensionViewModel.Name = extension.Name; //extensionViewModel.Secret = extension.Secret; //extensionViewModel.DeviceOptions_DtmfMode = extension.DeviceOptions.DtmfMode; //extensionViewModel.DeviceOptions_Encryption = extension.DeviceOptions.Encryption; //extensionViewModel.DeviceOptions_Nat = extension.DeviceOptions.Nat; //extensionViewModel.DeviceOptions_Port = extension.DeviceOptions.Port.Value; //extensionViewModel.DeviceOptions_Transport = extension.DeviceOptions.Transport; //extensionViewModel.Recording_InboundExternal = extension.Recording.InboundExternal; //extensionViewModel.Recording_InboundInternal = extension.Recording.InboundInternal; //extensionViewModel.Recording_OutboundExternal = extension.Recording.OutboundExternal; //extensionViewModel.Recording_OutboundInternal = extension.Recording.OutboundInternal; //extensionViewModel.Recording_Priority = extension.Recording.Priority.Value; //extensionViewModel.Voicemail_Voicemail = "selected"; //extensionViewModel.Voicemail_Password = 2222; //extensionViewModel.Voicemail_EmailAddress = "*****@*****.**"; //extensionViewModel.Voicemail_EmailAttachmen = "yes"; //extensionViewModel.Voicemail_PlayCID = "yes"; //extensionViewModel.Voicemail_PlayEnvelope = "yes"; //extensionViewModel.Voicemail_DeleteVoicemail = "yes"; //return extensionViewModel; }