public async Task<IHttpActionResult> PutRace(int id, UpdateRaceBindingModel updateRaceModel)
        {
            if (!ModelState.IsValid)
                return BadRequest(ModelState);

            var race = await TheRaceStore.FindByIdAsync(id);

            if (race == null)
                return NotFound();

            UpdateEntity(ref race, updateRaceModel);

            var result = await TheRaceStore.UpdateAsync(race);

            return !result.Succeeded
                ? GetErrorResult(result)
                : Ok();
        }
 protected void UpdateEntity(ref Race race, UpdateRaceBindingModel updateRaceModel)
 {
     if (updateRaceModel.Name != null)
         race.Name = updateRaceModel.Name;
     if (updateRaceModel.Description != null)
         race.Description = updateRaceModel.Description;
     if (updateRaceModel.Experience.HasValue)
         race.Experience = updateRaceModel.Experience.Value;
 }