public async Task <IActionResult> AvailableItems([FromQuery] long mealId) { try { List <Item> items = null; if (mealId == 0) { items = repositoryFactory.ItemRepository().All(); } else { var request = new HttpRequestMessage(HttpMethod.Get, $"meals/{mealId}"); var client = clientFactory.CreateClient("gfmm"); var clientResponse = await client.SendAsync(request); if (clientResponse.StatusCode == HttpStatusCode.NotFound) { return(NotFound(null)); } var responsePayload = await clientResponse.Content.ReadAsStreamAsync();; JsonSerializerOptions deserializationOptions = new JsonSerializerOptions(); deserializationOptions.PropertyNameCaseInsensitive = true; GetDetailedMealInformationModelView meal = await JsonSerializer.DeserializeAsync <GetDetailedMealInformationModelView>(responsePayload, deserializationOptions); MealID mealIdVO = MealID.ValueOf(meal.Designation); items = repositoryFactory.ItemRepository().All().Where((item) => item.MealId.Equals(mealIdVO)).ToList(); } if (items.Count == 0) { return(NotFound(null)); } GetAvailableItemsModelView modelview = new GetAvailableItemsModelView(items); return(Ok(modelview)); } catch (Exception databaseException) { // TODO: Log exception return(StatusCode(500, null)); } }
public IActionResult AvailableItems() { try { List <Item> items = factory.ItemRepository().All(); if (items.Count == 0) { return(NotFound(null)); } GetAvailableItemsModelView modelview = new GetAvailableItemsModelView(items); return(Ok(modelview)); } catch (Exception databaseException) { // TODO: Log exception return(StatusCode(500, null)); } }