protected override void LoadModel(object savedModel)
        {
            ModelState state = (ModelState)savedModel;

            _dataItem     = state.DataItem;
            _naasUserInfo = state.NaasUserInfo;
        }
        public UserAccount GetOrCreateUser(string username, NodeVisit visit,
                                           out NaasUserInfo naasUserInfo)
        {
            ValidateByRole(visit, SystemRoleType.Admin);

            bool        wasCreated;
            UserAccount userAccount = _accountManager.GetOrCreate(username, true, out wasCreated);

            naasUserInfo = _naasManager.GetNaasUserInfo(username);

            return(userAccount);
        }
        protected override void InitializeModel()
        {
            base.InitializeModel();

            if (_dataItemService == null)
            {
                throw new ArgumentNullException("DataItemService");
            }
            if (_accountService == null)
            {
                throw new ArgumentNullException("AccountService");
            }

            string id = Request["id"];

            if (!string.IsNullOrEmpty(id))
            {
                _dataItem = _dataItemService.GetOrCreateUser(id, VisitHelper.GetVisit(), out _naasUserInfo);
                if (_accountService.IsDemoNode && (_dataItem.IsDemoUser != null) && (_dataItem.IsDemoUser.Value == true))
                {
                    _naasUserInfo.Owner = _accountService.GetUsernameById(_dataItem.ModifiedById);
                }
            }
            else
            {
                string naasAccount = Request["naas"];
                if (!string.IsNullOrEmpty(naasAccount))
                {
                    _naasUserInfo      = _dataItemService.GetNaasUserInfo(naasAccount);
                    _dataItem          = new UserAccount();
                    _dataItem.IsActive = true;
                    if (_accountService.IsDemoNode)
                    {
                        _dataItem.IsDemoUser = new bool?(false);
                    }
                    _dataItem.NaasAccount = naasAccount;
                    _dataItem.Role        = SystemRoleType.Authed;
                }
            }
        }
 public ModelState(UserAccount dataItem, NaasUserInfo naasUserInfo)
 {
     _dataItem     = dataItem;
     _naasUserInfo = naasUserInfo;
 }