public override void HandleAu3Frame(Frames.MaslAu3Frame au3Frame)
        {
            var expectedDir = MaslFrameDirection.Client2Server;

            if (au3Frame.Direction != expectedDir)
            {
                throw new DirectionFlagException(expectedDir);
            }

            // 收到AU3,关闭握手计时器。
            this.Context.StopHandshakeTimer();

            // 验证MAC
            var actualMac   = au3Frame.MAC;
            var expectedMac = this.Context.AuMessageMacCalculator.CalcAu3MAC(au3Frame, this.Context.RsspEP.LocalID);

            if (!ArrayHelper.Equals(expectedMac, actualMac))
            {
                throw new MacInAu3Exception(string.Format("Au3消息Mac检验失败,期望值={0},实际值={1}",
                                                          HelperTools.ConvertToString(expectedMac),
                                                          HelperTools.ConvertToString(actualMac)));
            }

            // 发送AR
            var arPkt = this.Context.AuMessageBuilder.BuildArPacket();

            this.Context.AleConnection.SendUserData(arPkt);

            // 连接建立。
            this.Context.Connected = true;
        }
Exemple #2
0
        private static int Main(string[] args)
        {
            if (args.Length != 0)
            {
                return((int)ReturnValue.InvalidArgumentCode);
            }

            HelperTools.SetupEncoding();

            try
            {
                foreach (var result in ScriptManager.GetScripts())
                {
                    var converted = result.Select(x => new KeyValuePair <string, object>(x.Key, x.Value)).ToList();
                    Console.WriteLine(HelperTools.KeyValueListToConsoleOutput(converted));
                }

                return((int)ReturnValue.OkCode);
            }
            catch (IOException ex)
            {
                LogWriter.WriteExceptionToLog(ex);
                return(HelperTools.HandleHrefMessage(ex));
            }
            catch (Exception ex)
            {
                LogWriter.WriteExceptionToLog(ex);
                return((int)ReturnValue.FunctionFailedCode);
            }
        }
        public async Task RemovedFromMempoolEventAsync(RemovedFromMempoolEvent e)
        {
            if (e.Message.Reason == RemovedFromMempoolMessage.Reasons.CollisionInBlockTx)
            {
                var removedTxId = new uint256(e.Message.TxId).ToBytes();

                var txWithDSCheck = (await txRepository.GetTxsForDSCheckAsync(new[] { removedTxId }, false)).ToArray();
                if (txWithDSCheck.Any())
                {
                    // Try to insert the block into DB. If block is already present in DB nothing will be done
                    await blockParser.NewBlockDiscoveredAsync(new NewBlockDiscoveredEvent()
                    {
                        CreationDate = clock.UtcNow(), BlockHash = e.Message.BlockHash
                    });

                    foreach (var tx in txWithDSCheck)
                    {
                        await txRepository.InsertBlockDoubleSpendAsync(
                            tx.TxInternalId,
                            new uint256(e.Message.BlockHash).ToBytes(),
                            new uint256(e.Message.CollidedWith.TxId).ToBytes(),
                            HelperTools.HexStringToByteArray(e.Message.CollidedWith.Hex));

                        var notificationEvent = new NewNotificationEvent()
                        {
                            CreationDate     = clock.UtcNow(),
                            NotificationType = CallbackReason.DoubleSpend,
                            TransactionId    = tx.TxExternalIdBytes
                        };
                        eventBus.Publish(notificationEvent);
                    }
                }
            }
        }
