public async Task <IHttpActionResult> DeleteBedLocationJournal(long id) { //BedLocationJournal bedLocationJournal = await db.BedLocationJournals.FindAsync(id); BedLocationJournal bedLocationJournal = await db.BedLocationJournals.Include(r => r.FormerBedLocations).FirstOrDefaultAsync(p => p.BedLocationJournalId == id); if (bedLocationJournal == null) { return(NotFound()); } List <FormerBedLocation> fblist = new List <FormerBedLocation>(); foreach (var fbl in bedLocationJournal.FormerBedLocations.ToList()) { //db.FormerBedLocations.Remove(fbl); fblist.Add(fbl); db.Entry(fbl).State = EntityState.Deleted; //bedLocationJournal.FormerBedLocations.Remove(fbl); } //db.BedLocationJournals.Remove(bedLocationJournal); db.Entry(bedLocationJournal).State = EntityState.Deleted; await db.SaveChangesAsync(); bedLocationJournal.FormerBedLocations = fblist; return(Ok(bedLocationJournal)); }
public async Task <IHttpActionResult> GetBedLocationJournal(long id) { //BedLocationJournal bedLocationJournal = await db.BedLocationJournals.FindAsync(id); BedLocationJournal bedLocationJournal = await db.BedLocationJournals.Include(p => p.FormerBedLocations).FirstOrDefaultAsync(p => p.BedLocationJournalId == id); if (bedLocationJournal == null) { return(NotFound()); } return(Ok(bedLocationJournal)); }
public async Task <IHttpActionResult> PostBedLocationJournal(BedLocationJournal bedLocationJournal) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.BedLocationJournals.Add(bedLocationJournal); await db.SaveChangesAsync(); return(CreatedAtRoute("DefaultApi", new { id = bedLocationJournal.BedLocationJournalId }, bedLocationJournal)); }
public async Task <IHttpActionResult> PutBedLocationJournal(long id, BedLocationJournal bedLocationJournal) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != bedLocationJournal.BedLocationJournalId) { return(BadRequest()); } /* * http://stackoverflow.com/questions/25078798/new-subentity-will-not-save-when-parent-entity-is-saved * */ foreach (var f in bedLocationJournal.FormerBedLocations) { db.Entry(f).State = f.FormerBedLocationId == 0 ? EntityState.Added : EntityState.Modified; } db.Entry(bedLocationJournal).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BedLocationJournalExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }