public Task <ResultWrapper <GetSuggestedFoodsOutput> > Handle(GetSuggestedFoodsQuery request, CancellationToken cancellationToken)
        {
            ResultWrapper <GetSuggestedFoodsOutput> result = new ResultWrapper <GetSuggestedFoodsOutput>();


            TUser tUser = _dbContext.TUser.FirstOrDefault(x => x.FireBaseId == request.firebaseId);

            if (tUser == null)
            {
                result.Status  = false;
                result.Message = "cannot find customer!";
                return(Task.FromResult(result));
            }

            var tDataList = _dbContext.SPFindBestFoodsForCustomer(tUser.Id, request.RequiredCalorie);

            var list = tDataList.Select(tData => new GetSuggestedFoodsOutput.FoodItem()
            {
                Id                        = tData.Id,
                Title                     = tData.Title,
                Image                     = tData.Image.JoinWithCDNAddress(),
                Tags                      = (tData.Tags ?? string.Empty).Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList(),
                Price                     = tData.Price,
                MatchRate                 = tData.MatchRate,
                Restaurant                = tData.Restaurant,
                Carb                      = tData.Carb,
                Fat                       = tData.Fat,
                Protein                   = tData.Protein,
                Calorie                   = tData.Calorie,
                AllergyMatched            = tData.AllergyMatched,
                DietMatched               = tData.DietMatched,
                DeficiencyMatched         = tData.DeficiencyMatched,
                NutritionConditionMatched = tData.NutritionConditionMatched
            })
                       .ToList();

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

            return(Task.FromResult(result));
        }
示例#2
0
        public async Task <IActionResult> GetFoods()
        {
            FirebaseUser    user         = HttpContext.GetFirebaseUser();
            GetProfileQuery profileModel = new GetProfileQuery()
            {
                firebaseId = user.UserId
            };
            ResultWrapper <GetProfileOutput> profile = await _mediator.Send(profileModel);

            int requiredCalorie          = Decimal.ToInt32(profile.Result.RequireCaloriesForLaunch);
            GetSuggestedFoodsQuery model = new GetSuggestedFoodsQuery()
            {
                firebaseId      = user.UserId,
                RequiredCalorie = requiredCalorie
            };
            ResultWrapper <GetSuggestedFoodsOutput> result = new ResultWrapper <GetSuggestedFoodsOutput>();

            result = await _mediator.Send(model);

            return(Ok(result));
        }