public async Task <CreatePasswordResponse> Handle(CreatePasswordRequest request, CancellationToken cancellationToken) { var invitation = await _loginContext.Invitations.SingleOrDefaultAsync(i => i.Id == request.InvitationId, cancellationToken : cancellationToken); var newUserResponse = await _userService.CreateUser( new LoginUser() { UserName = invitation.Email, Email = invitation.Email, GivenName = invitation.GivenName, FamilyName = invitation.FamilyName }, request.Password); if (newUserResponse.Result != IdentityResult.Success) { return(new CreatePasswordResponse() { PasswordValid = false }); } await _userService.AddUserClaim(newUserResponse.User, JwtClaimTypes.GivenName, invitation.GivenName); await _userService.AddUserClaim(newUserResponse.User, JwtClaimTypes.FamilyName, invitation.FamilyName); invitation.IsUserCreated = true; _loginContext.UserLogs.Add(new UserLog() { Id = GuidGenerator.NewGuid(), Action = "Create password", Email = invitation.Email, Result = "User account created", DateTime = SystemTime.UtcNow() }); await _loginContext.SaveChangesAsync(cancellationToken); await _callbackService.Callback(invitation, newUserResponse.User.Id); return(new CreatePasswordResponse() { PasswordValid = true }); }
public void DoSomething(int value) { ICallbackService callbackService = OperationContext.Current.GetCallbackChannel <ICallbackService>(); callbackService.Callback(value * 2); }