public static TPropType ÖznitelikAl <TPropType>(this TemelVarlık varlık, string key, IGenelÖznitelikServisi genelÖznitelikServisi, int siteId = 0) { if (varlık == null) { throw new ArgumentNullException("varlık"); } string keyGroup = varlık.GetUnproxiedEntityType().Name; var props = genelÖznitelikServisi.VarlıkİçinÖznitelikleriAl(varlık.Id, keyGroup); if (props == null) { return(default(TPropType)); } props = props.Where(x => x.SiteId == siteId).ToList(); if (!props.Any()) { return(default(TPropType)); } var prop = props.FirstOrDefault(ga => ga.Key.Equals(key, StringComparison.InvariantCultureIgnoreCase)); if (prop == null || string.IsNullOrEmpty(prop.Value)) { return(default(TPropType)); } return(GenelYardımcı.To <TPropType>(prop.Value)); }
public virtual void ÖznitelikKaydet <TPropType>(TemelVarlık varlık, string key, TPropType değer, int siteId = 0) { if (varlık == null) { throw new ArgumentNullException("varlık"); } if (key == null) { throw new ArgumentNullException("key"); } string keyGroup = varlık.GetUnproxiedEntityType().Name; var props = VarlıkİçinÖznitelikleriAl(varlık.Id, keyGroup) .Where(x => x.SiteId == siteId) .ToList(); var prop = props.FirstOrDefault(ga => ga.Key.Equals(key, StringComparison.InvariantCultureIgnoreCase)); var değerStr = GenelYardımcı.To <string>(değer); if (prop != null) { if (string.IsNullOrWhiteSpace(değerStr)) { //sil ÖznitelikSil(prop); } else { //güncelle prop.Value = değerStr; ÖznitelikGüncelle(prop); } } else { if (!string.IsNullOrWhiteSpace(değerStr)) { //insert prop = new GenelÖznitelik { VarlıkId = varlık.Id, Key = key, KeyGroup = keyGroup, Value = değerStr, SiteId = siteId, }; ÖznitelikEkle(prop); } } }