Makalenin içine birden fazla fotogaleri çağırma

@if (Model.MakaleBaslik == "Referanslarımız")
    {
        @* Makale kontrolü mecburi değil. *@
        <div class="row" style="margin: 30px 0px;">
            @if (!String.IsNullOrEmpty(galeriler))
            {
                if (galeriler.Any(c => char.IsDigit(c)) && galeriler.Contains(","))
                {
                    @* string.Any( ...IsDigit()) string içinde numerik değer var mı diye kontrol edecek. .Contains(",") stirng içerisinde virgül var mı diye kontrol edecek. İki şart da sağlanmıyorsa kod bloğu çalışmayacak. *@
                    string[] bolum = galeriler.Split(','); @* Kullanıcının özel alanı yazdığı değeri virgüllerden böl. Geriye sadece yazdığı numaralar kalacak. *@
                    foreach (string diziden in bolum)
                    {
                        @* Dizinin içerisine atadağın her değeri, yani kullanıcının virgül ile yazdığı her IDyi döndür. *@
                        int galeriID = Convert.ToInt32(diziden); @* string olarak gelen numerik değerleri ID olarak kullanabilmek için integera çeviriyoruz. *@
                        Fotogaleri galerim = Partial.Fotogaleri(galeriID); @* Fotogaleri modelini getir. Adını bastırmak için gerekli olacak. *@
                        IEnumerable<FotogaleriResim> resimler = Partial.FotogaleriResimleri(galeriID); @* IDsi belirtilen Fotogalerinin tüm fotoğraflarını, Modelden, IEnumerable ile bir tablo dizisine alıyoruz. *@
                        int donguSayisi = Convert.ToInt32(Math.Ceiling(resimler.Count() / Convert.ToDouble(4))); @* Modeldeki satırları resimler.Count ile sayıp, dönen sayı ondalık olabileceği için ve ben her dört resimde bir boşluk vermek istediğimden dolayı 4 rakmını double a çevirerek birbirine bölüyorum. Çıkan sayı ondalık olabilir ve arda kalan resimler için de bir satır oluşturulması gerektiğinden dolayı Math.Ceiling ile gelen sayıyı yukarı yuvarlıyorum; ardından bu sayıyı yeniden doğal sayıya çevirip donguSayisi değişkeninin içerisine atıyorum. *@

                        <h3>@Partial.FotogaleriAdi(galerim.FotogaleriID, dilk)</h3> @* galerinin adını ilgili dilde yazdık. *@
                
                        for (int s = 0; s < donguSayisi; s = s + 1)
                        {
                            @* for döngüsü indeksi 0 dan başlayıp, donguSayisi değişkeninden küçük oluncaya kadar döncek *@
                            <div class="row"> @* her dört resimde bir boşluk için içer row attık *@
                                @foreach (FotogaleriResim FotoResim in resimler.Skip(s * 4).Take(4))
                                {
                                    @* FotogaleriResim kontrolörü adaptörü bir tablo dizisi ile IDsini aldığımız tüm resimleri çağırıyoruz. Ardından 4 atla 4 al modelini çalıştırmak için .Skip(s * 4), yani indeksin 4 ile çarpımına atla diyip, 4 tanesini aldırıyoruz. Böyle her rowdan sonra 4 atla 4 al modeli oluşuyor. gerisi standart fotogaleri işlemleri. *@
                                    <div class="col-lg-3 galeri">
                                        <a class="fancybox" href="/Resim/Fotogaleri/Buyuk/@(FotoResim.ResimLink)" data-fancybox-group="gallery-@(galeriID)" title="@Partial.FotogaleriResimAdi(FotoResim.ResimID, dilk)">
                                            <img class="img-responsive" src="/Resim/Fotogaleri/Kucuk/@(FotoResim.ResimLink)"
                                                 alt="@Partial.FotogaleriResimAdi(FotoResim.ResimID, dilk)" />
                                        </a>
                                        <p>@Partial.FotogaleriResimAdi(FotoResim.ResimID, dilk)</p>
                                    </div>
                                }
                            </div>
                        }
                    }
                }
            }
            
            Kodlayan: İlhami

© 2024, ASP.NET MVC CMS (Content Management System / İçerik Yönetim Sistemi). Tüm Hakları Saklıdır.