/// <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); }
public Ruling Applicable(IResource resource, Session session, ActionType action, MemberTemplate member, object inquirer = null) { return(resource.Instance.Store.Instance.Applicable(session, action, member, inquirer)); }
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); }
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(); } } } }
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); }