Example #1
0
        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));
        }
Example #2
0
        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();
            }
        }
Example #3
0
        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));
        }
Example #4
0
        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);
        }
Example #5
0
        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
            });
        }
Example #6
0
        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();
        }
Example #7
0
        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);
        }