public virtual void UrlKaydınıSil(UrlKaydı urlKaydı) { if (urlKaydı == null) { throw new ArgumentNullException("urlKaydı"); } _urlDepo.Sil(urlKaydı); _önbellekYönetici.KalıpİleSil(URLKAYDI_PATTERN_KEY); }
protected ÖnbellekİçinUrlKaydı Map(UrlKaydı kayıt) { if (kayıt == null) { throw new ArgumentNullException("kayıt"); } var önbellekİçinUrlKaydı = new ÖnbellekİçinUrlKaydı { Id = kayıt.Id, VarlıkId = kayıt.VarlıkId, VarlıkAdı = kayıt.VarlıkAdı, Slug = kayıt.Slug, Aktif = kayıt.Aktif }; return(önbellekİçinUrlKaydı); }
public virtual void SlugKaydet <T>(T varlık, string slug) where T : TemelVarlık, ISlugDestekli { if (varlık == null) { throw new ArgumentNullException("varlık"); } int varlıkId = varlık.Id; string varlıkAdı = typeof(T).Name; var sorgu = from ur in _urlDepo.Tablo where ur.VarlıkId == varlıkId && ur.VarlıkAdı == varlıkAdı orderby ur.Id descending select ur; var tümUrlKayıtları = sorgu.ToList(); var aktifUrlKaydı = tümUrlKayıtları.FirstOrDefault(x => x.Aktif); if (aktifUrlKaydı == null && !string.IsNullOrWhiteSpace(slug)) { var aktifOlmayanÖzelleştirilmişSlug = tümUrlKayıtları .FirstOrDefault(x => x.Slug.Equals(slug, StringComparison.InvariantCultureIgnoreCase) && !x.Aktif); if (aktifOlmayanÖzelleştirilmişSlug != null) { aktifOlmayanÖzelleştirilmişSlug.Aktif = true; UrlKaydıGüncelle(aktifOlmayanÖzelleştirilmişSlug); } else { var urlKaydı = new UrlKaydı { VarlıkId = varlıkId, VarlıkAdı = varlıkAdı, Slug = slug, Aktif = true, }; UrlKaydıEkle(urlKaydı); } } if (aktifUrlKaydı != null && string.IsNullOrWhiteSpace(slug)) { aktifUrlKaydı.Aktif = false; UrlKaydıGüncelle(aktifUrlKaydı); } if (aktifUrlKaydı != null && !string.IsNullOrWhiteSpace(slug)) { if (!aktifUrlKaydı.Slug.Equals(slug, StringComparison.InvariantCultureIgnoreCase)) { var aktifOlmayanÖzelleştirilmişSlug = tümUrlKayıtları .FirstOrDefault(x => x.Slug.Equals(slug, StringComparison.InvariantCultureIgnoreCase) && !x.Aktif); if (aktifOlmayanÖzelleştirilmişSlug != null) { aktifOlmayanÖzelleştirilmişSlug.Aktif = true; UrlKaydıGüncelle(aktifOlmayanÖzelleştirilmişSlug); aktifUrlKaydı.Aktif = false; UrlKaydıGüncelle(aktifUrlKaydı); } else { var urlKaydı = new UrlKaydı { VarlıkId = varlıkId, VarlıkAdı = varlıkAdı, Slug = slug, Aktif = true, }; UrlKaydıEkle(urlKaydı); aktifUrlKaydı.Aktif = false; UrlKaydıGüncelle(aktifUrlKaydı); } } } }