public async Task <IActionResult> PutGuestDetail([FromRoute] int id, [FromBody] GuestDetail guestDetail) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != guestDetail.GuestId) { return(BadRequest()); } _context.Entry(guestDetail).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!GuestDetailExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> PostGuestDetail([FromBody] GuestDetail guestDetail) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.GuestDetails.Add(guestDetail); await _context.SaveChangesAsync(); return(CreatedAtAction("GetGuestDetail", new { id = guestDetail.GuestId }, guestDetail)); }
public string DeleteGuest(GuestDetail req) { try { if (Request.IsAuthenticated) { using (WeddingEntities context = new WeddingEntities()) { //check if the guest detail record is the only record related to the header var guestHdr = context.GuestHeaders.Where(q => q.GuestHeaderId == req.GuestHeaderId).ToList(); var guestDetails = guestHdr[0].GuestDetails.Where(q => q.Active == true).ToList(); if (guestDetails.Count > 0) { //only one guest attached to hdr, set hdr to inactive if (guestDetails.Count == 1) { guestHdr[0].Active = false; } else { int count = 0; foreach (var guest in guestDetails) { if (guest.Active && guest.GuestDetailId != req.GuestDetailId) { count += 1; } } //guestHdr[0].GuestDetails = guestDetails; if (count == 0) { guestHdr[0].Active = false; guestHdr[0].UpdatedBy = createdBy; guestHdr[0].UpdatedOn = DateTime.Now.ToUniversalTime(); context.GuestHeaders.AddOrUpdate(guestHdr[0]); } } } req.Active = false; req.UpdatedBy = createdBy; req.UpdatedOn = DateTime.Now.ToUniversalTime(); context.GuestDetails.AddOrUpdate(req); context.SaveChanges(); return("true"); } } else { throw new Exception(); } } catch (Exception ex) { throw ex; } }