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); } } }
public virtual void ÖznitelikEkle(GenelÖznitelik öznitelik) { if (öznitelik == null) { throw new ArgumentNullException("öznitelik"); } _genelÖznitelikDeposu.Ekle(öznitelik); //önbellek _önbelekYönetici.KalıpİleSil(GENELOZNITELIK_PATTERN_KEY); //olay bildirimleri _olayYayınlayıcı.OlayEklendi(öznitelik); }