Exemple #4
0
        public static void WriteUpdateList()
        {
            var wuaSession  = new UpdateSessionClass();
            var wuaSearcher = wuaSession.CreateUpdateSearcher();
            var wuaSearch   = wuaSearcher.Search("IsInstalled=1 and IsPresent=1 and Type='Software'");
            var updates     = wuaSearch.Updates.OfType <IUpdate>().ToList();

            foreach (var update in updates)
            {
                var id = update.Identity;

                var result = HelperTools.KeyValueListToConsoleOutput(new List <KeyValuePair <string, object> >
                {
                    new KeyValuePair <string, object>(nameof(id.UpdateID), id.UpdateID),
                    new KeyValuePair <string, object>(nameof(id.RevisionNumber), id.RevisionNumber),

                    new KeyValuePair <string, object>(nameof(update.Title), update.Title),
                    new KeyValuePair <string, object>(nameof(update.IsUninstallable), update.IsUninstallable),

                    new KeyValuePair <string, object>(nameof(update.SupportUrl), update.SupportUrl),

                    new KeyValuePair <string, object>(nameof(update.MinDownloadSize), update.MinDownloadSize),
                    new KeyValuePair <string, object>(nameof(update.MaxDownloadSize), update.MaxDownloadSize),
                    new KeyValuePair <string, object>(nameof(update.LastDeploymentChangeTime), update.LastDeploymentChangeTime)
                });

                Console.WriteLine(result);
            }
        }
        private async Task <(string, string, int)> CreateUnconfirmedAncestorChainAsync(string txHex1, string txId1, int length, int sendToMAPIRate, bool sendLastToMAPI = false, CancellationToken?cancellationToken = null)
        {
            var curTxHex    = txHex1;
            var curTxId     = txId1;
            var mapiTxCount = 0;

            for (int i = 0; i < length; i++)
            {
                Transaction.TryParse(curTxHex, Network.RegTest, out Transaction curTx);
                var curTxCoin = new Coin(curTx, 0);
                (curTxHex, curTxId) = CreateNewTransaction(curTxCoin, new Money(1000L));

                // Submit every sendToMAPIRate tx to mapi with dsCheck
                if ((sendToMAPIRate != 0 && i % sendToMAPIRate == 0) || (sendLastToMAPI && i == length - 1))
                {
                    var payload = await SubmitTransactionAsync(curTxHex, true, true);

                    Assert.AreEqual(payload.ReturnResult, "success");
                    mapiTxCount++;
                }
                else
                {
                    _ = await node0.RpcClient.SendRawTransactionAsync(HelperTools.HexStringToByteArray(curTxHex), true, false, cancellationToken);
                }
            }

            return(curTxHex, curTxId, mapiTxCount);
        }
        public async Task StoreUnconfirmedParentsOnSubmitTxAsync()
        {
            using CancellationTokenSource cts = new(cancellationTimeout);

            await RegisterNodesWithServiceAndWaitAsync(cts.Token);

            Assert.AreEqual(1, zmqService.GetActiveSubscriptions().Count());

            // Subscribe invalidtx events
            var invalidTxDetectedSubscription = EventBus.Subscribe <InvalidTxDetectedEvent>();

            // Create and submit first transaction
            var coin = availableCoins.Dequeue();

            var(txHex1, txId1) = CreateNewTransaction(coin, new Money(1000L));
            var response = await node0.RpcClient.SendRawTransactionAsync(HelperTools.HexStringToByteArray(txHex1), true, false, cts.Token);

            // Create chain based on first transaction with last transaction being submited to mAPI
            var(lastTxHex, lastTxId, mapiCount) = await CreateUnconfirmedAncestorChainAsync(txHex1, txId1, 100, 0, true, cts.Token);

            // Check that first tx is in database
            long?txInternalId1 = await TxRepositoryPostgres.GetTransactionInternalId((new uint256(txId1)).ToBytes());

            Assert.IsTrue(txInternalId1.HasValue);
            Assert.AreNotEqual(0, txInternalId1.Value);
        }
