public async Task <PagingResultEnvelope <PostModel> > GetTrendingPosts(PagingParam pagingParam, CancellationToken cancellationToken = default) { var query = GetAll() .OrderByDescending(o => o.POST_DATE); return(await PagingResultEnvelope <PostModel> .ToPagingEnvelope(ToDomainModel(query), pagingParam, cancellationToken)); }
public async Task <PagingResultEnvelope <PostModel> > GetComments(int postId, PagingParam pagingParam, CancellationToken cancellationToken) { var result = GetAll() .Where(post => post.ResponseToPostId == postId); return(await PagingResultEnvelope <PostModel> .ToPagingEnvelope(result, pagingParam, cancellationToken)); }
public async Task <PagingResultEnvelope <PostModel> > GetPostsByUserId(int userId, PagingParam pagingParam, CancellationToken cancellationToken = default) { var result = GetAll() .Where(post => post.UserId == userId); return(await PagingResultEnvelope <PostModel> .ToPagingEnvelope(result, pagingParam, cancellationToken)); }
public async Task <PagingResultEnvelope <PostModel> > GetPostsByTag(string tag, PagingParam pagingParam, CancellationToken cancellationToken = default) { var query = GetAll() .Where(post => post.Ref_HashTags.Any(hashTag => hashTag.Ref_HashTag.HASH_TAG_TEXT == tag)) .OrderByDescending(o => o.POST_DATE); return(await PagingResultEnvelope <PostModel> .ToPagingEnvelope(ToDomainModel(query), pagingParam, cancellationToken)); }
public async Task <PagingResultEnvelope <PostModel> > GetPostsByStock(string symbol, PagingParam pagingParam, CancellationToken cancellationToken = default) { var query = GetAll() .Where(post => post.Ref_Stocks.Any(stock => stock.Ref_Stock.SYMBOL == symbol)) .OrderByDescending(o => o.POST_DATE); return(await PagingResultEnvelope <PostModel> .ToPagingEnvelope(ToDomainModel(query), pagingParam, cancellationToken)); }
public async Task <PagingResultEnvelope <PostModel> > GetWatchListFeed(PagingParam pagingParam, CancellationToken cancellationToken = default) { var userId = this.currentPrincipal.GetUserId(); var query = GetAll() .Where(post => post.Ref_Stocks.Any( stock => stock.Ref_Stock.Ref_StocksInWatchLists.Any(w => w.STOCK_ID == stock.STOCK_ID && w.Ref_WatchList.TIRIRIT_USER_ID == userId))) .Distinct() .OrderByDescending(o => o.POST_DATE); return(await PagingResultEnvelope <PostModel> .ToPagingEnvelope(ToDomainModel(query), pagingParam, cancellationToken)); }
public async Task <PagingResultEnvelope <PostModel> > GetMentionFeed(PagingParam pagingParam, CancellationToken cancellationToken = default) { var userId = this.currentPrincipal.GetUserId(); var query = GetAll() // get all posts the user is mentioned in .Where(post => post.Ref_MentionUsers.Any(mention => mention.TIRIRIT_USER_ID == userId && mention.Ref_TiriritPost.DELETED_IND == 0) || post.Ref_Responses.Any(response => response.Ref_MentionUsers.Any(mention => mention.TIRIRIT_USER_ID == userId) && response.DELETED_IND == 0)) .Distinct() .OrderByDescending(o => o.POST_DATE); return(await PagingResultEnvelope <PostModel> .ToPagingEnvelope(ToDomainModel(query), pagingParam, cancellationToken)); }
public async Task <PagingResultEnvelope <PostModel> > GetUserFeed(PagingParam pagingParam, CancellationToken cancellationToken = default) { var userId = this.currentPrincipal.GetUserId(); var query = GetAll() // get all posts the user is mentioned in // get all posts the user responded to // get all posts related to the users watch list // TODO include subscriptions .Where(post => post.TIRIRIT_USER_ID == userId || post.Ref_MentionUsers.Any(mention => mention.TIRIRIT_USER_ID == userId && mention.Ref_TiriritPost.DELETED_IND == 0) || post.Ref_Responses.Any(response => response.TIRIRIT_USER_ID == userId && response.DELETED_IND == 0) || post.Ref_Stocks.Any( stock => stock.Ref_Stock.Ref_StocksInWatchLists.Any(w => w.STOCK_ID == stock.STOCK_ID && w.Ref_WatchList.TIRIRIT_USER_ID == userId))) .Distinct(); return(await PagingResultEnvelope <PostModel> .ToPagingEnvelope(ToDomainModel(query), pagingParam, cancellationToken)); }
public async Task <PagingResultEnvelope <StockModel> > GetStocksFromWatchlist(int watchListId, PagingParam pagingParam, CancellationToken cancellationToken) { var userId = this.currentPrincipal.GetUserId(); var result = dbContext.WatchListStocks .AsNoTracking() .Where(w => w.Ref_WatchList.DELETED_IND == 0 && w.Ref_WatchList.TIRIRIT_USER_ID == userId) .Select(stock => new StockModel { Name = stock.Ref_Stock.NAME, StockQuotes = stock.Ref_Stock.Ref_StockQuotes .Select(q => q.ToDomainModel()), SectorId = stock.Ref_Stock.SECTOR_ID, StockId = stock.Ref_Stock.STOCK_ID, Symbol = stock.Ref_Stock.SYMBOL, Wacthers = stock.Ref_Stock.Ref_StocksInWatchLists.Select(w => w.Ref_WatchList.Ref_TiriritUser.ToDomainModel()) }); return(await PagingResultEnvelope <StockModel> .ToPagingEnvelope(result, pagingParam, cancellationToken)); }
public async Task <PagingResultEnvelope <StockQuoteModel> > GetStockQuotes(string symbol, PagingParam pagingParam, CancellationToken cancellationToken) { var result = dbContext.StockQuotes .AsNoTracking() .Where(quote => quote.Ref_Stock.SYMBOL == symbol) .Select(data => new StockQuoteModel { Close = data.CLOSE, High = data.HIGH, Low = data.LOW, NetForeignBuy = data.NET_FOREIGN_BUY, Open = data.OPEN, StockId = data.Ref_Stock.STOCK_ID, StockQuoteId = data.STOCK_QUOTE_ID, TradeDate = data.TRADE_DATE, Volume = data.VOLUMNE }); return(await PagingResultEnvelope <StockQuoteModel> .ToPagingEnvelope(result, pagingParam, cancellationToken)); }
public async Task <PagingResultEnvelope <PostModel> > Search(string searchText, PagingParam pagingParam, CancellationToken cancellationToken = default) { var query = GetAll(); return(await PagingResultEnvelope <PostModel> .ToPagingEnvelope(ToDomainModel(query), pagingParam, cancellationToken)); }