public void Send(Message message) { Console.WriteLine("Отправка сообщения"); Sends.Add(message); Sended?.Invoke(this, message);//генерирование события }
private void RefreshView_Click(object sender, RoutedEventArgs e) { for (int i = 1; i < 17; i++) { Sends.SetLevel(i, .5f); } }
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); }
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() } )); } }
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); }
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); }
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)); }
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 } )); } } } }
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 )); } } }
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."); } }