예제 #1
0
        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 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);
            }
        }
예제 #3
0
 public void UpdateFonds(FondInfo Fonds)
 {
     _IFond.Update(Fonds);
 }
예제 #4
0
 public void AddFonds(FondInfo Fonds)
 {
     _IFond.Add(Fonds);
 }