Example #1
0
        /// <summary>
        /// Check for permission.
        /// </summary>
        /// <param name="session">Caller sessions.</param>
        /// <param name="action">Action type</param>
        /// <param name="member">Function, property or event to check for permission.</param>
        /// <param name="inquirer">Permission inquirer.</param>
        /// <returns>Ruling.</returns>
        public Ruling Applicable(Session session, ActionType action, MemberTemplate member, object inquirer = null)
        {
            foreach (IPermissionsManager manager in managers)
            {
                var r = manager.Applicable(this.resource, session, action, member, inquirer);
                if (r != Ruling.DontCare)
                {
                    return(r);
                }
            }

            return(Ruling.DontCare);
        }
Example #2
0
 public Ruling Applicable(IResource resource, Session session, ActionType action, MemberTemplate member, object inquirer = null)
 {
     return(resource.Instance.Store.Instance.Applicable(session, action, member, inquirer));
 }
Example #3
0
        protected void FillMemberRecord(object rec, object[] fields)
        {
            MemberTemplate record = (MemberTemplate)rec;

            record.MemberId = fields[0].ToString();

            record.VIPNO        = fields[1].ToString();
            record.GROUP        = fields[2].ToString();
            record.SALUTE       = fields[3].ToString();
            record.LNAME        = fields[4].ToString();
            record.FNAME        = fields[5].ToString();
            record.NNAME        = fields[6].ToString();
            record.ADDRESS1     = fields[7].ToString();
            record.ADDRESS2     = fields[8].ToString();
            record.ADDRESS3     = fields[9].ToString();
            record.ADDRESS4     = fields[10].ToString();
            record.TELW         = fields[11].ToString();
            record.TELH         = fields[12].ToString();
            record.TELP         = fields[13].ToString();
            record.FAX          = fields[14].ToString();
            record.EMAIL        = fields[15].ToString();
            record.SEX          = fields[16].ToString();
            record.RACE         = fields[17].ToString();
            record.REMARKS      = fields[18].ToString();
            record.NRDISC       = (fields[19] == DBNull.Value || string.IsNullOrEmpty(fields[19].ToString())) ? 0 : Convert.ToDecimal(fields[19].ToString());
            record.GRADE        = fields[20].ToString();
            record.ID_NO        = fields[21].ToString();
            record.DATE_BIRTH   = ConvertDate(fields[22]);
            record.DATE_REGIS   = ConvertDate(fields[23]);
            record.DLFLAG       = fields[24].ToString();
            record.AGE          = fields[25].ToString();
            record.R1           = fields[26].ToString();
            record.R2           = fields[27].ToString();
            record.R3           = fields[28].ToString();
            record.NATION       = fields[29].ToString();
            record.MEMO         = fields[30].ToString();
            record.PHOTO        = fields[31].ToString();
            record.DATE_COMM    = ConvertDate(fields[32]);
            record.DATE_MIGRATE = ConvertDate(fields[33]);
            record.CARD_ISSUE   = ConvertDate(fields[34]);
            record.CARD_EXPIRE  = ConvertDate(fields[35]);
            record.CARD_NAME    = fields[36].ToString();
            record.CARD_RECEIVE = fields[37].ToString();
            record.CARD_ACTIVE  = fields[38].ToString();
            record.FORMER_PPNO  = fields[39].ToString();
            record.ACREDIT      = (fields[40] == DBNull.Value || string.IsNullOrEmpty(fields[40].ToString())) ? 0 : Convert.ToDecimal(fields[40].ToString());
            record.TERMS        = fields[41].ToString();
            record.PYDISC       = (fields[42] == DBNull.Value || string.IsNullOrEmpty(fields[42].ToString())) ? 0 : Convert.ToDecimal(fields[42].ToString());
            record.NATURE       = fields[43].ToString();
            record.CUSTNUM      = fields[44].ToString();
            record.BRANCH       = fields[45].ToString();
            record.PRO_DISC     = (fields[46] == DBNull.Value || string.IsNullOrEmpty(fields[46].ToString())) ? 0 : Convert.ToDecimal(fields[46].ToString());
            record.DATECREATE   = ConvertDate(fields[47]);
            record.DATELCHG     = ConvertDate(fields[48]);
            record.USERLCHG     = fields[49].ToString();
            record.ATDAMTPUR    = (fields[50] == DBNull.Value || string.IsNullOrEmpty(fields[50].ToString())) ? 0 : Convert.ToDecimal(fields[50].ToString());
            record.ATDAMTPAY    = (fields[51] == DBNull.Value || string.IsNullOrEmpty(fields[51].ToString())) ? 0 : Convert.ToDecimal(fields[51].ToString());
            record.ATDAMTRET    = (fields[52] == DBNull.Value || string.IsNullOrEmpty(fields[52].ToString())) ? 0 : Convert.ToDecimal(fields[52].ToString());
            record.ATDAMTDIS    = (fields[53] == DBNull.Value || string.IsNullOrEmpty(fields[53].ToString())) ? 0 : Convert.ToDecimal(fields[53].ToString());
            record.LOOID        = fields[54].ToString();
            record.CODENUM      = fields[55].ToString();
            record.LOYALTYNUM   = fields[56].ToString();
            record.AGE_GROUP    = fields[57].ToString();
            record.PROFILE      = fields[58].ToString();
            record.MALL1        = fields[59].ToString();
            record.MALL2        = fields[60].ToString();
            record.MALL3        = fields[61].ToString();
            record.BRAND1       = fields[62].ToString();
            record.BRAND2       = fields[63].ToString();
            record.BRAND3       = fields[64].ToString();
            record.MAGAZINE1    = fields[65].ToString();
            record.MAGAZINE2    = fields[66].ToString();
            record.MAGAZINE3    = fields[67].ToString();
            record.CARD1        = fields[68].ToString();
            record.CARD2        = fields[69].ToString();
            record.CARD3        = fields[70].ToString();
            record.CNAME        = fields[71].ToString();
            record.TITLE        = fields[73].ToString();
            record.COMPNAME     = fields[74].ToString();
            record.COMPNAMEC    = fields[75].ToString();
            record.ADDRESS1C    = fields[76].ToString();
            record.ADDRESS2C    = fields[77].ToString();
            record.ADDRESS3C    = fields[78].ToString();
            record.ADDRESS4C    = fields[79].ToString();
            record.TELOTHER     = fields[80].ToString();
            record.PHONEBOOK    = fields[81].ToString();
            record.STAFF_QUOTA  = (fields[82] == DBNull.Value || string.IsNullOrEmpty(fields[82].ToString())) ? 0 : Convert.ToDecimal(fields[82].ToString());
            record.BADDONDISC   = fields[83].ToString();
        }
    public Ruling Applicable(IResource resource, Session session, ActionType action, MemberTemplate member, object inquirer)
    {
        Map <string, object> userPermissions = null;

        if (settings.ContainsKey(session.RemoteAuthentication.FullName))
        {
            userPermissions = settings[session.RemoteAuthentication.FullName] as Map <string, object>;
        }
        else if (settings.ContainsKey("public"))
        {
            userPermissions = settings["public"] as Map <string, object>;
        }
        else
        {
            return(Ruling.Denied);
        }

        if (action == ActionType.Attach)// || action == ActionType.Delete)
        {
            if ((string)userPermissions["_attach"] != "yes")
            {
                return(Ruling.Denied);
            }
        }
        else if (action == ActionType.Delete)
        {
            if ((string)userPermissions["_delete"] != "yes")
            {
                return(Ruling.Denied);
            }
        }
        else if (action == ActionType.InquireAttributes)
        {
            if ((string)userPermissions["_get_attributes"] == "yes")
            {
                return(Ruling.Denied);
            }
        }
        else if (action == ActionType.UpdateAttributes)
        {
            if ((string)userPermissions["_set_attributes"] != "yes")
            {
                return(Ruling.Denied);
            }
        }
        else if (action == ActionType.AddChild)
        {
            if ((string)userPermissions["_add_child"] != "yes")
            {
                return(Ruling.Denied);
            }
        }
        else if (action == ActionType.RemoveChild)
        {
            if ((string)userPermissions["_remove_child"] != "yes")
            {
                return(Ruling.Denied);
            }
        }
        else if (action == ActionType.AddParent)
        {
            if ((string)userPermissions["_add_parent"] != "yes")
            {
                return(Ruling.Denied);
            }
        }
        else if (action == ActionType.RemoveParent)
        {
            if ((string)userPermissions["_remove_parent"] != "yes")
            {
                return(Ruling.Denied);
            }
        }
        else if (action == ActionType.Rename)
        {
            if ((string)userPermissions["_rename"] != "yes")
            {
                return(Ruling.Denied);
            }
        }
        else if (userPermissions.ContainsKey(member?.Name))
        {
            Map <string, object> methodPermissions = userPermissions[member.Name] as Map <string, object>;
            if ((string)methodPermissions[action.ToString()] != "yes")
            {
                return(Ruling.Denied);
            }
        }

        return(Ruling.DontCare);
    }
