Пример #1
0
        public async Task <IActionResult> Register(RegisterModel model, Uri returnUrl)
        {
            if (ModelState.IsValid)
            {
                var user = new MariageUser(model.FirstName !, model.LastName !)
                {
                    Email    = model.Email,
                    UserName = model.Email
                };
                var result = await _signInManager.UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    var participation = await _dbContext.Participations.SingleOrDefaultAsync(p => p.FirstName.ToUpper() == model.FirstName !.ToUpper() && p.LastName.ToUpper() == model.LastName !.ToUpper());

                    if (participation != null)
                    {
                        user.Participation = participation;
                        await _dbContext.SaveChangesAsync();
                    }
                    await _signInManager.SignInAsync(user, isPersistent : false);

                    return(LocalRedirect(returnUrl.ToString()));
                }
                else
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("Password", error.Description);
                    }
                }
            }
            ViewData["ReturnUrl"] = returnUrl;
            return(View(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 async Task <IActionResult> Confirm(InvitationViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await _dbContext.Users.Include(u => u.Participation).ThenInclude(p => p !.PlusOne).Include(u => u.Participation).ThenInclude(p => p !.PlusOne).SingleOrDefaultAsync(u => u.UserName == User.Identity.Name);

                var participation = user.Participation;
                if (participation != null)
                {
                    participation.CompletedForm    = true;
                    participation.WillAttendDinner = model.WillAttendDinner;
                    participation.WillAttendLunch  = participation.IsInvitedToLunch ? model.WillAttendLunch : false;
                    participation.ChildrenCount    = participation.CanBringChildren ? model.Children : 0;
                    if ((participation.CanBringPlusOne || participation.PlusOne != null) && model.HasPlusOne)
                    {
                        Participation?plusOne = null;
                        if (participation.PlusOne != null)
                        {
                            plusOne = participation.PlusOne;
                        }
                        else if (participation.PlusOne == null && !string.IsNullOrEmpty(model.PlusOneFirstName) && !string.IsNullOrEmpty(model.PlusOneLastName))
                        {
                            plusOne = new Participation(model.PlusOneFirstName, model.PlusOneLastName);
                            plusOne.IsInvitedToLunch = participation.IsInvitedToLunch;
                            plusOne.PlusOne          = participation;
                            participation.PlusOne    = plusOne;
                        }

                        if (plusOne != null)
                        {
                            plusOne.CompletedForm    = true;
                            plusOne.WillAttendDinner = model.WillAttendDinner;
                            plusOne.WillAttendLunch  = plusOne.IsInvitedToLunch ? model.WillAttendLunch : false;
                        }

                        _dbContext.Update(participation);
                        await _dbContext.SaveChangesAsync();
                    }
                }
                return(RedirectToAction("Invite"));
            }
            return(View("Invite", model));
        }