Ejemplo n.º 1
0
        public async Task <IActionResult> GetArticles()
        {
            FirebaseUser             user  = HttpContext.GetFirebaseUser();
            GetCustomerArticlesQuery model = new GetCustomerArticlesQuery()
            {
                firebaseId = user.UserId
            };
            ResultWrapper <GetCustomerArticlesOutput> result = new ResultWrapper <GetCustomerArticlesOutput>();

            result = await _mediator.Send(model);

            return(Ok(result));
        }
Ejemplo n.º 2
0
        public async Task <ResultWrapper <GetCustomerArticlesOutput> > Handle(GetCustomerArticlesQuery request, CancellationToken cancellationToken)
        {
            ResultWrapper <GetCustomerArticlesOutput> result = new ResultWrapper <GetCustomerArticlesOutput>();

            List <int> favoriteSports = await _dbContext.TUserSport
                                        .Include(x => x.TUser)
                                        .Where(x => x.TUser.FireBaseId == request.firebaseId)
                                        .Select(x => x.TSportId)
                                        .ToListAsync();

            var tDataList = await _dbContext.TArticle
                            .Include(x => x.TArticleSports)
                            .ThenInclude(x => x.TSport)
                            .Where(x => x.Enabled)
                            .Where(x =>
                                   !favoriteSports.Any() || x.TArticleSports.Any(z => favoriteSports.Contains(z.TSportId))
                                   )
                            .OrderByDescending(x => x.Id)
                            .Take(10)
                            .ToListAsync();

            var list = tDataList.Select(x => new GetCustomerArticlesOutput.ArticleItem()
            {
                Id      = x.Id,
                Title   = x.Title,
                Summary = x.Summary,
                Image   = x.Image.JoinWithCDNAddress()
            })
                       .ToList();

            result.Status = true;
            result.Result = new GetCustomerArticlesOutput()
            {
                list = list
            };

            return(result);
        }