Example #5
0
        private void Save(MemberTemplate member)
        {
            using (var ctx = new EF6.RT2020Entities())
            {
                using (var scope = ctx.Database.BeginTransaction())
                {
                    try
                    {
                        #region save member core data
                        var oMember = ctx.Member.Where(x => x.MemberNumber == member.VIPNO).FirstOrDefault();
                        if (oMember == null)
                        {
                            oMember              = new EF6.Member();
                            oMember.MemberId     = Guid.NewGuid();
                            oMember.MemberNumber = member.VIPNO;

                            oMember.CreatedBy = ConfigHelper.CurrentUserId;
                            oMember.CreatedOn = DateTime.Now;

                            ctx.Member.Add(oMember);
                        }

                        oMember.WorkplaceId    = System.Guid.Empty;
                        oMember.ClassId        = MemberClassEx.GetIdByCode(member.PHONEBOOK);
                        oMember.GroupId        = MemberGroupEx.GetIdByCode(member.GROUP);
                        oMember.MemberInitial  = member.NNAME;
                        oMember.SalutationId   = SalutationEx.GetIdByCode(member.SALUTE);
                        oMember.FirstName      = member.FNAME;
                        oMember.LastName       = member.LNAME;
                        oMember.FullName       = member.LNAME + ", " + member.FNAME;
                        oMember.FullName_Chs   = member.CNAME;
                        oMember.FullName_Cht   = member.CNAME;
                        oMember.JobTitleId     = JobTitleEx.GetJobTitleIdByName(member.TITLE);
                        oMember.AssignedTo     = System.Guid.Empty;
                        oMember.Remarks        = member.REMARKS;
                        oMember.NormalDiscount = member.NRDISC;
                        oMember.Status         = Convert.ToInt32(EnumHelper.Status.Active.ToString("d"));

                        oMember.ModifiedBy = ConfigHelper.CurrentUserId;
                        oMember.ModifiedOn = DateTime.Now;
                        ctx.SaveChanges();
                        #endregion

                        var memberId = oMember.MemberId;
                        #region SaveSmartTag(oMember.MemberId, member);

                        var    tagId = Guid.Empty;
                        string sql   = "MemberId = '" + memberId.ToString() + "' AND TagId = '{0}'";

                        #region Grade
                        tagId = GetSmartTagId("1");
                        var oGradeTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oGradeTag == null)
                        {
                            oGradeTag            = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId = Guid.NewGuid();
                            oGradeTag.MemberId   = memberId;
                            oGradeTag.TagId      = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oGradeTag.SmartTagValue = member.GRADE;
                        #endregion

                        #region Sex
                        tagId = GetSmartTagId("2");
                        var oSexTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oSexTag == null)
                        {
                            oSexTag = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId = Guid.NewGuid();
                            oSexTag.MemberId     = memberId;
                            oSexTag.TagId        = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oSexTag.SmartTagValue = member.SEX;
                        #endregion

                        #region Race
                        tagId = GetSmartTagId("3");
                        var oRaceTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oRaceTag == null)
                        {
                            oRaceTag             = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId = Guid.NewGuid();
                            oRaceTag.MemberId    = memberId;
                            oRaceTag.TagId       = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oRaceTag.SmartTagValue = member.RACE;
                        #endregion

                        #region AgeGroup
                        tagId = GetSmartTagId("4");
                        var oAgeGroupTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oAgeGroupTag == null)
                        {
                            oAgeGroupTag          = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId  = Guid.NewGuid();
                            oAgeGroupTag.MemberId = memberId;
                            oAgeGroupTag.TagId    = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oAgeGroupTag.SmartTagValue = member.AGE_GROUP;
                        #endregion

                        #region CodeCardNumber
                        tagId = GetSmartTagId("5");
                        var oCodeCardNumberTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oCodeCardNumberTag == null)
                        {
                            oCodeCardNumberTag          = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId        = Guid.NewGuid();
                            oCodeCardNumberTag.MemberId = memberId;
                            oCodeCardNumberTag.TagId    = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oCodeCardNumberTag.SmartTagValue = member.CODENUM;
                        #endregion

                        #region LoyaltyNumber
                        tagId = GetSmartTagId("6");
                        var oLoyaltyNumberTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oLoyaltyNumberTag == null)
                        {
                            oLoyaltyNumberTag          = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId       = Guid.NewGuid();
                            oLoyaltyNumberTag.MemberId = memberId;
                            oLoyaltyNumberTag.TagId    = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oLoyaltyNumberTag.SmartTagValue = member.LOYALTYNUM;
                        #endregion

                        #region Profile
                        tagId = GetSmartTagId("7");
                        var oProfileTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oProfileTag == null)
                        {
                            oProfileTag          = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId = Guid.NewGuid();
                            oProfileTag.MemberId = memberId;
                            oProfileTag.TagId    = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oProfileTag.SmartTagValue = member.PROFILE;
                        #endregion

                        #region DateOfBirth
                        tagId = GetSmartTagId("8");
                        var oDateOfBirthTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oDateOfBirthTag == null)
                        {
                            oDateOfBirthTag          = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId     = Guid.NewGuid();
                            oDateOfBirthTag.MemberId = memberId;
                            oDateOfBirthTag.TagId    = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oDateOfBirthTag.SmartTagValue = DateTimeHelper.DateTimeToString(member.DATE_BIRTH, false);
                        #endregion

                        #region DateOfRegister
                        tagId = GetSmartTagId("9");
                        var oDateOfRegisterTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oDateOfRegisterTag == null)
                        {
                            oDateOfRegisterTag          = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId        = Guid.NewGuid();
                            oDateOfRegisterTag.MemberId = memberId;
                            oDateOfRegisterTag.TagId    = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oDateOfRegisterTag.SmartTagValue = DateTimeHelper.DateTimeToString(member.DATE_REGIS, false);
                        #endregion

                        #region HKID
                        tagId = GetSmartTagId("10");
                        var oHKIDTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oHKIDTag == null)
                        {
                            oHKIDTag             = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId = Guid.NewGuid();
                            oHKIDTag.MemberId    = memberId;
                            oHKIDTag.TagId       = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oHKIDTag.SmartTagValue = member.ID_NO;
                        #endregion

                        #region Nationality
                        tagId = GetSmartTagId("11");
                        var oNationalityTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oNationalityTag == null)
                        {
                            oNationalityTag          = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId     = Guid.NewGuid();
                            oNationalityTag.MemberId = memberId;
                            oNationalityTag.TagId    = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oNationalityTag.SmartTagValue = member.NATION;
                        #endregion

                        #region Email
                        tagId = GetSmartTagId("12");
                        var oEmailTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oEmailTag == null)
                        {
                            oEmailTag            = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId = Guid.NewGuid();
                            oEmailTag.MemberId   = memberId;
                            oEmailTag.TagId      = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oEmailTag.SmartTagValue = member.EMAIL;
                        #endregion

                        #region Company
                        tagId = GetSmartTagId("13");
                        var oCompanyTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oCompanyTag == null)
                        {
                            oCompanyTag          = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId = Guid.NewGuid();
                            oCompanyTag.MemberId = memberId;
                            oCompanyTag.TagId    = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oCompanyTag.SmartTagValue = member.COMPNAME;
                        #endregion

                        #region CompanyName_Ch
                        tagId = GetSmartTagId("14");
                        var oCompanyName_ChTag = ctx.MemberSmartTag.Where(x => x.MemberId == memberId && x.TagId == tagId).FirstOrDefault();
                        if (oCompanyName_ChTag == null)
                        {
                            oCompanyName_ChTag          = new EF6.MemberSmartTag();
                            oGradeTag.SmartTagId        = Guid.NewGuid();
                            oCompanyName_ChTag.MemberId = memberId;
                            oCompanyName_ChTag.TagId    = tagId;

                            ctx.MemberSmartTag.Add(oGradeTag);
                        }
                        oCompanyName_ChTag.SmartTagValue = member.COMPNAMEC;
                        #endregion

                        ctx.SaveChanges();

                        #endregion

                        #region SaveAddress(oMember.MemberId, member);
                        //string sql = "MemberId = '" + memberId.ToString() + "' AND AddressTypeId = '" + GetAddressTypeId().ToString() + "'";
                        var addressTypeId = GetAddressTypeId();
                        var oAddress      = ctx.MemberAddress.Where(x => x.MemberId == memberId && x.AddressTypeId == addressTypeId).FirstOrDefault();
                        if (oAddress == null)
                        {
                            oAddress               = new EF6.MemberAddress();
                            oAddress.AddressId     = Guid.NewGuid();
                            oAddress.MemberId      = memberId;
                            oAddress.AddressTypeId = GetAddressTypeId();

                            ctx.MemberAddress.Add(oAddress);
                        }
                        oAddress.Address        = member.ADDRESS4;
                        oAddress.PostalCode     = string.Empty;
                        oAddress.CountryId      = CountryEx.GetCountryIdByName(member.ADDRESS1);
                        oAddress.ProvinceId     = ProvinceEx.GetProvinceIdByName(member.ADDRESS2);
                        oAddress.CityId         = GetCityId(member.ADDRESS3);
                        oAddress.District       = string.Empty;
                        oAddress.Mailing        = true;
                        oAddress.PhoneTag1      = PhoneTagEx.GetPhoneTagIdByPriority(1);
                        oAddress.PhoneTag1Value = member.TELW;
                        oAddress.PhoneTag2      = PhoneTagEx.GetPhoneTagIdByPriority(2);
                        oAddress.PhoneTag2Value = member.TELH;
                        oAddress.PhoneTag3      = PhoneTagEx.GetPhoneTagIdByPriority(3);
                        oAddress.PhoneTag3Value = member.FAX;
                        oAddress.PhoneTag4      = PhoneTagEx.GetPhoneTagIdByPriority(4);
                        oAddress.PhoneTag4Value = member.TELOTHER;

                        ctx.SaveChanges();
                        #endregion

                        #region SaveVipData(oMember.MemberId, member);
                        //string sql = "MemberId = '" + memberId.ToString() + "'";
                        var oVip = ctx.MemberVipData.Where(x => x.MemberId == memberId).FirstOrDefault();
                        if (oVip == null)
                        {
                            oVip             = new EF6.MemberVipData();
                            oVip.MemberVipId = Guid.NewGuid();
                            oVip.MemberId    = memberId;
                            oVip.VipNumber   = member.VIPNO;

                            ctx.MemberVipData.Add(oVip);
                        }
                        oVip.FORMER_PPNO  = member.FORMER_PPNO;
                        oVip.CARD_ACTIVE  = (string.IsNullOrEmpty(member.CARD_ACTIVE)) ? false : Convert.ToBoolean(member.CARD_ACTIVE);
                        oVip.CARD_RECEIVE = (string.IsNullOrEmpty(member.CARD_RECEIVE)) ? false : Convert.ToBoolean(member.CARD_RECEIVE);
                        oVip.CARD_NAME    = member.CARD_NAME;
                        oVip.CARD_EXPIRE  = member.CARD_EXPIRE;
                        oVip.CARD_ISSUE   = member.CARD_ISSUE;

                        /**
                         * oVip.SetMetadata("CardInfo_CommencementDate", member.DATE_COMM.ToString("yyyy-MM-dd HH:mm:ss"));
                         * oVip.SetMetadata("CardInfo_MigrationDate", member.DATE_MIGRATE.ToString("yyyy-MM-dd HH:mm:ss"));
                         *
                         * // Others Info
                         * oVip.SetMetadata("OthersInfo_CreditLimit", member.ACREDIT.ToString());
                         * oVip.SetMetadata("OthersInfo_CreditTerms", member.TERMS);
                         * oVip.SetMetadata("OthersInfo_PaymentDiscount", member.PYDISC.ToString());
                         * oVip.SetMetadata("OthersInfo_CustomerInfo_1", member.CUSTNUM);
                         * oVip.SetMetadata("OthersInfo_CustomerInfo_2", member.BRANCH);
                         * oVip.SetMetadata("OthersInfo_PromotionDiscount", member.PRO_DISC.ToString());
                         * oVip.SetMetadata("OthersInfo_AddOnDiscount", member.BADDONDISC);
                         * oVip.SetMetadata("OthersInfo_StaffQuota", member.STAFF_QUOTA.ToString());
                         * oVip.SetMetadata("OthersInfo_Remarks1", member.R1);
                         * oVip.SetMetadata("OthersInfo_Remarks2", member.R2);
                         * oVip.SetMetadata("OthersInfo_Remarks3", member.R3);
                         * oVip.SetMetadata("OthersInfo_Nature", member.NATURE);
                         *
                         * oVip.SetMetadata("OthersInfo_Age", member.AGE);
                         * oVip.SetMetadata("OthersInfo_DL_Flag", member.DLFLAG);
                         * oVip.SetMetadata("OthersInfo_LOOCode", member.LOOID);
                         * oVip.SetMetadata("OthersInfo_AmountPurchased", member.ATDAMTPUR.ToString());
                         * oVip.SetMetadata("OthersInfo_AmountPaied", member.ATDAMTPAY.ToString());
                         * oVip.SetMetadata("OthersInfo_AmountReturned", member.ATDAMTRET.ToString());
                         * oVip.SetMetadata("OthersInfo_AmountDiscounted", member.ATDAMTDIS.ToString());
                         * oVip.SetMetadata("OthersInfo_Memo", member.MEMO);
                         *
                         * // Marketing Info
                         * oVip.SetMetadata("MarketingInfo_MostVisitedMalls_1", member.MALL1);
                         * oVip.SetMetadata("MarketingInfo_MostVisitedMalls_2", member.MALL2);
                         * oVip.SetMetadata("MarketingInfo_MostVisitedMalls_3", member.MALL3);
                         *
                         * oVip.SetMetadata("MarketingInfo_MostBoughtBrands_1", member.BRAND1);
                         * oVip.SetMetadata("MarketingInfo_MostBoughtBrands_2", member.BRAND2);
                         * oVip.SetMetadata("MarketingInfo_MostBoughtBrands_3", member.BRAND3);
                         *
                         * oVip.SetMetadata("MarketingInfo_MostReadMagazine_1", member.MAGAZINE1);
                         * oVip.SetMetadata("MarketingInfo_MostReadMagazine_2", member.MAGAZINE2);
                         * oVip.SetMetadata("MarketingInfo_MostReadMagazine_3", member.MAGAZINE3);
                         *
                         * oVip.SetMetadata("MarketingInfo_MostUsedCreditCards_1", member.CARD1);
                         * oVip.SetMetadata("MarketingInfo_MostUsedCreditCards_2", member.CARD2);
                         * oVip.SetMetadata("MarketingInfo_MostUsedCreditCards_3", member.CARD3);
                         *
                         * // Photo
                         * oVip.SetMetadata("MiscInfo_Photo", member.PHOTO);
                         *
                         * // Contact
                         * oVip.SetMetadata("Address_Phone_Pager", member.TELP);
                         * oVip.SetMetadata("Address_Chinese_1", member.ADDRESS1C);
                         * oVip.SetMetadata("Address_Chinese_2", member.ADDRESS2C);
                         * oVip.SetMetadata("Address_Chinese_3", member.ADDRESS3C);
                         * oVip.SetMetadata("Address_Chinese_4", member.ADDRESS4C);
                         */

                        ctx.SaveChanges();
                        #endregion

                        scope.Commit();
                    }
                    catch (Exception ex)
                    {
                        scope.Rollback();
                    }
                }
            }
        }
Example #6
0
        public Ruling Applicable(IResource resource, Session session, ActionType action, MemberTemplate member, object inquirer = null)
        {
            foreach (IResource parent in resource.Instance.Parents)
            {
                var ruling = parent.Instance.Applicable(session, action, member, inquirer);
                if (ruling != Ruling.DontCare)
                {
                    return(ruling);
                }
            }

            return(Ruling.DontCare);
        }