public async Task <IHttpActionResult> GenerateGuestCode([FromBody] GuestCodeRequest codeRequest) { var guestCode = new GuestCode(); guestCode.GuestCode1 = GuestCodeGenerator.RandomString(6); guestCode.UseLimit = codeRequest.UseCount ?? 1; if (codeRequest.GuestId != null) { Guest guest = await db.Guests.FindAsync(codeRequest.GuestId); if (guest == null) { return(NotFound()); } guestCode.GuestId = guest.GuestId; guestCode.UseLimit = codeRequest.GuestId ?? guest.MaxAllowed; } db.GuestCodes.Add(guestCode); await db.SaveChangesAsync(); db.Entry(guestCode).State = EntityState.Detached; return(Ok(guestCode)); }
public async Task <IHttpActionResult> GenerateAllGuestCodes() { IEnumerable <Guest> guests = db.Guests.AsNoTracking().ToList(); foreach (Guest guest in guests) { if (!db.GuestCodes.Any(gc => gc.GuestId == guest.GuestId)) { var guestCode = new GuestCode(); guestCode.GuestCode1 = GuestCodeGenerator.RandomString(6); guestCode.GuestId = guest.GuestId; guestCode.UseLimit = guest.MaxAllowed; guestCode.GuestId = guest.GuestId; db.GuestCodes.Add(guestCode); await db.SaveChangesAsync(); } } return(Ok()); }