Exemple #7
0
        public async Task RejectSubmitWithWithParamCNTooBig()
        {
            await Nodes.CreateNodeAsync(new Node("node1", 0, "mocked", "mocked", null, null));

            await QueryReturnPositiveAsync();

            IList <(string, string)> queryParams = new List <(string, string)>
            {
                ("txid", txC0Hash),
                ("ctxid", txC1Hash),
                ("n", "0"),
                ("cn", "10")
            };

            var bytes      = HelperTools.HexStringToByteArray(txC1Hex);
            var reqContent = new ByteArrayContent(bytes);

            reqContent.Headers.ContentType = new MediaTypeHeaderValue(MediaTypeNames.Application.Octet);
            var response = await Post <string>(PrepareQueryParams(MapiServer.ApiDSSubmit, queryParams), Client, reqContent, HttpStatusCode.BadRequest);

            var responseString = await response.httpResponse.Content.ReadAsStringAsync();

            Assert.IsTrue(responseString.Contains("banned"));
            Assert.IsTrue(banList.IsHostBanned("localhost"));
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //var filePath = string.Empty;

            //using (OpenFileDialog openFileDialog = new OpenFileDialog())
            //{
            //    openFileDialog.Title = "NAME ME BIATCH";
            //    openFileDialog.InitialDirectory = "c:\\";
            //    openFileDialog.Filter = "PNG files (*.png)|*.png|JPEG files (*.jpg)|*.jpg|All files (*.*)|*.*";
            //    openFileDialog.FilterIndex = 2;
            //    openFileDialog.RestoreDirectory = true;

            //    if (openFileDialog.ShowDialog() == DialogResult.OK)
            //    {
            //        //ADD YOUR CODE HERE

            //        //Get the path of specified file
            //        filePath = openFileDialog.FileName;

            //Set image here

            string filepath = HelperTools.LoadFromFile("Hello", "JPEG Files (*.jpg)|*.jpg|", "c:\\");

            pictureBox1.Image = Image.FromFile(filepath);
            //  pictureBox1.Size = pictureBox1.Image.;
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            //File path
            label1.Text = filepath;
            //    }
            //    else
            //    {
            //        MessageBox.Show("Aaron you numnut...you need to find a file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            //    }
            //}
        }
        public override void HandleArFrame(Frames.MaslArFrame arFrame)
        {
            var expectedDir = MaslFrameDirection.Server2Client;

            if (arFrame.Direction != expectedDir)
            {
                throw new DirectionFlagException(expectedDir);
            }

            // 收到AR,关闭握手计时器。
            this.Context.StopHandshakeTimer();

            // 验证MAC
            var actualMac   = arFrame.MAC;
            var expectedMac = this.Context.AuMessageMacCalculator.CalcArMAC(arFrame, this.Context.RsspEP.LocalID);

            if (!ArrayHelper.Equals(expectedMac, actualMac))
            {
                throw new MacInArException(string.Format("Ar消息Mac检验失败,期望值={0},实际值={1}",
                                                         HelperTools.ConvertToString(expectedMac),
                                                         HelperTools.ConvertToString(actualMac)));
            }

            this.Context.Connected = true;
        }
