protected override void ExecuteRequest(HttpContext context) { (bool isOk, User user) = CheckClaimsForUser(Request, context, _userRepository); if (!isOk || user == null) { return; } FoodEntry foodEntryData = _foodEntryRepository.Insert(new FoodEntry() { UserId = user.Id, OpenFoodFactsDataId = Request.OFFDataId, Datetime = DateTime.Now }).GetAwaiter().GetResult(); if (foodEntryData != null) { var offData = _offDataRepository.Get(foodEntryData.OpenFoodFactsDataId).GetAwaiter().GetResult().FirstOrDefault(); // update all quests based on datas var quests = _questRepository.Get(user, _questTypeRepository, InProgress).GetAwaiter().GetResult(); foreach (var quest in quests) { var questHandler = QuestHandlers.Create(quest, user, _questTypeRepository); questHandler.Update("Calories", (foodEntryData.Servings * offData.EnergyServing).ToString()); _questRepository.Update(quest).GetAwaiter().GetResult(); } string foodEntryJson = JsonSerializer.Serialize(foodEntryData); context.Response.StatusCode = StatusCodes.Status200OK; context.Response.WriteAsync(foodEntryJson).GetAwaiter().GetResult(); } else { context.Response.StatusCode = StatusCodes.Status204NoContent; } }
public async Task <OpenFoodFactsData> GetOFFDataByOFFCategory(OpenFoodFactsDatasCategory dataCategory) { var openFoodFactsDatas = await _oFFDataRepository.Get(dataCategory.DataId); return(openFoodFactsDatas.FirstOrDefault()); }