@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