Exemple #10
0
 private void btnChooseAsset_Click(object sender, EventArgs e)
 {
     if (cboProjectType.Text != string.Empty)
     {
         HelperTools.LoadFromFile("Upload Project", "ZIP File (*.zip)|*.zip");
     }
 }
        public async Task <uint256> InsertMerkleProof()
        {
            var blockStream = await RpcClient.GetBlockAsStreamAsync(await RpcClient.GetBestBlockHashAsync());

            var firstBlock     = HelperTools.ParseByteStreamToBlock(blockStream);
            var block          = firstBlock.CreateNextBlockWithCoinbase(firstBlock.Transactions.First().Outputs.First().ScriptPubKey.GetDestinationPublicKeys().First(), new Money(50, MoneyUnit.MilliBTC), new ConsensusFactory());
            var firstBlockHash = firstBlock.GetHash();

            var tx = Transaction.Parse(Tx1Hex, Network.Main);

            block.AddTransaction(tx);
            tx = Transaction.Parse(Tx2Hex, Network.Main);
            block.AddTransaction(tx);
            tx = Transaction.Parse(Tx3Hex, Network.Main);
            block.AddTransaction(tx);
            tx = Transaction.Parse(Tx4Hex, Network.Main);
            block.AddTransaction(tx);
            tx = Transaction.Parse(Tx5Hex, Network.Main);
            block.AddTransaction(tx);

            rpcClientFactoryMock.AddKnownBlock((await RpcClient.GetBlockCountAsync()) + 1, block.ToBytes());
            var node      = NodeRepository.GetNodes().First();
            var rpcClient = rpcClientFactoryMock.Create(node.Host, node.Port, node.Username, node.Password);

            PublishBlockHashToEventBus(await rpcClient.GetBestBlockHashAsync());


            return(firstBlockHash);
        }
        public async Task <PrevTxOutput> GetPrevOutAsync(byte[] prevOutTxId, long prevOutN)
        {
            PrevTxOutput foundPrevOut;

            lock (prevTxOutputCache)
            {
                prevTxOutputCache.Cache.TryGetValue($"{HelperTools.ByteToHexString(prevOutTxId)}_{prevOutN}", out foundPrevOut);
            }
            if (foundPrevOut == null)
            {
                using var connection = GetDbConnection();

                string cmdText = @"
SELECT tx.txInternalId, tx.txExternalId, txinput.n
FROM tx 
INNER JOIN txinput ON txinput.txInternalId = tx.txInternalId
WHERE tx.txExternalId = @prevOutTxId
AND txinput.n = @prevOutN;
";
                foundPrevOut = await connection.QueryFirstOrDefaultAsync <PrevTxOutput>(cmdText, new { prevOutTxId, prevOutN });

                if (foundPrevOut != null)
                {
                    CachePrevOut(foundPrevOut);
                }
            }
            else
            {
                logger.LogInformation($"GetPrevOutAsync: prevOut was found in prevTxOutputCache, key={HelperTools.ByteToHexString(prevOutTxId)}_{prevOutN}.");
            }
            return(foundPrevOut);
        }
        private void btnChooseAsset_Click(object sender, EventArgs e)
        {
            if (cboAssetType.Text != string.Empty)
            {
                string filter = string.Empty;

                switch (cboAssetType.SelectedIndex)
                {
                case 0:
                case 1:
                    filter = "PNG File (*.png)|*.png|JPEG File (*.jpg)|*.jpg";
                    break;

                case 2:
                    filter = "GIF File (*.gif)|*.gif";
                    break;

                case 3:
                case 4:
                    filter = "FBX File (*.fbx)|*.fbx|OBJ File (*.obj)|*.obj|Maya File (*.mb)|*.mb|Maya File (*.ma)|*.ma|3ds Max File (*.max)|*.max|Cinema 4D File (*.c4d)|*.c4d";
                    break;

                case 5:
                    filter = "WAVE file (*.wav)|*.wav|MP3 File (*.mp3)|*.mp3";
                    break;
                }

                _assetFilePath = HelperTools.LoadFromFile("Upload Asset", filter);
                _assetUploaded = true;
            }
            else
            {
                MessageBox.Show("cboAssetType = null");
            }
        }
