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)); }
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)); }