Пример #1
0
        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));
        }
Пример #2
0
        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));
        }