public async Task <AssetData> GetAssetData(string ticket, int userId) { var searchData = await Search(ticket); if (searchData == null) { return(null); } if (AssetTypes.STOCK == searchData.Type) { var stockInfo = new StockInfo(_marketData, _financeData, ticket); RegisterAllOperations(stockInfo, userId); return(await GetAssetData(stockInfo)); } if (AssetTypes.ETF == searchData.Type) { var fondInfo = new FondInfo(_marketData, _financeData, ticket); RegisterAllOperations(fondInfo, userId); return(await GetAssetData(fondInfo)); } if (AssetTypes.OFZ == searchData.Type) { var bondInfo = new BondInfo(_marketData, _financeData, ticket); RegisterAllOperations(bondInfo, userId); return(await GetAssetData(bondInfo)); } return(null); }
private AssetInfo Getbond() { var operations = new List <AssetOperation>() { new AssetOperation() { Id = 1, Ticket = "SU26209RMFS5", Amount = 2, PaymentPrice = 103180, PortfolioId = 1, AssetAction = _buyAction, AssetActionId = _buyAction.Id, AssetType = _bondType, AssetTypeId = _bondType.Id, Date = new DateTime(2020, 2, 7) }, new AssetOperation() { Id = 2, Ticket = "SU26209RMFS5", Amount = 1, PortfolioId = 1, PaymentPrice = 103230, AssetAction = _buyAction, AssetActionId = _buyAction.Id, AssetType = _bondType, AssetTypeId = _bondType.Id, Date = new DateTime(2020, 4, 4) } }; var payments = new List <Payment>() { new Payment() { PortfolioId = 1, Ticket = "SU26209RMFS5", Amount = 3, Date = DateTime.Now, PaymentValue = 11370 }, }; _financeDataService.EfContext.Payments.AddRange(payments); _financeDataService.EfContext.SaveChanges(); var stockInfo = new BondInfo(_stockMarketData, _financeDataService, "SU26209RMFS5"); foreach (var assetOperation in operations) { stockInfo.RegisterOperation(assetOperation); } return(stockInfo); }
private void RegisterOperation(List<AssetInfo> assets, AssetOperation operation) { if (operation.AssetType.Name == SeedFinanceData.STOCK_ASSET_TYPE) { var asset = assets.FirstOrDefault(a => a.Ticket == operation.Ticket); if (asset == null) { var stockInfo = new StockInfo(_marketData, _financeDataService, operation.Ticket); assets.Add(stockInfo); asset = stockInfo; } asset.RegisterOperation(operation); } if (operation.AssetType.Name == SeedFinanceData.FOND_ASSET_TYPE) { var asset = assets.FirstOrDefault(a => a.Ticket == operation.Ticket); if (asset == null) { var fondInfo = new FondInfo(_marketData, _financeDataService, operation.Ticket); assets.Add(fondInfo); asset = fondInfo; } asset.RegisterOperation(operation); } if (operation.AssetType.Name == SeedFinanceData.BOND_ASSET_TYPE) { var asset = assets.FirstOrDefault(a => a.Ticket == operation.Ticket); if (asset == null) { var bondInfo = new BondInfo(_marketData, _financeDataService, operation.Ticket); assets.Add(bondInfo); asset = bondInfo; } asset.RegisterOperation(operation); } }