public IHttpActionResult PostLegResultBodyModel(Guid id, [FromBody] LegResultBodyModel legResultBodyModel) { var legResultModel = new LegResultModel(); var raceLegModel = db.RaceLegs .Include(l => l.LegResults.Select(lr => lr.Yacht)) .Single(l => l.Id == id); var YachtList = raceLegModel.LegResults.Select(lr => lr.Yacht); var YachtIdList = YachtList.Select(y => y.Id); if (YachtIdList.Contains(legResultBodyModel.YachtId)) { return(Conflict()); } legResultModel.Id = Guid.NewGuid(); legResultModel.Leg = db.RaceLegs.Find(id); legResultModel.Yacht = db.Yachts.Find(legResultBodyModel.YachtId); legResultModel.StartTime = legResultBodyModel.StartTime; legResultModel.EndTime = legResultBodyModel.EndTime; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.LegResults.Add(legResultModel); try { db.SaveChanges(); } catch (DbUpdateException) { if (RaceLegModelExists(legResultModel.Id)) { return(Conflict()); } else { throw; } } return(CreatedAtRoute("Results", new { id = legResultModel.Id }, legResultModel)); }
public IHttpActionResult DeleteLegResultModel(Guid id, Guid resultId) { RaceLegModel raceLegModel = db.RaceLegs .Include(rl => rl.LegResults) .Single(rl => rl.Id == id); if (raceLegModel == null) { return(NotFound()); } LegResultModel legResultModel = db.LegResults .Include(lr => lr.Yacht) .Single(lr => lr.Id == resultId); raceLegModel.LegResults.Remove(legResultModel); db.SaveChanges(); return(Ok(legResultModel)); }