예제 #1
0
        public IHttpActionResult PostRaceLegModel(RaceLegModel raceLegModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            raceLegModel.Id = Guid.NewGuid();
            db.RaceLegs.Add(raceLegModel);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (RaceLegModelExists(raceLegModel.Id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = raceLegModel.Id }, raceLegModel));
        }
예제 #2
0
        public IHttpActionResult GetRaceLegModelResults(Guid id)
        {
            RaceLegModel raceLegModel = db.RaceLegs
                                        .Include(l => l.LegResults.Select(lr => lr.Yacht))
                                        .Single(l => l.Id == id);

            if (raceLegModel == null)
            {
                return(NotFound());
            }

            return(Ok(raceLegModel.LegResults));
        }
예제 #3
0
        public IHttpActionResult DeleteRaceLegModel(Guid id)
        {
            RaceLegModel raceLegModel = db.RaceLegs.Find(id);

            if (raceLegModel == null)
            {
                return(NotFound());
            }

            db.RaceLegs.Remove(raceLegModel);
            db.SaveChanges();

            return(Ok(raceLegModel));
        }
예제 #4
0
        // PATCH: api/RaceLeg/5
        public IHttpActionResult PatchRaceLegModel(Guid id, RaceLegModel raceLegModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            raceLegModel.Id = id;
            db.RaceLegs.Attach(raceLegModel);
            var raceLeg = db.RaceLegs
                          .Single(d => d.Id == raceLegModel.Id);

            DbEntityEntry entry = db.Entry(raceLegModel);

            foreach (var propertyName in entry.OriginalValues.PropertyNames)
            {
                if (propertyName != "LegResults" && propertyName != "Id")
                {
                    var original = entry.GetDatabaseValues().GetValue <object>(propertyName);
                    var current  = entry.CurrentValues.GetValue <object>(propertyName);



                    if (!object.Equals(original, current))
                    {
                        entry.Property(propertyName).IsModified = true;
                    }
                }
            }

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!RaceLegModelExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
예제 #5
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));
        }