예제 #1
0
 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);
 }
예제 #2
0
        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ı);
        }
예제 #3
0
        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ı);
                    }
                }
            }
        }