private async Task Register(IYield yield, RegisterRequestParameters parameters)
        {
            var registrationPeerLogic = ServiceContainer.RegistrationService.GetPeerLogic <IRegistrationPeerLogicAPI>().AssertNotNull();
            var responseParameters    = await registrationPeerLogic.Register(yield, parameters);

            switch (responseParameters.Status)
            {
            case RegisterStatus.Succeed:
            {
                var noticeWindow = UserInterfaceContainer.Instance.Get <NoticeWindow>().AssertNotNull();
                noticeWindow.Message.text          = "Registration is completed successfully.";
                noticeWindow.OkButtonClickedAction = OnBackButtonClicked;
                noticeWindow.OkButton.interactable = true;
                break;
            }

            case RegisterStatus.EmailExists:
            {
                var noticeWindow = UserInterfaceContainer.Instance.Get <NoticeWindow>().AssertNotNull();
                noticeWindow.Message.text          = "Email address already exists.";
                noticeWindow.OkButton.interactable = true;
                break;
            }

            default:
            {
                var noticeWindow = UserInterfaceContainer.Instance.Get <NoticeWindow>().AssertNotNull();
                noticeWindow.Message.text          = "Something went wrong, please try again.";
                noticeWindow.OkButton.interactable = true;
                break;
            }
            }

            if (responseParameters.Status == RegisterStatus.Succeed)
            {
                OnRegistrationSucceed();
            }
        }
        private void Register(string email, string password, string firstName, string lastName)
        {
            var noticeWindow = Utils.ShowNotice("Registration is in a process.. Please wait.", okButtonClicked: () =>
            {
                registrationWindow.Show();
            });

            noticeWindow.OkButton.interactable = false;

            Action registerAction = () =>
            {
                var parameters = new RegisterRequestParameters(email, password.CreateSha512(), firstName, lastName);
                coroutinesExecutor.StartTask((yield) => Register(yield, parameters), exception => ServiceConnectionProviderUtils.OnOperationFailed());
            };

            if (RegistrationConnectionProvider.Instance.IsConnected())
            {
                registerAction.Invoke();
            }
            else
            {
                RegistrationConnectionProvider.Instance.Connect(onConnected: registerAction);
            }
        }
Exemple #3
0
 public async Task <RegisterResponseParameters> Register(IYield yield, RegisterRequestParameters parameters)
 {
     return(await ServerPeerHandler.SendOperation <RegisterRequestParameters, RegisterResponseParameters>
                (yield, (byte)RegistrationOperations.Register, parameters, MessageSendOptions.DefaultReliable()));
 }