Exemple #1
0
        private async static Task ReceiveFeedbackAsync(CancellationToken ct)
        {
            var feedbackReceiver = serviceClient.GetFeedbackReceiver();

            while (true)
            {
                if (ct.IsCancellationRequested)
                {
                    break;
                }

                try
                {
                    var feedbackBatch = await feedbackReceiver.ReceiveAsync();

                    if (feedbackBatch == null)
                    {
                        continue;
                    }

                    foreach (FeedbackRecord record in feedbackBatch.Records)
                    {
                        SendStatusEventArgs status = new SendStatusEventArgs
                        {
                            OriginalMessageId = record.OriginalMessageId,
                            Description       = record.Description,
                            DeviceId          = record.DeviceId,
                            Status            = (SendStatusEventArgs.StatusCode)record.StatusCode
                        };

                        msgFeedbackQueue.Add(status);
                    }

                    await feedbackReceiver.CompleteAsync(feedbackBatch);
                }
                catch (Exception ex)
                {
                }
            }
        }
Exemple #2
0
 public void OnSendStatus(object sender, SendStatusEventArgs args)
 {
 }
Exemple #3
0
        void cc_SendStatusEvent(SendStatusEventArgs e)
        {
            if (this.InvokeRequired)
            {
                InvokeSendStatusEvent ivo = new InvokeSendStatusEvent(this.cc_SendStatusEvent);
                this.Invoke(ivo, e);
            }
            else
            {
                switch (e.Status)
                {
                case SENDSTATUS.PACKET_RECEIVED:
                    switch (((testpacket)e.Packet.data).type)
                    {
                    case PacketType.sdata:
                        sendreports[((testpacket)e.Packet.data).recvServerid].SendOK(((testpacket)e.Packet.data).type, e.Packet.packetsize, e.Packet.sendtime, e.Packet.sendfinishtime, e.Packet.outtime);
                        if (((testpacket)e.Packet.data).isEnd)
                        {
                            double runtime = (DateTime.Now - tasklist[((testpacket)e.Packet.data).taskid]).TotalMilliseconds;
                            tasklist.Remove(((testpacket)e.Packet.data).taskid);
                            sendreports[((testpacket)e.Packet.data).recvServerid].TaskDone(((testpacket)e.Packet.data).type, runtime);
                        }
                        break;

                    case PacketType.mdata:
                        sendreports[((testpacket)e.Packet.data).recvServerid].SendOK(((testpacket)e.Packet.data).type, e.Packet.packetsize, e.Packet.sendtime, e.Packet.sendfinishtime, e.Packet.outtime);
                        if (((testpacket)e.Packet.data).isEnd)
                        {
                            double runtime = (DateTime.Now - tasklist[((testpacket)e.Packet.data).taskid]).TotalMilliseconds;
                            tasklist.Remove(((testpacket)e.Packet.data).taskid);
                            sendreports[((testpacket)e.Packet.data).recvServerid].TaskDone(((testpacket)e.Packet.data).type, runtime);
                        }
                        break;

                    case PacketType.ldata:
                        sendreports[((testpacket)e.Packet.data).recvServerid].SendOK(((testpacket)e.Packet.data).type, e.Packet.packetsize, e.Packet.sendtime, e.Packet.sendfinishtime, e.Packet.outtime);
                        if (((testpacket)e.Packet.data).isEnd)
                        {
                            double runtime = (DateTime.Now - tasklist[((testpacket)e.Packet.data).taskid]).TotalMilliseconds;
                            tasklist.Remove(((testpacket)e.Packet.data).taskid);
                            sendreports[((testpacket)e.Packet.data).recvServerid].TaskDone(((testpacket)e.Packet.data).type, runtime);
                        }
                        break;

                    case PacketType.text:
                        break;

                    case PacketType.file:
                        break;

                    default:
                        break;
                    }
                    break;

                case SENDSTATUS.PACKET_SERVERDOWN:
                    textBox9.AppendText(e.Msg);
                    //textBox9.AppendText(":" + e.Packet.ToString());
                    textBox9.AppendText(((char)10).ToString());
                    break;

                case SENDSTATUS.PACKET_APPDOWN:
                    textBox9.AppendText(e.Msg);
                    //textBox9.AppendText(":" + e.Packet.ToString());
                    textBox9.AppendText(((char)10).ToString());
                    break;

                case SENDSTATUS.PACKET_REJECT:
                    break;

                case SENDSTATUS.PACKET_ERR:
                    textBox9.AppendText(e.Msg);
                    textBox9.AppendText(((char)10).ToString());
                    break;

                case SENDSTATUS.PACKET_TIMEOUT:
                    textBox9.AppendText(e.Msg + "/n");
                    break;

                case SENDSTATUS.PACKET_SERVERUNKOWN:
                    break;

                case SENDSTATUS.PACKET_CANNOTCROSSAPP:
                    break;

                default:
                    break;
                }
            }
        }