private static IList <TradeShard> ConvertTradeTokenList(string response) { JArray parsedTrades = JArray.Parse(response); IList <JToken> tradeTokens = parsedTrades.Children().ToList(); IList <TradeShard> tradeList = new List <TradeShard>(); foreach (JToken tradeToken in tradeTokens) { TradeShard tradeShard = tradeToken.ToObject <TradeShard>(); tradeList.Add(tradeShard); } return(tradeList); }
private IList <HoldingsShard> AddBoughtAssetToPortfolio(CheetahConfig cheetahConfig, string bearerToken, IList <HoldingsShard> revisedPortfolio, TradeShard trade) { IList <HoldingsShard> copiedPortfolio = revisedPortfolio.ToList(); foreach (HoldingsShard holding in copiedPortfolio) { if (holding.AssetId == trade.AssetId) { holding.TotalAmount += trade.UnitShares; holding.TotalValue += (holding.PricePerShare * trade.UnitShares); return(copiedPortfolio); } } HoldingsShard newHolding = CreateNewHoldingFromTrade(cheetahConfig, bearerToken, trade); copiedPortfolio.Add(newHolding); return(copiedPortfolio); }
private IList <HoldingsShard> RemoveSoldAssetFromPortfolio(IList <HoldingsShard> revisedPortfolio, TradeShard trade) { IList <HoldingsShard> copiedPortfolio = revisedPortfolio.ToList(); foreach (HoldingsShard holding in copiedPortfolio) { if (holding.AssetId == trade.AssetId) { holding.TotalAmount -= trade.UnitShares; holding.TotalValue -= (holding.PricePerShare * trade.UnitShares); /*if (Math.Abs(holding.TotalAmount) <= 0) * { * copiedPortfolio.Remove(holding); * }*/ return(copiedPortfolio); } } return(null); }
private HoldingsShard CreateNewHoldingFromTrade(CheetahConfig cheetahConfig, string bearerToken, TradeShard trade) { AssetShard newAsset = GetAssetFromId(cheetahConfig, trade.AssetId, bearerToken).Result; HoldingsShard newHolding = new HoldingsShard { AssetId = trade.AssetId, TotalAmount = trade.UnitShares, PricePerShare = newAsset.Price, AssetName = newAsset.Issuer, AssetCategoryName = newAsset.AssetCategoryDisplayName }; return(newHolding); }