public Member(List <MemberLevel> levels, BonusState bonusState, WalletState walletState, IWalletPolicy walletPolicy, IBonusPolicy bonusPolicy, IMemberPolicy memberPolicy) { this._bonusState = bonusState; this._levels = levels; this._walletState = walletState; this._walletPolicy = walletPolicy; this._bonusPolicy = bonusPolicy; this._memberPolicy = memberPolicy; this.Children = new List <Member>(); }
//会员初始化构建器 private static List <Member> memberInitGenarator( List <string> memberTierNums, List <string> memberGenerationNums, int levelNumLen, List <MemberLevel> levels, BonusState bonusState, WalletState walletState, IWalletPolicy walletPolicy, IBonusPolicy bonusPolicy, IMemberPolicy memberPolicy ) { if (memberTierNums.Count != memberGenerationNums.Count) { throw new Exception("两个编号列表必须数量一致"); } Random random = new Random(); List <Member> members = new List <Member>(); Dictionary <string, Member> tierMembers = new Dictionary <string, Member>(); Dictionary <string, Member> generationMembers = new Dictionary <string, Member>(); for (int i = 0; i < memberTierNums.Count; i++) { string tierNum = memberTierNums[i]; string generationNum = memberGenerationNums[i]; Member member = new Member(levels, bonusState, walletState, walletPolicy, bonusPolicy, memberPolicy) { Name = string.Format("{0}-{1}", tierNum, generationNum), ID = Guid.NewGuid(), RangeRatio = random.NextDouble() }; members.Add(member); tierMembers.Add(tierNum, member); generationMembers.Add(generationNum, member); //根据编号层级添加关系 if (i != 0) { Member topMember = tierMembers[tierNum.Substring(0, tierNum.Length - levelNumLen)]; Member parent = generationMembers[generationNum.Substring(0, generationNum.Length - levelNumLen)]; member.TopMember = topMember; if (topMember.LeftMember == null) { topMember.LeftMember = member; } else { topMember.RightMember = member; } member.Parent = parent; parent.Children.Add(member); } } return(members); }