Beispiel #1
0
        public async Task <IActionResult> Register(RegisterModel model)
        {
            var title = _localizer["Registration"];

            SetTitle(title);
            await FillIdentityOptionsViewBag();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var query = new GetInvitationByKeyQuery {
                invitationKey = model.Key
            };
            var resultKey = await _mediator.Send(query);

            if (resultKey.Used)
            {
                return(View(model));
            }

            var registerCommand = new RegisterCommand
            {
                User     = model.User,
                Password = model.Password
            };
            var UpdateInvitationCommand = new UpdateInvitationCommand
            {
                id = resultKey.Id,
            };
            var result = await _mediator.Send(registerCommand);

            if (result.Suceeded)
            {
                var confirm = await _mediator.Send(UpdateInvitationCommand);

                return(RedirectToAction(nameof(HomeController.Index), "Home"));
            }
            else
            {
                foreach (var msg in result.ErrorMessages)
                {
                    ModelState.AddModelError("", msg);
                }

                return(View(model));
            }
        }
Beispiel #2
0
        public async Task <ActionResult> Register(UserDTO user, string password, string invitationKey)
        {
            var result = new ActionResult();
            var query  = new GetInvitationByKeyQuery {
                invitationKey = invitationKey
            };
            var resultKey = await _mediator.Send(query);

            if (resultKey == null || resultKey.Used)
            {
                result.Suceeded = false;
                result.ErrorMessages.Add("Invalid invitation key!");
                return(result);
            }

            var registerCommand = new RegisterCommand
            {
                User     = user,
                Password = password
            };
            var UpdateInvitationCommand = new UpdateInvitationCommand
            {
                id = resultKey.Id,
            };
            var RegisterResult = await _mediator.Send(registerCommand);

            if (RegisterResult.Suceeded)
            {
                var confirm = await _mediator.Send(UpdateInvitationCommand);

                result.Suceeded = true;
            }
            else
            {
                foreach (var msg in result.ErrorMessages)
                {
                    result.ErrorMessages.Add(msg);
                }
            }
            return(result);
        }
Beispiel #3
0
        public async Task <IActionResult> Register(string Key)
        {
            var title = _localizer["Registration"];

            SetTitle(title);

            await FillIdentityOptionsViewBag();

            var query = new GetInvitationByKeyQuery {
                invitationKey = Key
            };
            var result = await _mediator.Send(query);

            if (result != null && !(result.Used))
            {
                var model = new RegisterModel();
                model.Key = Key;
                return(View(model));
            }
            return(RedirectToAction(nameof(Login)));
        }