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); }
private IList <HoldingsShard> ConvertHoldingTokenList(string jsonHoldingsString) { IList <HoldingsShard> holdingShardList = new List <HoldingsShard>(); JArray parsedResponse = JArray.Parse(jsonHoldingsString); JToken unarrayedHoldingsJson = parsedResponse[0]; IList <JToken> holdingTokenList = unarrayedHoldingsJson["Holdings"].Children().ToList(); foreach (JToken holdingToken in holdingTokenList) { HoldingsShard holdingShard = holdingToken.ToObject <HoldingsShard>(); IList <JToken> lotTokenList = holdingToken["Lots"].Children().ToList(); IList <LotShard> lotList = ConvertLotTokenList(lotTokenList); holdingShard.CalculateFieldsFromLots(lotList); holdingShardList.Add(holdingShard); } return(holdingShardList); }
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); }