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)); } }
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); }