// DELETE: odata/IncubatorMeasures(5) public IHttpActionResult Delete([FromODataUri] int key) { IncubatorMeasure incubatorMeasure = db.IncubatorMeasures.Find(key); if (incubatorMeasure == null) { return(NotFound()); } db.IncubatorMeasures.Remove(incubatorMeasure); db.SaveChanges(); return(StatusCode(HttpStatusCode.NoContent)); }
// POST: odata/IncubatorMeasures public IHttpActionResult Post(IncubatorMeasure incubatorMeasure) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } incubatorMeasure.MeasuredOn = DateTime.Now; List <IncubatorPeriod> periods = new List <IncubatorPeriod>(); var incubator = db.Incubators.Where(i => i.Id == incubatorMeasure.IncubatorId).FirstOrDefault(); if (incubator == null) { return(NotFound()); } periods = incubator.Periods.OrderBy(p => p.Order).ToList(); if (periods.Count == 0) { return(BadRequest("No periods found")); } var date = incubator.StartedOn; if (!date.HasValue) { return(BadRequest("No start date on incubator")); } var index = 0; while (date < DateTime.Now && index < periods.Count) { date = date.Value.AddMinutes(periods[index].Timespan); index++; } var incubatorPeriodId = periods[index].Id; incubatorMeasure.IncubatorPeriodId = incubatorPeriodId; db.IncubatorMeasures.Add(incubatorMeasure); db.SaveChanges(); return(Created(incubatorMeasure)); }
// PUT: odata/IncubatorMeasures(5) public IHttpActionResult Put([FromODataUri] int key, Delta <IncubatorMeasure> patch) { Validate(patch.GetEntity()); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } IncubatorMeasure incubatorMeasure = db.IncubatorMeasures.Find(key); if (incubatorMeasure == null) { return(NotFound()); } patch.Put(incubatorMeasure); try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!IncubatorMeasureExists(key)) { return(NotFound()); } else { throw; } } return(Updated(incubatorMeasure)); }