// 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));
                }
            }
        }