public async Task <IActionResult> EditGuest(int id) { var participation = await _dbContext.Participations.FindAsync(id); var model = new EditGuestViewModel { Id = participation.Id, FirstName = participation.FirstName, LastName = participation.LastName, IsInvitedToLunch = participation.IsInvitedToLunch, CanBringChildren = participation.CanBringChildren, CanBringPlusOne = participation.CanBringPlusOne }; return(PartialView("EditGuest", model)); }
public async Task <IActionResult> UpdateGuest(int?id, EditGuestViewModel model) { if (ModelState.IsValid) { Participation?plusOne = null; if (model.PlusOneId.HasValue) { plusOne = await _dbContext.Participations.FindAsync(model.PlusOneId); } var participation = new Participation(model.FirstName !, model.LastName !) { IsInvitedToLunch = model.IsInvitedToLunch, CanBringChildren = model.CanBringChildren, CanBringPlusOne = model.CanBringPlusOne, PlusOne = plusOne }; if (!id.HasValue) { var user = await _dbContext.Users.Where(u => u.FirstName.ToUpper() == participation.FirstName.ToUpper() && u.LastName.ToUpper() == participation.LastName.ToUpper()).SingleOrDefaultAsync(); if (user != null) { participation.UserId = user.Id; } _dbContext.Participations.Add(participation); } else { participation.Id = id.Value; _dbContext.Participations.Update(participation); } if (plusOne != null) { plusOne.PlusOne = participation; _dbContext.Participations.Update(plusOne); } await _dbContext.SaveChangesAsync(); return(RedirectToAction("Guests")); } return(View("EditGuest", model)); }
public ActionResult Edit(int id) { var context = new CheckInDbContext(); var invitation = context.Invitations.Include("Address").Where(s => s.Id == id).FirstOrDefault <Invitation>(); var viewModel = new EditGuestViewModel() { Id = invitation.Id, GroupName = invitation.GroupName, Address = invitation.Address.AddressName, City = invitation.Address.CityName, StateId = invitation.Address.StateId, ZipCode = invitation.Address.ZipCode, Guest = invitation.Guests }; ViewBag.States = context.States.ToList(); return(View(viewModel)); }
public ActionResult Edit(EditGuestViewModel viewModel) { var contex = new CheckInDbContext(); if (!ModelState.IsValid) { ViewBag.States = contex.States.ToList(); return(View(viewModel)); } // To Do I have to using (var context = new CheckInDbContext()) { var invitation = context.Invitations.Where(s => s.Id == viewModel.Id) .FirstOrDefault(); var temp = invitation.Guests.Count - 1 < viewModel.Guest.Count; if (invitation.Guests.Count - 1 < viewModel.Guest.Count) { invitation.Guests.AddRange(viewModel.Guest.Skip(Convert.ToInt32(invitation.Guests.Count))); } invitation.GroupName = viewModel.GroupName; invitation.Address.AddressName = viewModel.Address; invitation.Address.CityName = viewModel.City; invitation.Address.StateId = viewModel.StateId; for (int i = 0; i < viewModel.Guest.Count; i++) { invitation.Guests[i].FirstName = viewModel.Guest[i].FirstName; invitation.Guests[i].LastName = viewModel.Guest[i].LastName; invitation.Guests[i].IsActive = viewModel.Guest[i].IsActive; invitation.Guests[i].IsExtraGuest = viewModel.Guest[i].IsExtraGuest; } context.SaveChanges(); } return(RedirectToAction("Index")); }