Exemple #14
0
        private static int Main(string[] args)
        {
            if (args.Length == 0)
            {
                return((int)ReturnValue.InvalidArgumentCode);
            }

            HelperTools.SetupEncoding();

            if (args.Length == 1 && string.Equals(args[0], @"/query", StringComparison.OrdinalIgnoreCase))
            {
                try
                {
                    var result = OculusManager.QueryOculusApps();
                    foreach (var app in result)
                    {
                        Console.WriteLine(HelperTools.ObjectToConsoleOutput(app));
                    }
                    return((int)ReturnValue.OkCode);
                }
                catch (IOException ex)
                {
                    LogWriter.WriteExceptionToLog(ex);
                    return(HelperTools.HandleHrefMessage(ex));
                }
            }
        private async Task <(string, string)> CatchInMempoolDoubleSpendZMQMessage()
        {
            using CancellationTokenSource cts = new CancellationTokenSource(cancellationTimeout);

            await RegisterNodesWithServiceAndWait(cts.Token);

            Assert.AreEqual(1, zmqService.GetActiveSubscriptions().Count());

            // Subscribe invalidtx events
            var invalidTxDetectedSubscription = eventBus.Subscribe <InvalidTxDetectedEvent>();

            // Create two transactions from same input
            var coin = availableCoins.Dequeue();

            var(txHex1, txId1) = CreateNewTransaction(coin, new Money(1000L));
            var(txHex2, txId2) = CreateNewTransaction(coin, new Money(500L));

            // Transactions should not be the same
            Assert.AreNotEqual(txHex1, txHex2);

            // Send first transaction using MAPI
            var payload = await SubmitTransactionAsync(txHex1);

            Assert.AreEqual(payload.ReturnResult, "success");

            // Send second transaction using RPC
            try
            {
                _ = await node0.RpcClient.SendRawTransactionAsync(HelperTools.HexStringToByteArray(txHex2), true, false, cts.Token);
            }
            catch (Exception rpcException)
            {
                // Double spend will throw txn-mempool-conflict exception
                Assert.AreEqual("258: txn-mempool-conflict", rpcException.Message);
            }

            // InvalidTx event should be fired
            var invalidTxEvent = await invalidTxDetectedSubscription.ReadAsync(cts.Token);

            Assert.AreEqual(InvalidTxRejectionCodes.TxMempoolConflict, invalidTxEvent.Message.RejectionCode);
            Assert.AreEqual(txId2, invalidTxEvent.Message.TxId);
            Assert.IsNotNull(invalidTxEvent.Message.CollidedWith, "bitcoind did not return CollidedWith");
            Assert.AreEqual(1, invalidTxEvent.Message.CollidedWith.Length);
            Assert.AreEqual(txId1, invalidTxEvent.Message.CollidedWith[0].TxId);

            WaitUntilEventBusIsIdle();

            // Check if callback was received
            var calls = Callback.Calls;

            Assert.AreEqual(1, calls.Length);
            var callback = HelperTools.JSONDeserialize <JSONEnvelopeViewModelGet>(calls[0].request)
                           .ExtractPayload <CallbackNotificationDoubleSpendViewModel>();

            Assert.AreEqual(CallbackReason.DoubleSpendAttempt, callback.CallbackReason);
            Assert.AreEqual(new uint256(txId1), new uint256(callback.CallbackTxId));
            Assert.AreEqual(new uint256(txId2), new uint256(callback.CallbackPayload.DoubleSpendTxId));

            return(txHex1, txHex2);
        }
        public MyAssetsPageControl(FormMain form, string message)
        {
            InitializeComponent();
            formMain = form;
            DataBaseAccess dataBase = new DataBaseAccess();

            dataBase.StartConnection();
            if (message == "project")
            {
                curUserProjects = dataBase.getOwnedProjectsOfUser((int)formMain.UsersAccounts.GetCurrentUser().GetUserID());
            }
            else if (message == "asset")
            {
                curUserAssets = dataBase.getAssetsOfUser((int)formMain.UsersAccounts.GetCurrentUser().GetUserID());
            }
            dataBase.CloseConnection();

            if (curUserAssets != null && message == "asset")
            {
                HelperTools.CreateAssetButtons(new Point(48, 104), formMain, this, curUserAssets.Count, 5, curUserAssets);
            }
            else if (curUserProjects != null && message == "project")
            {
                HelperTools.CreateAssetButtons(new Point(48, 104), formMain, this, curUserProjects.Count, 5, null, curUserProjects);
            }
        }
Exemple #17
0
    public void ResetRace()
    {
        if (!Racing)
        {
            return;
        }

        RacingToggleEvent.Invoke();
        StartAreaGameObject.transform.position = originalStartAreaPosition;
        Racing                         = false;
        Finished                       = false;
        transform.position             = startPos;
        transform.rotation             = startRotation;
        Camera.main.transform.position = startCameraPos;
        Camera.main.transform.rotation = startCameraRot;
        Camera.main.orthographicSize   = startCameraSize;
        Camera.main.transform.SetParent(startCameraParent);
        RacingWarble.GetComponent <GeneBehaviorController>().enabled = false;
        RacingWarble.transform.position = startPos;
        RacingWarble.transform.SetParent(originalWarbleParent);
        RacingWarble = null;
        timer.StopTimer();
        input.ActiveWarble = null;
        currentPosition    = 0;

        if (notepadOn)
        {
            HelperTools.ToggleOn(NotepadCG);
        }
    }
Exemple #18
0
        public IEnumerable <KeyValuePair <uint, List <IPEndPoint> > > GetAcceptableClients()
        {
            try
            {
                if (this.chkAcceptableClients.Checked)
                {
                    var result = new List <KeyValuePair <uint, List <IPEndPoint> > >();

                    var splitedText = this.txtAcceptableClients.Text.Trim().
                                      Split(new string[] { ";", ";", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

                    foreach (var item in splitedText)
                    {
                        var value = HelperTools.ParseIdAndEndPoints(item);
                        result.Add(value);
                    }

                    return(result);
                }
                else
                {
                    return(null); // 空引用表示不指定客户端,即接受所有客户端。
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("无法解析指定的客户端," + ex.Message + "\r\n多个客户端使用半角逗号分隔。", "Error",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(null);
            }
        }
Exemple #19
0
        private void RunReceiverProcessCallback(object state, CancellationToken token)
        {
            buffer = HelperTools.RentBuffer(HelperTools.SIZE_BYTES);
            Socket socket = (Socket)state;
            //EndPoint e = new IPEndPoint(IPAddress.Any, networkPort);
            long time;
            int  n_bytes;

            while (!cancelToken.IsCancellationRequested)
            {
                if (socket != null)
                {
                    try
                    {
                        n_bytes = socket.Receive(buffer, 0, buffer.Length, SocketFlags.None);
                        time    = HelperTools.GetLocalMicrosTime();
                        if (n_bytes > 0)
                        {
                            // Fire Event
                            DataReadyEvent?.Invoke(networkIp, networkPort, time, buffer, 0, n_bytes, ID, ipChunks);
                        }
                    }
                    catch (Exception ee) { }
                }
            }
            HelperTools.ReturnBuffer(buffer);
        }
Exemple #20
0
    IEnumerator ListenForReturn()
    {
        float countdown = 3;
        float time      = 0f;

        listening = true;

        while (listening)
        {
            var exit = Input.GetAxis("Submit");
            if (exit != 0)
            {
                HelperTools.ToggleOn(textCG);
                countdown          = Mathf.Ceil(3f - 2f * (Time.time - time));
                CountdownText.text = "" + countdown;
                if (countdown <= 0)
                {
                    HelperTools.ToggleOff(textCG);
                    yield return(ReturnToTheLab());
                }
            }
            else
            {
                HelperTools.ToggleOff(textCG);
                time      = Time.time;
                countdown = 3;
            }
            yield return(null);
        }
    }
Exemple #21
0
 private void Start()
 {
     GameManager.Instance.GameStateChange.AddListener(StateChange);
     textCG  = CountdownText.GetComponent <CanvasGroup>();
     shadeCG = Shade.GetComponent <CanvasGroup>();
     HelperTools.ToggleOff(textCG);
 }
        public async Task CatchMempoolAndBlockDoubleSpendMessages()
        {
            var txs = await CatchInMempoolDoubleSpendZMQMessage();

            var tx1   = HelperTools.ParseBytesToTransaction(HelperTools.HexStringToByteArray(txs.Item1));
            var tx2   = HelperTools.ParseBytesToTransaction(HelperTools.HexStringToByteArray(txs.Item2));
            var txId1 = tx1.GetHash().ToString();
            var txId2 = tx2.GetHash().ToString();

            await MineNextBlockAsync(new[] { tx2 });

            var mempoolTxs2 = await rpcClient0.GetRawMempool();

            // Tx should no longer be in mempool
            Assert.IsFalse(mempoolTxs2.Contains(txId1), "Submitted tx1 should not be found in mempool");
            WaitUntilEventBusIsIdle();

            var calls = Callback.Calls;

            Assert.AreEqual(2, calls.Length);
            var callbackDS = HelperTools.JSONDeserialize <JSONEnvelopeViewModel>(calls[1].request)
                             .ExtractPayload <CallbackNotificationDoubleSpendViewModel>();

            Assert.AreEqual(CallbackReason.DoubleSpend, callbackDS.CallbackReason);
            Assert.AreEqual(new uint256(txId1), new uint256(callbackDS.CallbackTxId));
            Assert.AreEqual(new uint256(txId2), new uint256(callbackDS.CallbackPayload.DoubleSpendTxId));
        }
        string RefreseHash(string hash)
        {
            var array = HelperTools.HexStringToByteArray(hash);

            Array.Reverse(array);
            return(HelperTools.ByteToHexString(array));
        }
Exemple #24
0
        public static void Run()
        {
            School school = new School()
            {
                Name    = "秀尽学院",
                Number  = 0,
                Student = new Student()
                {
                    Name = "Joker",
                    Age  = 18
                }
            };

            Console.WriteLine("--------原始对象");
            ShowSchoolInfo(school);

            Console.WriteLine("\n--------深拷贝方法1:序列化");
            School serSchool = HelperTools.SerializableClone(school);

            serSchool.Name         = "序列化  ";
            serSchool.Number       = 1;
            serSchool.Student.Name = "Skull";
            serSchool.Student.Age  = 20;
            ShowSchoolInfo(serSchool);
            ShowSchoolInfo(school);

            Console.WriteLine("\n--------深拷贝方法2:新建对象");
            School newSchool = (School)school.NewClone();

            newSchool.Name         = "new对象 ";
            newSchool.Number       = 2;
            newSchool.Student.Name = "Panther";
            newSchool.Student.Age  = 22;
            ShowSchoolInfo(newSchool);
            ShowSchoolInfo(school);


            Console.WriteLine("\n--------浅拷贝方法1:属性反射");
            School proSchool = HelperTools.PropertyClone(school);

            proSchool.Name         = "反射    ";
            proSchool.Number       = 3;
            proSchool.Student.Name = "Fox";
            proSchool.Student.Age  = 21;
            ShowSchoolInfo(proSchool);
            ShowSchoolInfo(school);

            Console.WriteLine("\n--------浅拷贝2:克隆接口");
            School cloneSchool = (School)school.Clone();

            cloneSchool.Name         = "克隆    ";
            cloneSchool.Number       = 4;
            cloneSchool.Student.Name = "Queen";
            cloneSchool.Student.Age  = 23;
            ShowSchoolInfo(cloneSchool);
            ShowSchoolInfo(school);

            Console.ReadLine();
        }
        private void CachePrevOut(PrevTxOutput prevTxOutput)
        {
            var cacheEntryOptions = new MemoryCacheEntryOptions()
                                    .SetSize(1)
                                    .SetSlidingExpiration(TimeSpan.FromMinutes(30));

            prevTxOutputCache.Cache.Set <PrevTxOutput>($"{HelperTools.ByteToHexString(prevTxOutput.TxExternalId)}_{prevTxOutput.N}", prevTxOutput, cacheEntryOptions);
        }
Exemple #26
0
 IEnumerator WaitForRaceEnd()
 {
     while (OldGM.Instance.Racing)
     {
         yield return(new WaitForSeconds(0.1f));
     }
     HelperTools.ToggleOn(cgRandom);
 }
Exemple #27
0
 /// <summary>
 /// Replaces currently known transactions with a set of new transactions
 /// </summary>
 /// <param name="data"></param>
 public void SetUpTransaction(params string[] data)
 {
     transactions.Clear();
     foreach (var tx in data)
     {
         AddKnownTransaction(HelperTools.HexStringToByteArray(tx));
     }
 }
 public ProgressViewModel()
 {
     this.tools     = new HelperTools();
     this.DM        = new DirectoryManager();
     this.managerIO = new IOManager();
     appData        = DM.GetAppDataPath("WordLearner");
     savedPlace     = Path.Combine(appData, "Saves");
 }
        private void btnUploadThumbnail_Click(object sender, EventArgs e)
        {
            string _uploadedPic = HelperTools.LoadFromFile("Choose Image", "PNG File (*.png)|*.png|JPEG File (*.jpg)|*.jpg");

            _uploadedPic  = HelperTools.AddFileToStorage(_uploadedPic, (int)_curUserProject.GetAuthor().GetUserID(), _curUserProjectID);
            _thumbNailPic = _uploadedPic;
            picThumbnail.ImageLocation = _thumbNailPic;
        }
Exemple #30
0
    void Update()
    {
        var input = Input.GetAxis("Submit");

        if (input != 0f)
        {
            HelperTools.ToggleOn(cg);
        }
    }
        public ActionResult MakeWithDrawal() {
            ViewBag.Message = "In this form you can fill in the details for making a withdrawal from your Cryptobank account";
            HelperTools h = new HelperTools();
            ViewBag.BitcoinRate = h.GetConversionRate();
            ViewBag.LastUpdated = h.GetLastTimeUpdated();

            var model = new DepositWithdrawalInfo();
            model.IBAN = loggedInUser.accountnumber;
            return View(model);
        }
 public ActionResult Dashboard()
 {
     if (Session["LoggedUserAccountNumber"] != null)
     {
         HelperTools rateOfExchange = new HelperTools();
         ViewBag.rate = rateOfExchange.GetConversionRate();
         ViewBag.date = rateOfExchange.GetLastTimeUpdated();
         return View(loggedInUser);
     }
     else
     {
         return RedirectToAction("Login");
     }
 }