/// <summary> /// Sends trade /// </summary> /// <param name="incoming">Trade</param> public void SendTrading(TradingModel incoming) //Sends a message to a client. { using (TextWriter write = new StringWriter()) { using (XmlWriter newXml = XmlWriter.Create(write)) { newXml.WriteStartDocument(); newXml.WriteStartElement("Trading"); newXml.WriteElementString("ID", incoming.Id.ToString()); newXml.WriteElementString("OwnerID", incoming.Owner.ToString()); newXml.WriteElementString("BuyerID", incoming.Buyer.ToString()); newXml.WriteElementString("BuyerName", incoming.BuyerName.ToString()); newXml.WriteElementString("AssetID", incoming.AssetId.ToString()); newXml.WriteElementString("ItemID", incoming.ItemId.ToString()); newXml.WriteElementString("Price", incoming.Price.ToString()); newXml.WriteElementString("Amount", incoming.Amount.ToString()); newXml.WriteElementString("Text", incoming.Text); newXml.WriteElementString("Time", incoming.Time.ToString()); newXml.WriteElementString("Accept", incoming.Accept.ToString()); newXml.WriteElementString("PurcaseName", incoming.PurcaseName); newXml.WriteElementString("TotalPrice", incoming.TotalPrice.ToString()); newXml.WriteEndElement(); newXml.WriteWhitespace("\n"); newXml.WriteEndDocument(); } var writer = new StreamWriter(_clientSocket.GetStream()); writer.WriteLine(write); writer.Flush(); } }
private void Buy_Market(object o, EventArgs e) { var dt = new DateTime(); var newTrade = new TradingModel(0, 0, 0, "", 0, 0, 0.0, Convert.ToInt32(OMamount.Text), "", dt, 0, "", 0.0); if (_asset != null) { newTrade.AssetId = _asset.Id; newTrade.Price = (_asset.Price / 20) * (Convert.ToInt32(OMamount.Text) / 5); newTrade.PurcaseName = _asset.Name; } else { newTrade.ItemId = _item.Id; newTrade.Price = _item.Value * Convert.ToInt32(OMamount.Text); newTrade.PurcaseName = _item.Name; } EventHandler handler = TalkToBank; if (handler != null) { handler(newTrade, e); } }
/// <summary> /// Recieves trade /// </summary> /// <param name="doc"></param> /// <returns>Trade</returns> private static TradingModel RecieveTrading(XmlDocument doc) //Recieves a message from a client. { var recieveTrading = new TradingModel(0, 0, 0, "", 0, 0, 0, 0, "", new DateTime(), 0, "", 0); XmlElement root = doc["Trading"]; string id = root["ID"].InnerText; string oId = root["OwnerID"].InnerText; string bId = root["BuyerID"].InnerText; string bName = root["BuyerName"].InnerText; string aId = root["AssetID"].InnerText; string iId = root["ItemID"].InnerText; string price = root["Price"].InnerText; string amount = root["Amount"].InnerText; string text = root["Text"].InnerText; string time = root["Time"].InnerText; string accept = root["Accept"].InnerText; string purcasename = root["PurcaseName"].InnerText; string totalprice = root["TotalPrice"].InnerText; recieveTrading.Id = Int32.Parse(id); recieveTrading.Owner = Int32.Parse(oId); recieveTrading.Buyer = Int32.Parse(bId); recieveTrading.BuyerName = bName; recieveTrading.AssetId = Int32.Parse(aId); recieveTrading.ItemId = Int32.Parse(iId); recieveTrading.Price = double.Parse(price); recieveTrading.Amount = Int32.Parse(amount); recieveTrading.Text = text; recieveTrading.Time = Convert.ToDateTime(time); recieveTrading.Accept = Int32.Parse(accept); recieveTrading.PurcaseName = purcasename; recieveTrading.TotalPrice = double.Parse(totalprice); return(recieveTrading); }
/// <summary> /// Edits trade /// </summary> /// <param name="tm">Trade</param> public void EditTrade(TradingModel tm) { IQueryable <trade> trade = from t in _db.trades where t.Id == tm.Id select t; foreach (trade t in trade) { t.ownerId = tm.Owner; t.buyerId = tm.Buyer; t.buyerName = tm.BuyerName; t.assetId = tm.AssetId; t.itemId = tm.ItemId; t.price = tm.Price; t.amount = tm.Amount; t.tradeText = tm.Text; t.tradeTime = tm.Time; t.accept = tm.Accept; t.purchaseName = tm.PurcaseName; t.totalPrice = tm.TotalPrice; } try { _db.SubmitChanges(); } catch (Exception e) { Console.WriteLine(e); } }
private async void TradeOfferControl_Loaded(object sender, RoutedEventArgs e) { var sellerId = TradeOffer?.SellerId.ToString(); // If the seller name hasn't been loaded yet, look it up if (sellerId != null && sellerId == SellerName && TradingModel != null) { SellerName = await TradingModel.GetTraderNameAsync(TradeOffer.SellerId).ConfigureAwait(true); } }
public async Task <IActionResult> ExtendTradingSession([FromBody] TradingModel request) { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessage())); } await _clientSessionsClient.ExtendTradingSession(_lykkePrincipal.GetToken(), TimeSpan.FromMilliseconds(request.Ttl)); return(Ok()); }
public async Task <IActionResult> CreateTradingSession([FromBody] TradingModel request) { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessage())); } await _clientSessionsClient.CreateTradingSession(_requestContext.SessionId, TimeSpan.FromMilliseconds(request.Ttl)); return(Ok()); }
//Conditional Trading - Asking to buy an asset or item from a group private void Buy_Trading(object o, EventArgs e) { var dt = new DateTime(); var newTrade = new TradingModel(0, 0, 0, "", 0, 0, double.Parse(CTprice.Text), Convert.ToInt32(CTamount.Text), "", dt, 0, "", 0); if (CTmessage.Text == "Type in a message...") { newTrade.Text = ""; } else { newTrade.Text = CTmessage.Text; } if (groupsListBox.SelectedIndex == -1) { //buyButton.Content = "Choose a group!"; return; } var selected = (GroupModel)groupsListBox.SelectedItem; newTrade.Owner = selected.Id; if (_asset != null) { newTrade.AssetId = _asset.Id; newTrade.ItemId = 0; newTrade.PurcaseName = _asset.Name; } else { newTrade.AssetId = 0; newTrade.ItemId = _item.Id; newTrade.PurcaseName = _item.Name; newTrade.TotalPrice = newTrade.Price * newTrade.Amount; } groupsListBox.SelectedIndex = -1; EventHandler handler = SendTrade; if (handler != null) { handler(newTrade, e); } }
public void ConfirmWithBank(TradingModel newTrade, bool bank) { if (bank) { EventHandler handler = BuyFromMarket; if (handler != null) { handler(newTrade, new EventArgs()); } } else { bankWarning.Visibility = Visibility.Visible; buyButton.Visibility = Visibility.Collapsed; } }
public void AddInboxTrade(TradingModel message) { bool existing = false; for (int i = 0; i < Trades.Count; i++) { if (Trades[i].Id == message.Id) { Trades[i].Accept = message.Accept; existing = true; } } if (!existing) { Trades.Add(message); } Trades = Trades.OrderByDescending(o => o.Time).ToList(); ShowNotificationIcon("test", null); ShowMessages(); }
/// <summary> /// Gets trade /// </summary> /// <param name="id">Trade id</param> /// <returns>Trade</returns> private TradingModel GetTradeId(int id) { TradingModel trade = (from trades in _db.trades where trades.Id == id select new TradingModel { Id = trades.Id, Owner = trades.ownerId, Buyer = trades.buyerId, BuyerName = trades.buyerName, AssetId = (int)trades.assetId, ItemId = (int)trades.itemId, Price = (double)trades.price, Amount = (int)trades.amount, Text = trades.tradeText, Time = (DateTime)trades.tradeTime, Accept = (int)trades.accept, PurcaseName = trades.purchaseName, TotalPrice = (double)trades.totalPrice }).ToList().Last(); return(trade); }
/// <summary> /// Adds new trade to DB /// </summary> /// <param name="tm">Trade</param> /// <returns>Trade</returns> public TradingModel NewTrade(TradingModel tm) { var newTrade = new trade { ownerId = tm.Owner, buyerId = tm.Buyer, buyerName = tm.BuyerName, assetId = tm.AssetId, itemId = tm.ItemId, price = tm.Price, amount = tm.Amount, tradeText = tm.Text, tradeTime = tm.Time, accept = tm.Accept, purchaseName = tm.PurcaseName, totalPrice = tm.TotalPrice }; _db.trades.InsertOnSubmit(newTrade); try { _db.SubmitChanges(); } catch (Exception e) { Console.WriteLine(e); } int id = (from t in _db.trades orderby t.Id descending select t.Id).First(); TradingModel outgoing = GetTradeId(id); return(outgoing); }
public void TestInitialize() { _statisticsServiceMock = new Mock <IStatisticsService>(); _forexMarketServiceMock = new Mock <IForexMarketService>(); _forexTradingAgentServiceMock = new Mock <IForexTradingAgentService>(); _forexTradingServiceMock = new Mock <IForexTradingService>(); _periods = new List <string> { "300", "600", "900", "1800" }; _months = new List <string>(); for (var i = 1; i <= 12; i++) { _months.Add(string.Format("{0:00}", i)); } _statisticsSequence = new List <StatisticsSequenceDto> { new StatisticsSequenceDto { C45Errors = 10, C50Errors = 9, Cases = 500, Chunk = 0 }, new StatisticsSequenceDto { C45Errors = 10, C50Errors = 9, Cases = 499, Chunk = 1 }, new StatisticsSequenceDto { C45Errors = 10, C50Errors = 9, Cases = 501, Chunk = 2 }, new StatisticsSequenceDto { C45Errors = 10, C50Errors = 9, Cases = 498, Chunk = 3 }, new StatisticsSequenceDto { C45Errors = 10, C50Errors = 9, Cases = 502, Chunk = 4 } }; _nextRecordCalls = 0; _nextRecordCallsOverall = 0; _forexTrees = new List <ForexTreeData> { new ForexTreeData { Bid = 1.1111, Ask = 1.1115 }, new ForexTreeData { Bid = 1.1110, Ask = 1.1114 }, new ForexTreeData { Bid = 1.1109, Ask = 1.1112 }, new ForexTreeData { Bid = 1.1107, Ask = 1.1110 }, new ForexTreeData { Bid = 1.1105, Ask = 1.1105 } }; _forexMarketServiceMock .Setup(x => x.NextRecord()) .Returns(_forexTrees[_nextRecordCalls]) .Callback(() => { _nextRecordCalls++; _nextRecordCallsOverall++; }); _forexTradingAgentServiceMock .Setup(x => x.ClassifyRecord(It.IsAny <ForexTreeData>())) .Returns(MarketAction.Buy); _forexMarketServiceMock .Setup(x => x.IsDone()) .Returns(() => _nextRecordCalls == _forexTrees.Count); _forexMarketServiceMock .Setup(x => x.Clear()) .Callback(() => _nextRecordCalls = 0); _statisticsServiceMock .SetupGet(x => x.StatisticsSequence) .Returns(_statisticsSequence); _forexTradingServiceMock .Setup(x => x.BidSize) .Returns(2000.0); _model = new TradingModel( _statisticsServiceMock.Object, _forexMarketServiceMock.Object, _forexTradingAgentServiceMock.Object, _forexTradingServiceMock.Object ); }
/// <summary> /// Performs the asset trade /// </summary> /// <param name="tm">The Trade</param> /// <returns>The changed item inventories</returns> public static List <ItemInventoryModel> TradeItem(TradingModel tm) { return(TradingDal.TradeItem(tm)); }
/// <summary> /// Performs the asset trade /// </summary> /// <param name="tm">The Trade</param> /// <returns>The changed asset inventories</returns> public static List <AssetInventoryModel> TradeAsset(TradingModel tm) { return(TradingDal.TradeAsset(tm)); }
/// <summary> /// Edits the trade in DB /// </summary> /// <param name="tm">The Trade</param> public static void EditTrade(TradingModel tm) { TradingDal.EditTrade(tm); }
/// <summary> /// Adds new trade to DB /// </summary> /// <param name="tm">The trade</param> /// <returns>The trade</returns> public static TradingModel NewTrade(TradingModel tm) { return(TradingDal.NewTrade(tm)); }
/// <summary> /// Performs item trade /// </summary> /// <param name="tm">Trade</param> /// <returns>Changed item inventories</returns> public List <ItemInventoryModel> TradeItem(TradingModel tm) { var itemInventories = new List <ItemInventoryModel>(); var itemInventory = new ItemInventoryModel(); IQueryable <itemInventory> query = (from itemInv in _db.itemInventories where itemInv.itemId == tm.ItemId && itemInv.teamId == tm.Buyer select itemInv); if (query.Count() != 0) { itemInventory result = query.First(); result.quantity += tm.Amount; if (result.quantity != null) { itemInventory = new ItemInventoryModel(result.Id, tm.Buyer, tm.ItemId, (double)result.quantity); } } else { itemInventory = new ItemInventoryModel(0, tm.Buyer, tm.ItemId, tm.Amount); _inventoryDal.BuyItem(itemInventory); } // Submit the changes to the database. try { _db.SubmitChanges(); itemInventories.Add(itemInventory); ValueDal.IncreaseOrDecreaseCash(tm.Buyer, -tm.Price); } catch (Exception e) { Console.WriteLine(e); // Provide for exceptions. } if (tm.Owner != 0) { query = (from itemInv in _db.itemInventories where itemInv.itemId == tm.ItemId && itemInv.teamId == tm.Owner select itemInv); if (query.Count() != 0) { itemInventory result = query.First(); result.quantity -= tm.Amount; if (result.quantity != null) { itemInventory = new ItemInventoryModel(result.Id, tm.Buyer, tm.ItemId, (double)result.quantity); } } // Submit the changes to the database. try { _db.SubmitChanges(); itemInventories.Add(itemInventory); ValueDal.IncreaseOrDecreaseCash(tm.Owner, tm.Price); } catch (Exception e) { Console.WriteLine(e); // Provide for exceptions. } } return(itemInventories); }
/// <summary> /// Performs asset trade /// </summary> /// <param name="tm">Trade</param> /// <returns>Changed asset inventories</returns> public List <AssetInventoryModel> TradeAsset(TradingModel tm) { var assetInventories = new List <AssetInventoryModel>(); var assetInventory = new AssetInventoryModel(); IQueryable <assetInventory> query = (from assetInv in _db.assetInventories where assetInv.assetId == tm.AssetId && assetInv.teamId == tm.Buyer select assetInv); if (query.Count() != 0) { assetInventory result = query.First(); result.share += tm.Amount; if (result.share != null) { assetInventory = new AssetInventoryModel(result.Id, tm.AssetId, tm.Buyer, (int)result.share); } } else { var newAssetInventory = new AssetInventoryModel(0, tm.AssetId, tm.Buyer, tm.Amount); assetInventory = _inventoryDal.BuyAsset(newAssetInventory); } // Submit the changes to the database. try { _db.SubmitChanges(); assetInventories.Add(assetInventory); ValueDal.IncreaseOrDecreaseCash(tm.Buyer, -tm.Price); } catch (Exception e) { Console.WriteLine(e); // Provide for exceptions. } if (tm.Owner != 0) { query = (from assetInv in _db.assetInventories where assetInv.assetId == tm.AssetId && assetInv.teamId == tm.Owner select assetInv); if (query.Count() != 0) { assetInventory result = query.First(); result.share -= tm.Amount; if (result.share != null) { assetInventory = new AssetInventoryModel(result.Id, tm.AssetId, tm.Owner, (int)result.share); } } // Submit the changes to the database. try { _db.SubmitChanges(); assetInventories.Add(assetInventory); ValueDal.IncreaseOrDecreaseCash(tm.Owner, tm.Price); } catch (Exception e) { Console.WriteLine(e); // Provide for exceptions. } } return(assetInventories); }
/// <summary> /// Communcates with server /// </summary> private void DoChat() { Thread.Sleep(100); while (true) { Thread.Sleep(10); string incomeData; TextReader reader = new StreamReader(_clientSocket.GetStream()); if (_clientSocket.Available > 0) { var doc = new XmlDocument(); while ((incomeData = reader.ReadLine()) != null && (incomeData.StartsWith("<") && incomeData.EndsWith(">"))) { Console.WriteLine(incomeData); doc.LoadXml(incomeData); XmlElement root = doc.DocumentElement; if (root != null) { string rootText = root.Name; if (rootText == "Timestamp") { DateTime s = RecieveTimeStamp(doc); RecieveObject(s, null); } else if (rootText == "Cashlist") { List <CashPerTeamModel> s = RecieveCurrentCash(doc); RecieveObject(s, null); } else if (rootText == "Message") { MessageModel incoming = RecieveMessage(doc); RecieveObject(incoming, null); } else if (rootText == "Trading") { TradingModel incoming = RecieveTrading(doc); RecieveObject(incoming, null); } else if (rootText == "Notification") { NotificationModel incoming = RecieveNotification(doc); RecieveObject(incoming, null); } else if (rootText == "Asset") { AssetModel incoming = RecieveAsset(doc); RecieveObject(incoming, null); } else if (rootText == "AssetInventory") { AssetInventoryModel incoming = RecieveAssetInventory(doc); RecieveObject(incoming, null); } else if (rootText == "AssetList") { List <AssetModel> incoming = RecieveAssetList(doc); RecieveObject(incoming, null); } else if (rootText == "AssetInventoryList") { List <AssetInventoryModel> incoming = RecieveAssetInventoryList(doc); RecieveObject(incoming, null); } else if (rootText == "Item") { ItemModel incoming = RecieveItem(doc); RecieveObject(incoming, null); } else if (rootText == "ItemInventory") { ItemInventoryModel incoming = RecieveItemInventory(doc); RecieveObject(incoming, null); } else if (rootText == "ItemList") { List <ItemModel> incoming = RecieveItemList(doc); RecieveObject(incoming, null); } else if (rootText == "ItemInventoryList") { List <ItemInventoryModel> incoming = RecieveItemInventoryList(doc); RecieveObject(incoming, null); } else if (rootText == "GroupList") { List <GroupModel> incoming = RecieveGroupList(doc); RecieveObject(incoming, null); } else if (rootText == "MessageList") { List <MessageModel> incoming = RecieveMessageList(doc); RecieveObject(incoming, null); } else if (rootText == "NotificationList") { List <NotificationModel> incoming = RecieveNotificationList(doc); RecieveObject(incoming, null); } else if (rootText == "TradingList") { List <TradingModel> incoming = RecieveTradingList(doc); //Console.WriteLine("test"); RecieveObject(incoming, null); } else if (rootText == "Groupnumber") { int groupNumber = RecieveGroupNumber(doc); RecieveObject(groupNumber, null); } else if (rootText == "Pause") { bool paused = RecievePauseState(doc); RecieveObject(paused, null); } } } } } }
public IResponse PostClientSession(TradingModel model, string authorization) { return(Request.Post("/client/session").AddJsonBody(model).WithHeaders("Authorization", authorization).Build().Execute()); }