private void OpenSession(object theradStarter)
        {
            var _theradStarter = (TheradStarter <OpenSessionDto, SessionResultModel>)theradStarter;

            try
            {
                var openSessionDto = _theradStarter.DATA;
                using (var _webRequest = new RedWebRequest())
                {
                    var _loginresult = _webRequest.PostContentJson <DomainNet35.Dto.request.LoginResultModel>($"{_serverSetting.Api}{_serverSetting.LogingUrl}", openSessionDto.ToJsonString());
                    if (_loginresult.result == DomainNet35.Dto.request.GeneralResultType.OK)
                    {
                        var user = _redSessionManager.OpenRedSession(_loginresult.UserInfo.Id, _loginresult.UserInfo.UserName, _loginresult.token, _loginresult.UserInfo.RealBlanced, _loginresult.expiredDate);
                        _theradStarter.Complate.Invoke(new SessionResultModel(user));
                        return;
                    }
                    if (_theradStarter.Complate != null)
                    {
                        _theradStarter.Complate.Invoke(new SessionResultModel(_loginresult.message));
                    }
                }
            }
            catch (Exception ex)
            {
                if (_theradStarter.Complate != null)
                {
                    _theradStarter.Complate.Invoke(new SessionResultModel(ex.Message));
                }
                _theradStarter.Error.Invoke(new ThreadException(ex));
            }
        }
        private void RegisterUser(object theradStarter)
        {
            var _theradStarter = (TheradStarter <RegisterUserDto, RegisterUserResultModel>)theradStarter;

            try
            {
                var registerUserDto = _theradStarter.DATA;


                using (var _webRequest = new RedWebRequest())
                {
                    var result = _webRequest.PostContentJson <DomainNet35.Dto.request.GeneralResultModel>($"{_serverSetting.Api}{_serverSetting.RegisterUrl}", registerUserDto.ToJsonString());
                    if (result.ResultType == DomainNet35.Dto.request.GeneralResultType.OK)
                    {
                        if (_theradStarter.Complate != null)
                        {
                            _theradStarter.Complate.Invoke(new RegisterUserResultModel(result.Message, "Ok"));
                        }
                        return;
                    }


                    if (_theradStarter.Complate != null)
                    {
                        _theradStarter.Complate.Invoke(new RegisterUserResultModel(DomainNet35.status.ResultStatus.Error, result.Message));
                    }
                }
            }
            catch (Exception ex)
            {
                _theradStarter.Complate.Invoke(new RegisterUserResultModel(DomainNet35.status.ResultStatus.Error, ex.Message));
            }
        }
        private void UpdateUser(object theradStarter)
        {
            var _theradStarter = (TheradStarter <UpdateUserDto, UpdateResultModel>)theradStarter;

            try
            {
                if (!_redSessionManager.IsAuthenticated)
                {
                    _theradStarter.Error.Invoke(new ThreadException(new Exception("Authorized Failed")));
                }

                var updateUserDto = _theradStarter.DATA;

                using (var _webRequest = new RedWebRequest(_redSessionManager.SessionUser.RedToken))
                {
                    var result = _webRequest.PostContentJson <DomainNet35.Dto.request.GeneralResultModel>($"{_serverSetting.Api}{_serverSetting.UpdateUserUrl}", updateUserDto.ToJsonString());
                    if (result.ResultType == DomainNet35.Dto.request.GeneralResultType.OK)
                    {
                        if (_theradStarter.Complate != null)
                        {
                            _theradStarter.Complate.Invoke(new UpdateResultModel(DomainNet35.status.ResultStatus.Ok, "Ok"));
                        }


                        return;
                    }
                    if (_theradStarter.Complate != null)
                    {
                        _theradStarter.Complate.Invoke(new UpdateResultModel(DomainNet35.status.ResultStatus.Error, result.Message));
                    }
                }
            }
            catch (Exception ex)
            {
                if (_theradStarter.Complate != null)
                {
                    _theradStarter.Complate.Invoke(new UpdateResultModel(DomainNet35.status.ResultStatus.Error, ex.Message));
                }
                _theradStarter.Error.Invoke(new ThreadException(ex));
            }
        }