Exemple #1
0
        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));
        }
Exemple #4
0
        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));
        }
Exemple #5
0
        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));
        }
Exemple #6
0
        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));
        }
Exemple #7
0
        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));
        }
Exemple #8
0
        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));
        }
Exemple #11
0
        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));
        }