public XiakeTypeData SetXiakeType (long xiakeIds, XiakeType xiakeType) { lock (LockObject) { Init(); return mClient.Service.SetXiakeType(xiakeIds,xiakeType); } }
public SaguaModuleInfo(Type type, bool loadForAssembly = false) { XiakeTypes = new XiakeType[0]; IsMustLoged = false; if(loadForAssembly) { LoadForAssembly(type); } else { LoadForInside(type); } }
public void AddXiake (long id, string name, string tokenPass, XiakeType xiakeType, XiakeLevel xiakeLevel) { lock(LockObject) { var newXiake = new LoginXiake() { Id = id, Name = name, Token = tokenPass, XiakeType = xiakeType, XiakeLevel = xiakeLevel }; var oldXiake = mLoginXiakes.FirstOrDefault(a => a.Id == id); if(oldXiake != null) { mLoginXiakes.Remove(oldXiake); } mLoginXiakes.Add(newXiake); } }
public LoginXiakeData XiakeJoin(string xiakeName, string password, string qq, string mail, string tel, XiakeType xiakeType,string inviteCode) { var result = new LoginXiakeData(); using (WebDbContext db = DbContextFactory.CreateDbContext()) { var settins = ConfigSettings.GetConfigSettings( db.Settingses.FirstOrDefault().ConfigData); if(settins != null && settins.SystemStatusSet.IsDisableRegister) { throw new FaultException(settins.SystemStatusSet.DisableRegisterReason); } if(settins != null && settins.SystemStatusSet.IsDisableSystem) { throw new FaultException(settins.SystemStatusSet.DisableSystemReason); } if(settins.InviteSet.IsEnableInvite && settins.InviteSet.IsRejectNoInviteRegister && string.IsNullOrEmpty(inviteCode)) { throw new FaultException("Sorry, 没有邀请码不可注册!"); } if (db.Xiakes.Any(a => a.XiakeName.Equals(xiakeName))) { throw new FaultException("用户名已被使用中,请更换"); } if(db.Xiakes.Any(a => a.Mail.Equals(mail))) { throw new FaultException("邮箱已被使用中,请更换"); } if (db.Xiakes.Any(a => a.Tel.Equals(tel))) { throw new FaultException("手机已被使用中,请更换"); } if (db.Xiakes.Any(a => a.QQ.Equals(qq))) { throw new FaultException("QQ已被使用中,请更换"); } var ip = WcfHelper.GetClientIp(); var xiake = new Xiake { XiakeName = xiakeName, Password = password, QQ = qq, Mail = mail, Tel = tel, RegisterIp = ip, Credits = new XiakeCredits() { FreeCredits=0, FreezeCredits = 0 }, InviteStorage = new InviteStorage(), IsAuthorized = true, IsFrozen = false, LoginCount = 1, LastLoginTime = DateTime.Now, LastLoginIp = ip, UserType = xiakeType, Level = XiakeLevel.Guest, Status = XiakeStatus.Enabled, LastReadGonggaoId = 0 }; db.Xiakes.Add(xiake); var gift = xiakeType == XiakeType.Biaoju ? settins.CreditsPolicySet.GifrForBiaoju : settins.CreditsPolicySet.GiftForZhanggui; if(gift > 0) { var charge = new Charge() { ChargeMode = ChargeMode.ByOwner, Comments="新会员赠送", Handler= xiake, PayType= PayType.ByPresent, TargetXiake= xiake, Value = gift }; xiake.Credits.FreeCredits = charge.Value; db.Charges.Add(charge); } if(!string.IsNullOrEmpty(inviteCode)) { var masterId = InviteCodeHelper.GetXiakeIdWithInviteCode(inviteCode); var master = db.Xiakes.FirstOrDefault(a => a.Id == masterId); if(master == null) { throw new FaultException("Sorry, 邀请码错误!"); } var invite = new Invite() {Slave = xiake , Master = master}; db.Invites.Add(invite); } //if(settins.InviteSet.IsEnableInvite) //{ // var inviteStorage = new InviteStorage() {Credits = 0, Xiake = xiake}; // db.InviteStorages.Add(inviteStorage); //} db.SaveChanges(); result.ID = xiake.Id; result.Name = xiake.XiakeName; result.XiakeType = xiake.UserType; result.XiakeLevel = xiake.Level; result.Token = Guid.NewGuid().ToString(); } return result; }
public string[] XiakeJoin (long id, string name, string token, XiakeType xiakeType, XiakeLevel level) { return mService.Service.XiakeJoin(id, name, token, xiakeType, level); }
public LoginXiakeData XiakeJoin (string xiakeName, string password, string qq, string mail, string tel, XiakeType xiakeType, string inviteCode) { lock(LockObject) { int errorCount = 0; while(true) { try { Init(); var rv = mClient.Service.XiakeJoin(xiakeName, password, qq, mail, tel, xiakeType, inviteCode); //Xiake.XiakeID = rv.ID; //Xiake.XiakeName = rv.Name; //Xiake.XiakeType = rv.XiakeType; //Xiake.Level = rv.XiakeLevel; //Xiake.Token = rv.Token; //mEventAggregator.GetEvent<LoginEvent>().Publish(true); return rv; } catch (FaultException e) { throw; } catch (CommunicationException exception) { errorCount++; if (errorCount > mClientFuwuqiCacaheService.GetServers().Count()) throw new Exception("无法连接上服务器,请稍后再试"); mClientFuwuqiCacaheService.SetServerDisable(); } } } }
public string[] XiakeJoin (long id, string name, string token, XiakeType xiakeType, XiakeLevel level) { try { string[] servers = null; using (var db = DbContextFactory.CreateDbContext()) { servers = db.Fuwuqis.Select(a => a.Url).ToArray(); } var urls = new List<string>(); var firstUrl = servers[RandomObject.Next(0, servers.Length)]; if (xiakeType == XiakeType.Mengzhu || xiakeType == XiakeType.Xiaoer || xiakeType == XiakeType.Tangzhu) { firstUrl = MasterBaseUrl; } urls.Add(firstUrl); urls.AddRange(servers.Where(a => a != firstUrl)); mOnlineXiakeManager.AddXiake(new LoginXiake() { Id = id, Name = name, Token = token, XiakeLevel = level, XiakeType = xiakeType }); return urls.ToArray(); } catch(Exception) { return new string[] { MasterBaseUrl }; } }
public CombinationSearchXiakeData SearchXiakesByMengzhu(XiakeType[] xiakeTypes, XiakeLevel[] xiakeLevels, XiakeStatus[] xiakeStatus, string xiakeName, long lastID, bool isTimeRangeRequired, SearchTimeType timeType, DateTime startTime, DateTime endTime, bool isOnline) { var result = new CombinationSearchXiakeData(); using (WebDbContext db = DbContextFactory.CreateDbContext()) { IQueryable<Xiake> xiakes = db.Xiakes.OrderByDescending(a => a.Id); if (!string.IsNullOrEmpty(xiakeName)) { xiakes = xiakes.Where(a => a.XiakeName == xiakeName); } else { if (lastID != 0) { xiakes = xiakes.Where(a => a.Id <lastID); } xiakes = xiakes.Where(a => xiakeTypes.Contains(a.UserType)) .Where(a => xiakeLevels.Contains(a.Level)) .Where(a => xiakeStatus.Contains(a.Status)); if (isTimeRangeRequired) { if (timeType == SearchTimeType.JoinTime) { xiakes = xiakes.Where(a => a.CreateTime >= startTime && a.CreateTime <= endTime); } else { xiakes = xiakes.Where(a => a.LastLoginTime >= startTime && a.LastLoginTime <= endTime); } } if(isOnline) { var ids = this.OnlineXiakeManager.GetOnlineXiakes().Select(a => a.Id); xiakes = xiakes.Where(a => ids.Contains(a.Id)); } } if (lastID == 0) { result.TotalCount = xiakes.Count(); } xiakes = xiakes.Take(DomainDefinition.PAGE_SIZE); xiakes = xiakes.Include(a => a.Credits); foreach (Xiake xk in xiakes) { var x = new SearchXiakeData() { ID = xk.Id, Name = xk.XiakeName, QQ = xk.QQ, Mail = xk.Mail, Type = xk.UserType, Level = xk.Level, Status = xk.Status, JoinTime = xk.CreateTime, LastLoginTime = xk.LastLoginTime, LoginCount = xk.LoginCount, Credits = xk.Credits.FreeCredits, IsOnline = OnlineXiakeManager.IsXiakeOnline(xk.Id) }; result.Items.Add(x); } if (result.Items.Count < DomainDefinition.PAGE_SIZE) { result.IsLoadedAllData = true; } } return result; }
public XiakeTypeData SetXiakeType(long xiakeId, XiakeType xiakeType) { var result = new XiakeTypeData(); using (WebDbContext db = DbContextFactory.CreateDbContext()) { var xk = db.Xiakes.FirstOrDefault(a => a.Id == xiakeId); if (xk == null) throw new Exception("没找到相应的侠客"); if (xk.XiakeName == Thread.CurrentPrincipal.Identity.Name) throw new Exception("不能设置自己的类型"); xk.UserType = xiakeType; xk.Token = ""; result.XiakeId = xk.Id; result.XiakeType = xiakeType; try { db.SaveChanges(); } catch(DbUpdateConcurrencyException e) { return SetXiakeType(xiakeId, xiakeType); } } return result ; }
public CombinationSearchXiakeData SearchXiakesByMengzhu (XiakeType[] xiakeTypes, XiakeLevel[] xiakeLevels, XiakeStatus[] xiakeStatus, string xiakeName, long lastID, bool isTimeRangeRequired, SearchTimeType timeType, DateTime startTime, DateTime endTime, bool isOnline) { lock (LockObject) { Init(); return mClient.Service.SearchXiakesByMengzhu(xiakeTypes,xiakeLevels,xiakeStatus,xiakeName,lastID,isTimeRangeRequired,timeType,startTime,endTime,isOnline); } }