Exemplo n.º 1
0
 private void OnRPCRefused(Refuse rpc)
 {
     if (this.RPCRefused != null)
     {
         this.RPCRefused(this, new RPCEventArgs(rpc, this.mTunnel));
     }
 }
Exemplo n.º 2
0
        private void SendRefuse(UInt32 rpid)
        {
            Refuse          refuse = new Refuse(rpid);
            EncryptedPacket p      = new EncryptedPacket(this.mTunnel.ID, this.ID);

            p.RPCs.Add(refuse);
            this.mTunnel.EncryptAndSendPacket(p);
        }
Exemplo n.º 3
0
        public void HandleRekey()
        {
            //A rekey cannot happen until a prepare rekey rpc has been sent (note that they can be send together)
            //todo: add a test to send a prepare rekey and rekey together
            bool trigger1, trigger2, trigger3;

            trigger1 = trigger2 = trigger3 = false;
            KeyPair      pair         = Sodium.PublicKeyBox.GenerateKeyPair();
            PrepareRekey prepareRekey = new PrepareRekey(pair.PublicKey);
            RekeyNow     rekey        = new RekeyNow();

            tunnel.PacketInterceptor(p =>
            {
                Assert.That(p.RPCs.Count > 0);
                Assert.That(p.RPCs.First.SerializationTag == (byte)RPCType.Refuse);
                Refuse rpc = (Refuse)p.RPCs.First;
                trigger1   = true;
            });
            ControlPipe     c      = new ControlPipe(tunnel);
            EncryptedPacket packet = new EncryptedPacket(tunnel.ID, 0);

            packet.RPCs.Add(rekey);
            c.HandlePacket(packet);
            Assert.IsTrue(trigger1, "Refuse block never called");

            tunnel.PacketInterceptor(p =>
            {
                Assert.That(p.RPCs.Count > 0);
                Assert.That(p.RPCs.First.SerializationTag == (byte)RPCType.RekeyResponse);
                RekeyResponse ok = (RekeyResponse)p.RPCs.First;
                Assert.IsTrue(ok.NextPublicKey.Length == 32);
                trigger2 = true;
            });


            packet = new EncryptedPacket(tunnel.ID, 0);
            packet.RPCs.Add(new PrepareRekey(new byte[] { 1, 2, 3 }));
            c.HandlePacket(packet);
            Assert.IsTrue(trigger2, "Rekey ack block never called");

            tunnel.PacketInterceptor(p =>
            {
                Assert.That(p.RPCs.Count > 0);
                Assert.That(p.RPCs.First.SerializationTag == (byte)RPCType.Ok);
                OkRPC ok = (OkRPC)p.RPCs.First;
                Assert.IsTrue(ok.RPCID == rekey.RequestID);
                trigger3 = true;
            });

            packet = new EncryptedPacket(tunnel.ID, 0);
            packet.RPCs.Add(rekey);
            c.HandlePacket(packet);



            Assert.IsTrue(trigger1, "Rekey now block never called");
            Assert.IsTrue(trigger3);
        }
        /// <summary>
        /// Показыват сообщение пользователю и возвращает <see cref="Result.Ok"/> в случае подтверждения
        /// </summary>
        /// <param name="message">Сообщение, содерадщее просьбу и описание вариантов ответа для пользователя</param>
        /// <returns></returns>
        public IResult RequstApprove(string message)
        {
            bool           hasApprove = false, hasRefuse = false;
            ConsoleKeyInfo current;

            while (!(hasApprove || hasRefuse))
            {
                Console.WriteLine(message, $"Press {Approval.Description} to");
                current = Console.ReadKey(intercept: true);

                hasApprove = Approval.Contains(current.Key);
                hasRefuse  = Refuse.Contains(current.Key);
            }

            return(hasApprove ? Result.Ok() : Result.Fail(RefusalMessage));
        }
Exemplo n.º 5
0
        private void btnRefuse_Click(object sender, RoutedEventArgs e)
        {
            List <int> list     = GetSelected();
            dynamic    viewList = this.dataGrid1.ItemsSource as dynamic;

            for (int i = 0; i < viewList.Count; i++)
            {
                for (int j = 0; j < list.Count; j++)
                {
                    if (viewList[i].SysNo == list[j] && viewList[i].Status != BizEntity.Customer.RefundRequestStatus.O)
                    {
                        list.Remove(list[j]);
                    }
                }
            }
            if (list.Count > 0)
            {
                Refuse window = new Refuse();
                window.Dialog = Window.ShowDialog(ResRefundRequestQuery.title_Refuse, window, (obj, args) =>
                {
                    if (args.DialogResult == Newegg.Oversea.Silverlight.Controls.Components.DialogResultType.OK)
                    {
                        RefundAuditReq filter    = new RefundAuditReq();
                        filter.RefundRequestList = list;
                        filter.Memo   = args.Data.ToString();
                        filter.Status = BizEntity.Customer.RefundRequestStatus.R;
                        facade.Audit(filter, (obj1, args1) =>
                        {
                            if (args1.FaultsHandle())
                            {
                                return;
                            }
                            dataGrid1.Bind();
                            Window.Alert(ResRefundRequestQuery.Msg_OperationOk);
                        });
                    }
                }, new Size(320, 250));
            }
            else
            {
                Window.Alert(ResRefundRequestQuery.Msg_OpreationFailed);
                this.dataGrid1.Bind();
            }
        }
Exemplo n.º 6
0
 private void HandleRefuse(IHasSerializationTag rpc)
 {
     Refuse refuse = (Refuse)rpc;
     //todo
 }