Exemple #1
0
        public MembershipSnapshot Register(MembershipTable table)
        {
            var entry            = table.Entry;
            var systemTarget     = ServiceFactory.GetSystemTarget <IGatewayMembershipService>(entry.Identity, entry.Address);
            var membershipMember = new MembershipMember(systemTarget, table);

            membershipMembers[membershipMember.Address] = membershipMember;
            NotifyMembershipTableChanged(membershipVersion.Increment(), membershipMember.Identity);
            return(CreateSnapshot());
        }
Exemple #2
0
        // 初始化窗口数据
        private void CustomerManage_Load(object sender, EventArgs e)
        {
            DataTable table = manager.GetMembershipRecord();            // 获取所有会员等级信息

            foreach (DataRow row in table.Rows)                         // 遍历得到的会员等级信息
            {
                MembershipTable unit = new MembershipTable {            // 创建对象获取信息
                    MemberNumber    = (int)row["MemberNumber"],
                    MembershipLevel = row["MembershipLevel"].ToString(),
                    Discount        = (double)row["Discount"]
                };
                member.Add(unit);                                       // 加载顾客会员等级信息
            }
        }
Exemple #3
0
        public void TableChanged(MembershipTable table)
        {
            var entry = table.Entry;

            if (!membershipMembers.TryGetValue(entry.Address, out MembershipMember member))
            {
                logger.Warn("{0} MembershipMember:{1} not found.", nameof(TableChanged), table.Entry.Address);
                return;
            }

            member.Update(table);
            var version = membershipVersion.Increment();

            NotifyMembershipTableChanged(version, null);
        }
        public MembershipTable CreateMembershipTable()
        {
            var table = new MembershipTable();

            table.Version = membershipVersion;
            table.Rows    = new List <MembershipRow>();
            foreach (var activation in activations.Values)
            {
                if (activation.Identity.Category == Identity.Categories.Service)
                {
                    var service = (IService)activation.Addressable;
                    var row     = new MembershipRow();
                    row.Identity    = activation.Identity;
                    row.ServiceType = activation.InterfaceType.AssemblyQualifiedName;
                    if (service.Metadata != null)
                    {
                        row.Metadata = binarySerializer.Serialize(service.Metadata);
                    }
                    table.Rows.Add(row);
                }
            }
            return(table);
        }
Exemple #5
0
 public void Update(MembershipTable table)
 {
     this.table = table;
 }
Exemple #6
0
 public MembershipMember(IGatewayMembershipService systemTarget, MembershipTable table)
 {
     this.systemTarget = systemTarget;
     this.table        = table;
 }