public async Task <IActionResult> Update(int id, ScheduledMealModel model) { try { var scheduledMeal = await _scheduledMealRepository.GetByIdAsync(id); if (scheduledMeal == null) { return(NotFound()); } // TODO: Validate meal exists scheduledMeal.MealDate = DateTime.Parse(model.MealDate); scheduledMeal.MealTime = (MealTime)model.MealTimeId; scheduledMeal.MealId = model.MealId; await _scheduledMealRepository.UpdateAsync(scheduledMeal); _logger.LogInformation("Updated scheduled meal {id}", id); return(Ok(model)); } catch (Exception ex) { _logger.LogError(ex, "Error updating scheduled meal {id}", id); return(StatusCode(500)); } }
public async Task <ActionResult <MealModel> > Create(ScheduledMealModel model) { try { // TODO: Validate meal exists var scheduledMeal = new ScheduledMeal { MealDate = DateTime.Parse(model.MealDate), MealTime = (MealTime)model.MealTimeId, MealId = model.MealId }; await _scheduledMealRepository.CreateAsync(scheduledMeal); _logger.LogInformation("Created scheduled meal"); // YUCK! - Get the record back from the DB so it's populated with the nav prop var newScheduledMeal = await _scheduledMealRepository.Table.Include(x => x.Meal).SingleOrDefaultAsync(x => x.Id == scheduledMeal.Id); model = _mapper.Map <ScheduledMealModel>(newScheduledMeal); return(CreatedAtAction("GetById", new { id = model.Id }, model)); } catch (Exception ex) { _logger.LogError(ex, "Error creating scheduled meal"); return(StatusCode(500)); } }