예제 #1
0
        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));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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));
        }
예제 #4
0
        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"));
        }