// PUT: api/Penghuni/5 public IHttpActionResult Put(int id, [FromBody] penghuni value) { using (var db = new OcphDbContext()) { var trans = db.BeginTransaction(); try { var updated = db.Penghuni.Update(x => new { x.Status, x.IdKamar, x.Keterangan, x.NomorKartuKeluarga, x.TanggalHabisKontrak, x.TanggalMasuk }, value, x => x.IdPenghuni == id); if (updated) { foreach (var item in value.Anggotas) { if (item.IdAnggota <= 0) { item.IdPenghuni = value.IdPenghuni; item.IdAnggota = db.Anggota.InsertAndGetLastID(item); if (item.IdAnggota <= 0) { throw new SystemException("Data Tidak Tersimpan"); } } else { if (!db.Anggota.Update(x => new { x.Keterangan, x.Nama, x.NomorIdentitas, x.Pekerjaan, x.Status, x.TanggalLahir, x.TempatLahir }, item, x => x.IdAnggota == item.IdAnggota)) { throw new SystemException("Data Tidak Tersimpan"); } } } var dataindb = db.Anggota.Where(x => x.IdPenghuni == value.IdPenghuni); foreach (var data in dataindb) { if (value.Anggotas.Where(x => x.IdAnggota == data.IdAnggota).FirstOrDefault() == null) { db.Anggota.Delete(x => x.IdAnggota == data.IdAnggota); } } trans.Commit(); return(Ok(value)); } throw new SystemException("Data Tidak Tersimpan"); } catch (Exception ex) { trans.Rollback(); return(BadRequest(ex.Message)); } } }
// POST: api/Penghuni public IHttpActionResult Post([FromBody] penghuni value) { using (var db = new OcphDbContext()) { var trans = db.BeginTransaction(); try { value.IdPenghuni = db.Penghuni.InsertAndGetLastID(value); if (value.IdPenghuni > 0) { foreach (var item in value.Anggotas) { item.IdPenghuni = value.IdPenghuni; item.IdAnggota = db.Anggota.InsertAndGetLastID(item); if (item.IdAnggota <= 0) { throw new SystemException("Data Tidak Tersimpan"); } } if (db.Kamar.Update(x => new { x.Status }, new kamar { Status = "Tidak Kosong" }, x => x.IdKamar == value.IdKamar)) { trans.Commit(); return(Ok(value)); } } throw new SystemException("Data Tidak Tersimpan"); } catch (Exception ex) { trans.Rollback(); return(BadRequest(ex.Message)); } } }