コード例 #1
0
        public void Send(Message message)
        {
            Console.WriteLine("Отправка сообщения");
            Sends.Add(message);

            Sended?.Invoke(this, message);//генерирование события
        }
コード例 #2
0
ファイル: DetailView.xaml.cs プロジェクト: dcgoodnow/celine
 private void RefreshView_Click(object sender, RoutedEventArgs e)
 {
     for (int i = 1; i < 17; i++)
     {
         Sends.SetLevel(i, .5f);
     }
 }
コード例 #3
0
        public Dictionary <string, string> DataToDict()
        {
            Dictionary <string, string> result = new Dictionary <string, string>
            {
                ["experience"]        = Experience.ToString(),
                ["kills"]             = Kills.ToString(),
                ["leaks"]             = Leaks.ToString(),
                ["builds"]            = Builds.ToString(),
                ["sends"]             = Sends.ToString(),
                ["earned_tangos"]     = EarnedTangos.ToString(),
                ["won_games"]         = WonGames.ToString(),
                ["won_duels"]         = WonDuels.ToString(),
                ["lost_games"]        = LostGames.ToString(),
                ["lost_duels"]        = LostDuels.ToString(),
                ["win_rate"]          = WinRate.ToString(),
                ["duel_win_rate"]     = DuelWinRate.ToString(),
                ["rating"]            = Rating.ToString(),
                ["earned_gold"]       = EarnedGold.ToString(),
                ["gold_per_minute"]   = GoldPerMinute.ToString(),
                ["tangos_per_minute"] = TangosPerMinute.ToString(),
                ["time_played"]       = TimePlayed.ToString()
            };

            // foreach (var data in FractionDatas) {
            //     result[KilledPrefix + data.FractionName] = data.Killed.ToString();
            //     result[PlayedPrefix + data.FractionName] = data.Played.ToString();
            // }
            foreach (var pair in PlayedFractions)
            {
                result[pair.Key] = pair.Value.ToString();
            }
            // foreach (var pair in FractionKills)
            //     result[pair.Key] = pair.Value.ToString();
            return(result);
        }
コード例 #4
0
        private void Cancel_Click(object sender, EventArgs e)
        {
            if (dgOrders.SelectedRows.Count == 0)
            {
                MessageBox.Show("No order selected", "Warning");
                return;
            }

            var market = GetMarket();

            if (market == MarketType.Empty)
            {
                return;
            }

            foreach (DataGridViewRow row in dgOrders.SelectedRows)
            {
                socket?.Send(Sends.OrderCancel(
                                 rbReal.Checked ? SysType.Real : SysType.Demo,
                                 market,
                                 new Order {
                    OrderID = row.Cells["OrderID"].Value.ToString()
                }
                                 ));
            }
        }
コード例 #5
0
ファイル: TestRig.cs プロジェクト: wizard872/monotorrent
        public async ReusableTask <int> SendAsync(ByteBuffer buffer, int offset, int count)
        {
            if (SlowConnection)
            {
                count = Math.Min(88, count);
            }

            await WriteStream.WriteAsync(buffer.Data, offset, count, CancellationToken.None);

            Sends.Add(count);
            return(ManualBytesSent ?? count);
        }
コード例 #6
0
ファイル: TestRig.cs プロジェクト: gweffect/monotorrent
        public async ReusableTask <int> SendAsync(SocketMemory buffer)
        {
            if (SlowConnection)
            {
                buffer = buffer.Slice(0, Math.Min(88, buffer.Length));
            }

            var data = buffer.Memory.ToArray();
            await WriteStream.WriteAsync(data, 0, data.Length, CancellationToken.None);

            Sends.Add(buffer.Length);
            return(ManualBytesSent ?? buffer.Length);
        }
コード例 #7
0
        private void GetBalance_Click(object sender, EventArgs e)
        {
            if (!rbReal.Checked)
            {
                MessageBox.Show("Get balance only for Real", "Warning");
                return;
            }

            var market = GetMarket();

            if (market == MarketType.Empty)
            {
                return;
            }
            socket?.Send(Sends.GetBalance(market));
        }
コード例 #8
0
        private void Move_Click(object sender, EventArgs e)
        {
            if (dgOrders.SelectedRows.Count == 0)
            {
                MessageBox.Show("No order selected", "Warning");
                return;
            }

            var market = GetMarket();

            if (market == MarketType.Empty)
            {
                return;
            }

            foreach (DataGridViewRow row in dgOrders.SelectedRows)
            {
                using (var form = new OrderPlace(
                           market,
                           pairs.Data[EnumValue.GetValue(market)],
                           new {
                    pair = row.Cells["Pair"].Value?.ToString(),
                    buy = row.Cells["Side"].Value?.ToString() == "Buy",
                    limit = row.Cells["Type"].Value?.ToString() == "Limit",
                    amount = row.Cells["Amount"].Value?.ToString(),
                    price = row.Cells["Price"].Value?.ToString(),
                    guid = row.Cells["API_GUID"].Value?.ToString()
                }))
                {
                    form.ShowDialog();
                    if (form.IsOK)
                    {
                        socket?.Send(Sends.OrderMove(
                                         rbReal.Checked ? SysType.Real : SysType.Demo,
                                         market,
                                         new Order {
                            OrderID = row.Cells["OrderID"].Value.ToString(),
                            Price   = form.tbPrice.Text
                        }
                                         ));
                    }
                }
            }
        }
コード例 #9
0
        private void Place_Click(object sender, EventArgs e)
        {
            if (lbMarkets.SelectedItem == null)
            {
                MessageBox.Show("No Markets selected", "Warning");
                return;
            }

            var market = GetMarket();

            if (market == MarketType.Empty)
            {
                return;
            }

            using (var form = new OrderPlace(
                       market,
                       pairs.Data[EnumValue.GetValue(market)]))
            {
                form.ShowDialog();
                if (form.IsOK)
                {
                    socket?.Send(Sends.OrderPlace(
                                     rbReal.Checked ? SysType.Real : SysType.Demo,
                                     market,
                                     new Order {
                        Pair   = form.cbPair.Text,
                        Side   = form.rbBuy.Checked ? OrderSide.Buy : OrderSide.Sell,
                        Type   = form.rbLimit.Checked ? OrderType.Limit : OrderType.Market,
                        Amount = form.tbAmount.Text,
                        Price  = form.rbLimit.Checked ? form.tbPrice.Text : null,
                    },
                                     string.IsNullOrWhiteSpace(form.tbGUID.Text) ? null : form.tbGUID.Text
                                     ));
                }
            }
        }
コード例 #10
0
ファイル: Model.cs プロジェクト: niravpatel2008/spike-build
        internal void Load(string location)
        {
            try
            {
                // Load the document
                var document = XDocument.Load(location);
                if (document == null)
                {
                    throw new FileLoadException("Unable to load the document.");
                }

                // Get the protocol name
                var protocolName = document.Root.GetAttributeValue(@"Name");
                if (protocolName == null)
                {
                    throw new ProtocolMalformedException("Protocol name not found.");
                }


                var SignBuilder = new StringBuilder();
                var operations  = document.Descendants()
                                  .Where(operation => operation.Name.LocalName == "Operation");

                //ProtocolName.Push.OperationName.[MemberTypes].[]
                foreach (var xoperation in operations)
                {
                    SignBuilder.Clear();
                    SignBuilder.Append(protocolName);
                    SignBuilder.Append('.');

                    var xreceive = xoperation.Elements().FirstOrDefault(element => element.Name.LocalName == "Outgoing");
                    var xsend    = xoperation.Elements().FirstOrDefault(element => element.Name.LocalName == "Incoming");;

                    List <Member> sendMembers;
                    List <Member> receiveMembers;

                    // Check if we have a compression applied
                    var compressSend    = false;
                    var compressReceive = false;
                    var compression     = xoperation.GetAttributeValue("Compression");
                    if (compression != null)
                    {
                        switch (compression)
                        {
                        case "Both":
                            compressSend    = true;
                            compressReceive = true;
                            break;

                        case "Incoming":
                            compressSend = true;
                            break;

                        case "Outgoing":
                            compressReceive = true;
                            break;
                        }
                    }

                    // Get the direction
                    var direction = xoperation.GetAttributeValue("Direction");
                    if (direction != null && direction == "Push")
                    {
                        SignBuilder.Append("Push");
                        SignBuilder.Append('.');

                        //receive always exist
                        if (xreceive == null)
                        {
                            receiveMembers = new List <Member>();
                        }
                        else
                        {
                            receiveMembers = GetMembers(xreceive);
                        }

                        //never send
                        if (xsend != null)
                        {
                            throw new ProtocolMalformedException("A push operation can not contain an 'Incoming' element.");
                        }
                        sendMembers = null;
                    }
                    else
                    {
                        SignBuilder.Append("Pull");
                        SignBuilder.Append('.');

                        if (xreceive == null)
                        {
                            receiveMembers = null;
                        }
                        else
                        {
                            receiveMembers = GetMembers(xreceive);
                        }

                        //add request always
                        if (xsend == null)
                        {
                            sendMembers = new List <Member>();
                        }
                        else
                        {
                            sendMembers = GetMembers(xsend);
                        }
                    }

                    var name = xoperation.Attribute("Name").Value;
                    SignBuilder.Append(name);
                    SignBuilder.Append(".[");

                    //add receive members to signature
                    if (receiveMembers != null && receiveMembers.Count > 0)
                    {
                        SignBuilder.Append(receiveMembers
                                           .Select(member => member.IsList ? string.Format("ListOf{0}", member.IsCustom ? "ComplexType" : member.Type) : member.IsCustom ? "ComplexType" : member.Type).Aggregate((type1, type2) => string.Format("{0}.{1}", type1, type2)));
                    }

                    SignBuilder.Append("].[");

                    //add sends members to signature
                    if (sendMembers != null && sendMembers.Count > 0)
                    {
                        SignBuilder.Append(sendMembers
                                           .Select(member => member.IsList ? string.Format("ListOf{0}", member.IsCustom ? "ComplexType" : member.Type) : member.IsCustom ? "ComplexType" : member.Type).Aggregate((type1, type2) => string.Format("{0}.{1}", type1, type2)));
                    }

                    SignBuilder.Append("]");

                    //Console.WriteLine(SignBuilder.ToString());

                    var id = SignBuilder.ToString().GetMurmurHash3();
                    if (receiveMembers != null)
                    {
                        var operation = new Operation(id, name + "Inform", compressReceive);
                        operation.Members.AddRange(receiveMembers);

                        Receives.Add(operation);
                    }

                    if (sendMembers != null)
                    {
                        var operation = new Operation(id, name, compressSend);
                        operation.Members.AddRange(sendMembers);

                        Sends.Add(operation);
                    }
                }
            }
            catch (FileNotFoundException)
            {
                throw new FileNotFoundException("SPML document was not found or unreachable.");
            }
        }