public async Task <WatchListModel> AddStocks(int watchlistId, IEnumerable <string> stockSymbols, CancellationToken cancellationToken) { var userId = this.currentPrincipal.GetUserId(); if (watchlistId == 0) { var defaultWatchList = await GetDefaultWatchList(userId.Value, cancellationToken); if (defaultWatchList == null) { return(null); } watchlistId = defaultWatchList.WATCH_LIST_ID; } // must exist in Stock table // must not exist in user watch list var stocks = stockSymbols.Select(s => s.ToUpper()); var stocksToAdd = await dbContext.Stocks .Where(s => stocks.ToArray().Contains(s.SYMBOL.ToUpper()) && !s.Ref_StocksInWatchLists.Any(w => w.Ref_WatchList.TIRIRIT_USER_ID == userId && w.STOCK_ID == s.STOCK_ID)) .ToListAsync(cancellationToken: cancellationToken); stocksToAdd.ForEach(s => { dbContext.WatchListStocks.Add(new WATCH_LIST_STOCK { WATCH_LIST_ID = watchlistId, STOCK_ID = s.STOCK_ID }); }); await dbContext.SaveChangesAsync(cancellationToken); return(await GetWatchList(watchlistId, cancellationToken)); }
public async Task DeletePost(int postId) { var post = await dbContext.TiriritPosts .SingleOrDefaultAsync(p => p.TIRIRIT_POST_ID == postId); if (post != null) { post.DELETED_IND = 1; await dbContext.SaveChangesAsync(); } }
public async Task <StockModel> AddStock(StockModel stockModel, CancellationToken cancellationToken) { var stock = new STOCK { SECTOR_ID = stockModel.SectorId, NAME = stockModel.Name, SYMBOL = stockModel.Symbol }; dbContext.Stocks.Add(stock); await dbContext.SaveChangesAsync(cancellationToken); //TODO: just return the stock object converted to domain model return(await GetStock(stockModel.Symbol, cancellationToken)); }
public async Task <HashTagModel> AddHashTag(string tag) { var hashTag = await GetAll() .SingleOrDefaultAsync(h => h.HashTagText == tag); if (hashTag != null) { var newTag = new HASH_TAG { HASH_TAG_TEXT = tag }; dbContext.HashTags.Add(newTag); await dbContext.SaveChangesAsync(); hashTag = await GetAll() .SingleOrDefaultAsync(h => h.HashTagText == tag); } return(hashTag); }
public async Task <StockSectorModel> AddSector(StockSectorModel sectorModel) { var sector = new STOCK_SECTOR { SECTOR_NAME = sectorModel.SectorName }; dbContext.StockSectors.Add(sector); await dbContext.SaveChangesAsync(); return(new StockSectorModel { SectorName = sector.SECTOR_NAME, SectorId = sector.STOCK_SECTOR_ID }); }
public async Task AddPostMention(int postId, string[] userNames) { userNames = userNames.Select(user => user.ToLower()).ToArray(); var users = await dbContext.Users .Where(user => userNames.Contains(user.UserName.ToLower())) .ToListAsync(); if (!users.Any()) { return; } users.ForEach(user => { var mention = new MENTION { TIRIRIT_POST_ID = postId, TIRIRIT_USER_ID = user.Id }; dbContext.Mentions.Add(mention); }); await dbContext.SaveChangesAsync(); }
public async Task <StockQuoteModel> AddStockQuote(StockQuoteModel stockQuote, CancellationToken cancellationToken) { var quote = new STOCK_QUOTE { HIGH = stockQuote.High, CLOSE = stockQuote.Close, LOW = stockQuote.Low, NET_FOREIGN_BUY = stockQuote.NetForeignBuy, OPEN = stockQuote.Open, STOCK_ID = stockQuote.StockId, TRADE_DATE = stockQuote.TradeDate, VOLUMNE = stockQuote.Volume }; dbContext.StockQuotes.Add(quote); await dbContext.SaveChangesAsync(); stockQuote.StockQuoteId = quote.STOCK_ID; return(stockQuote); }