Esempio n. 1
0
        private void ManagerInfo()
        {
            if (UserAccount.ManagerId == Guid.Empty) //登录
            {
                var info = reader.GetManagerInfoByAccount(UserAccount.Account, GetIp(),
                                                          UAFactory.Instance.IsTx);

                var sessionId = ShareUtil.GenerateComb().ToString();
                if (info.Code == (int)MessageCode.Success)
                {
                    if (info.Data.NeedSelect == false)
                    {
                        if (info.Data.ManagerInfo == null)
                        {
                            string playerName = "";
                            string logo       = "1";
                            int    templateId = 1;
                            var    createData = reader.CreateManager(UserAccount.Account, playerName, logo, templateId,
                                                                     UAHelper.GetRealIP());
                            if (createData.Code != (int)MessageCode.Success)
                            {
                                info.Code = createData.Code;
                                OutputHelper.Output(info);
                                return;
                            }
                            info = reader.GetManagerInfoByAccount(UserAccount.Account, GetIp(),
                                                                  UAFactory.Instance.IsTx);
                        }

                        if (CheckLockState(info.Data.ManagerInfo.Manager.Idx))
                        {
                            OutputHelper.Output(MessageCode.LoginOnlineLock);
                            return;
                        }

                        //写入登录信息
                        string cookie = UAHelper.SetFormsAuthentication(UserAccount.Account,
                                                                        info.Data.ManagerInfo.Manager.Idx,
                                                                        info.Data.ManagerInfo.Manager.Name, 1, sessionId);
                        OnlineMgr.LoginSession(info.Data.ManagerInfo.Manager.Idx, sessionId);
                        onlineClient.RiseOnlineTime(info.Data.ManagerInfo.Manager.Idx);
                        info.Data.Cookie = cookie;
                    }
                }
                OutputHelper.Output(info);
            }
            else
            {
                if (CheckLockState(UserAccount.ManagerId))
                {
                    OutputHelper.Output(MessageCode.LoginOnlineLock);
                    return;
                }
                var info = reader.GetManagerInfo(UserAccount.ManagerId, UAFactory.Instance.IsTx);
                info.Data.Cookie = "";
                OutputHelper.Output(info);
            }
        }