public async Task <IActionResult> Post(int aquariumId, [FromBody] WaterChangeModel model)
        {
            try
            {
                var waterChange = _mapper.Map <WaterChange>(model);

                // User URL values over model values
                waterChange.UserId     = UserId;
                waterChange.AquariumId = aquariumId;

                if (waterChange == null)
                {
                    return(UnprocessableEntity());
                }

                await _repository.Add(waterChange);

                AddETag(waterChange.RowVersion);

                var url = Url.Link("WaterChangeGet", new { UserId, aquariumId, waterChangeId = waterChange.Id });
                return(Created(url, _mapper.Map <WaterChangeModel>(waterChange)));
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "An error occured whilst trying to create waterChange.");
            }
            return(BadRequest("Could not create waterChange"));
        }
        public async Task <IActionResult> Put(int aquariumId, int waterChangeId, [FromBody] WaterChangeModel model)
        {
            try
            {
                var waterChange = await _repository.Get(waterChangeId);

                if (waterChange == null)
                {
                    return(NotFound());
                }
                if (waterChange.AquariumId != aquariumId)
                {
                    return(BadRequest("Aquarium and WaterChange don't match"));
                }

                _mapper.Map(model, waterChange);
                await _repository.Update(waterChange);

                AddETag(waterChange.RowVersion);

                return(Ok(_mapper.Map <WaterChangeModel>(waterChange)));
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "An error occured whilst trying to update WaterChange.");
            }
            return(BadRequest("Could not update WaterChange"));
        }
 public WaterChangeModelTests()
 {
     item = new WaterChangeModel();
 }