Yazılım Geliştirici Yetiştirme Kampı 8. Gün C# Entity Framework

Поділитися
Вставка
  • Опубліковано 6 жов 2024
  • Discord : / discord
    Yazılım Geliştirici Yetiştirme Kampı 8. Gün C# Entity Framework
    Tam 2 ay boyunca sürecek ve ücretsiz olarak yapacağım Yazılım Geliştirici Yetiştirme Kampı programından en büyük verimi almanız için şimdiden önlemler almanızı ve hazırlık yapmanızı önereceğim tüyoları bu sayfada toplamaya karar verdim.
    Bu projeye gösterilen ilginin büyüklüğünü açıkçası beklemiyordum. (Şimdiden 30.000 kaydı geçtik.) Bu da demek oluyor ki muhtemelen Türkiye'de bugüne kadar yapılmış en kalabalık profesyonel yazılım geliştirme eğitimini yapacağız.
    Öğrencilerimin heyecanı beni en az onlar kadar motive ediyor. Ben ve ekibim çok iyi hazırlanıyoruz.
    ➤Yazılım Geliştirici Yetiştirme Kampı ücretsiz mi olacak? Evet, ücretsiz olacak.
    ➤Yazılım Geliştirici Yetiştirme Kampı nerede yayınlanacak? Kampımız canlı olarak yayınlanacak. Canlı yayın UA-cam kanalımda gerçekleşecek. Yayın saatini kaçırmamak için kanala abone olup hatırlatıcı eklemeyi unutmayınız. Canlı yayın sonrası videolar, ödevler ve testler ise Kodlama.io 'da ( www.kodlama.io/ ) yayınlanacak.
    ➤Yazılım Geliştirici Yetiştirme Kampının canlı yayın tarihi ne zaman ve saat kaçta başlayacak? Bir canlı yayın süresi ne kadar olacak? Canlı yayın hangi günlerde yapılacak?
    Canlı yayın günleri : Çarşamba ve Cumartesi (İlk canlı ders tarihini takip eden her haftanın Çarşamba ve Cumartesi günlerinde devam edecek)
    8. canlı yayın tarihi : 3 Şubat Çarşamba
    Canlı yayın saati : 21.00
    Canlı yayın süresi : 3 ders saati
    ➤Yazılım Geliştirici Yetiştirme Kamp programı ne kadar sürecek? Ücretsiz olarak vereceğim bu kamp 2 ay boyunca sürecek.
    ➤Kamp programında neler olacak? Toplam 16 gün/modül/canlı ders yapacağımız kamp programını Kodlama.io 'da detaylı olarak paylaştım. Detaylı kamp programına ulaşmak için bağlantıyı tıklayınız. ( www.kodlama.io/ )
    Kamp Programı
    8. Gün/Modül/Canlı Ders
    C# ile veri tabanı programlama (Entity Framework)
    Atölye çalışmaları (Workshop)
    Ödevlerin verilmesi
    Quiz sistemine yönlendirme
    ➤Canlı yayın sonrası videolar, ödevler ve testler olacak mı? Olacak ise bunlara nasıl ulaşabilirim? Evet, canlı yayın sonrası videolar, ödevler ve testler olacak. Kodlama.io 'da Yazılım Geliştirici Yetiştirme Kampının içinde bulunan ders programınıza ekleyeceğiz. Canlı yayın sonrası videolar, ödevler ve testlere ulaşmak için bağlantıyı tıklayınız. ( www.kodlama.io/ )
    ➤Yazılım Geliştirici Yetiştirme Kampından en büyük verimi nasıl alabilirim? Kamp sırasında neler yapmamı önerirsiniz?
    1-İki ekranda takip etmeye çalışın. (Bu ekranlardan birinde beni izlerken diğerinde kod yazıp, soru cevap platformumuzdan destek alabilirsiniz. Yardımcı ekran tablet, monitör veya evdeki HDMI destekli TV olabilir.)
    2-İkinci ekran yoksa? (Bu durumda bilgisayar ekranınızı ikiye bölebilirsiniz. Windows + Sol Yön tuşuyla mevcut ekranı sola, Windows + sağ yön tuşu ikilisiyle de mevcut diğer ekranı sağa atabilirsiniz. Öncesinde deneyiniz.)
    3-Ne kurmalıyım? (Eğitimin ilk günü için bir şey kurmanız gerekmiyor. Online editör kullanacağız. Repl.it ( repl.it/ ) sitesinden bir hesap açmanız yeterlidir. İkinci gün itibariyle Visual Studio kullanacağız. Sizin için bir kurulum videosu hazırladım. ( bit.ly/35p2Qar )
    ➤Yazılım Geliştirici Yetiştirme Kampından en büyük verimi nasıl alabilirim? Yazılım Geliştirici Yetiştirme Kampına katılmadan önce neler yapmamı önerirsiniz?
    Herhangi bir programlama bilgisi tecrübeniz olması gerekmiyor. Fakat temel programlama tecrübenizin olması büyük avantaj sağlar. Bu yüzden aşağıdaki bana ait yine ücretsiz kaynaklara erişiminiz önemlidir.
    1-Eğer programlama tecrübeniz ve bilginiz hiç yok veya çok az ise tıklayınız, ( www.kodlama.io... )
    2-Yukarıdaki dersi bitirdim ama biraz daha örneğe ihtiyacım var diyorsanız tıklayınız, ( bit.ly/38vpvne )
    3-Temel seviyeden daha iyi durumdayım diyorsanız tıklayınız, ( bit.ly/2K1V6DF )
    4-İleri seviye olmak üzereyim diyorsanız tıklayınız, ( bit.ly/35x0Mxc )

КОМЕНТАРІ • 84

  • @BegumceZihin
    @BegumceZihin Рік тому +7

    1:31:20 'de sıkıldığını söyleyen arkadaşa engin hocadan farklı olarak, mesleği bırakmak yerine başka yapıcı bir önerim var; videoları en baştan anlayarak dinle. anlayamadığında durdur ve soru sor. anlamadan izlemeye devam edince çok sıkıcı oluyor. kendi deneyimimdir.

    • @emrebaspnar8530
      @emrebaspnar8530 4 місяці тому

      sıkılıyorsa yazılımcı olamaz . Sevmeden Yapılacak iş değildir

  • @Yash42189
    @Yash42189 Рік тому +2

    Expressionu anlatmak isterim anladığım kadarıyla... Türkçem muhteşem değil, o yüzden bare with me.
    Bakın arkadaşlar, Action, Func, Predicate dediğimiz şeyler delegatelerdir.
    Action - 16ya kadar input alıp, hiç bir şey geri dönmeyen, sadece bir şey yapan(action) delegatedir
    Func - 16ya kadar input alıp, input return eden delegatedir(önce olduğu kadar input type, sonda output/return type yazılır Func gibi)
    Predicate - sadece bir input alan ve outputu olan delegatedir.
    Tamam, o zaman şu delegate nedir?
    Programlamada first class citizen anlayışı vardır. First class citizenleri bir metota argument gibi vere, metottan return edip geri döne, bir değişen tanımlatıla bilir. Yani tüm hakları olan bir obje. Şimdi C# gibi bazı dillerde metotlar bile first class citizendir. Yani metotu return ede, parametre gibi başka bir metota ata, değişene assign ede biliyoruz. Normalde bunu yapmamız mümkün değil:
    int Add(a, b)
    {
    return a + b;
    }
    gibi bir metotumuz olsun. Normalde var x = Add dememiz mümkün değil. Metotu sadece çağırıp, ondan bir value alırız. var x = Add(1,2) deriz. Amma ben tüm bu metotu çağırmadan(yani () kullanmadan), metotun skeletonunu başka bir metota göndermek isteye bilirim. Ki sonra diğer metotun içinde farklı parametrelerle çağırayım.
    Mesela, Multiply metotu yazıp, a*n-i a + a + a.... + a şeklinde hesaplamak istiyorum. Zaten a + a bende olduğu için, Add metotunu Multiplyın içine atmak istiyorum. İşte bunu yapmam için gerekli yapıya delegate denir. Delegate bir metotu işaretleyen, ona referans dura bilen bir yapıdır. Şöyle ki int delegate(a, b) AddFunc = Add diyorum. Artık dilediğim yerde AddFunc(x, y) değerek, bu metotu çağıra bilirim.
    int Multiply(AddFunc, n, x)
    {
    for(int N < x)
    AddFunc(n, n);
    } yani x defa Add metotunu n parametresi ile çağıra bilirim. İşte Func AddFunc = Add onun aynısı olur. Çünki Func kendisi bir special delegatetir. Yani biz GetAll metotumuza tüm bir metot göndermekteyiz.
    TO BE CONTİNUED

  • @DecorousUmut
    @DecorousUmut 3 роки тому +28

    Hocam çok güzel ilerliyor her şey hayalimize destek çıktığınız için teşekkürler

    • @johntitor7966
      @johntitor7966 2 роки тому +2

      ne alemdesin

    • @mehmeteserofficial
      @mehmeteserofficial 2 роки тому

      Ne alemdesin

    • @DecorousUmut
      @DecorousUmut 2 роки тому +2

      @@mehmeteserofficial knk lisede staj yapıyordum mezun olunca staj yaptığım yerde çalışmaya devam ettim ve hala devam ediyorum ama c# üzerine değil genellikle web oyunları üzerine çalıştığımız için JavaScript üzerine projeler oluyor genel olarak hayat bok gibi :(

    • @Exee-01
      @Exee-01 Місяць тому

      peki şimdi ne alemdesin ?

  • @fatihoktay942
    @fatihoktay942 Рік тому +1

    Hocam gerçekten derslerinizi dinlerken heyecan alarak izliyorum Yazılımcı olamasam bile bu işi sevdirmeye sebep oldunuz tşkler...

  • @flakysob
    @flakysob Рік тому +2

    İlk izlediğimde tam oturmamıştı. Ancak şimdi başka bir proje için gerçekleştirdiğimde her şey yerine oturdu. Gerçekten çok teşekkür ederim. Bu yayın videoları olmasaydı işim zordu.

  • @abdullahkosten2742
    @abdullahkosten2742 3 роки тому +4

    Kodları çözümlemeden ziyade mantık oluşturması sebebiyle yaptığınız ders çok yararlı oldu......Teşekkürler

  • @codeboyy
    @codeboyy 3 роки тому +7

    Geç geliyorum, ama çok sağlam ilerliyorum :)

  • @mechtarin
    @mechtarin 3 роки тому +5

    hoca projesini sunar ve anlaşılan şu = şu ana kadar öğrendiğiniz her şeyi otomatik yapan sistem geliştirdik :D

  • @tgbaozkn
    @tgbaozkn 3 місяці тому +1

    Generic Constraint çalışırken bu bilgileri de edindim :
    where T : struct: Tür bağımsızı bir değer tipi olmalıdır.
    where T : class: Tür bağımsızı bir referans tipi olmalıdır.
    where T : new(): Tür bağımsızı parametresiz bir kurucuya sahip olmalıdır.
    where T : : Tür bağımsızı belirtilen temel sınıf olmalı veya ondan türemelidir.
    where T : : Tür bağımsızı belirtilen arayüzü uygulamalıdır.

  • @korayhalat574
    @korayhalat574 3 роки тому +7

    Nefis dersti teşekürler hocam. Emeğinize sağlık.Takipcinizim...

  • @enesayyildiz2132
    @enesayyildiz2132 3 роки тому +27

    dayan bıragma gendini

    • @heisenberg9699
      @heisenberg9699 3 роки тому +2

      @Koa Nehemiah nav klik on dı batın ent get skemmed

  • @henimex
    @henimex 3 роки тому +1

    bu kurs oncesinde sonrasında cok egitim izledim ama EĞİTMEN olmak bambaşka birşey hele kodlama gibi karışık bir konuda bildiklerini aktarabilmek apayrı bi yetenek. Engin hocayı bu konuda tek geçerim. Net

  • @zeynepyldz8221
    @zeynepyldz8221 3 роки тому +2

    Projeniz için tebrik ederim hocam hep böyle bi sistem var mı diye düşünürdüm gercege donusmus halini gormek vay be dedirtti

  • @oasoftware4330
    @oasoftware4330 2 роки тому +2

    Dersleriniz gerçekten çok faydalı, minnettarım hocam!

  • @baki3555
    @baki3555 3 роки тому +1

    Bilginin zekatını vermek vardır ya. Siz ve ekip arkadaşları bunu fazlasıyla yapıyorsunuz. Eğitimlerinizle zaten büyük fayda sağlıyordunuz. DevArchitecture ile bunu taçlandırmışsınız. Size ve ekip arkadaşlarınıza çok teşekkür ediyorum.

  • @kortappakortapa6963
    @kortappakortapa6963 3 роки тому +23

    Oglum diren. Diren oglum..

  • @suleymanakilli1713
    @suleymanakilli1713 3 роки тому +2

    resmen sanat yapıyorsunuz hocam bol şans

  • @fdqms
    @fdqms Рік тому +1

    Bu videoda mı bir önceki videoda mı birisi sıkılıyorum demiş. Bilen birisi de sıkılabiliyor ondan dolayı 1,5'da izleyebilirsiniz. Bazen bir konuşma giriyor araya ondan dolayı. Biraz ilerledikten sonra bu yorumu yaptığım için hangi video bilmiyorum :)

  • @quickrhythm
    @quickrhythm 3 роки тому +5

    28:00 Generic Repository Design Pattern

  • @michaelscott00
    @michaelscott00 3 роки тому +1

    garip olan şey şu onlarca Engin Demiroğ videosu izlememe rağmen UA-cam bana sadece boş içerikler öneriyor. Yani akışımız izlediğimiz şeye göre değil izletmek istedikleri şeye göre şekilleniyor...

  • @FURKAN41.
    @FURKAN41. Рік тому

    çok teşekkür ederim hocam emekleriniz için artık bazı şeyler kafamda oturuyor.

  • @ZakirFerhad
    @ZakirFerhad 2 роки тому +1

    Videoyu tamamen izleyip hiçbir şey anlamayan arkadaşlara sesleniyorum. Dersi harfi harfine yaptıktan sonra bir gün sadece kodlarınıza bakın, kendiniz anlamaya çalışın. Sonra dersi tekrar izleyin.

  • @xeyalteyyubov1175
    @xeyalteyyubov1175 3 роки тому +1

    Harikaydi teşekkürler hocam.

  • @muhtarbey8457
    @muhtarbey8457 3 роки тому +1

    1:26:00 .NET Core sürümünü BİLMEYENLER için : windows+r tuşlayın. Açılan çalıştır sekmesine cmd yazın. dotnet --version yazarak bilgisayarınızda kurulu .NET versiyonunu öğrenebilirsiniz.

    • @aknc81
      @aknc81 3 роки тому +1

      5.0.401 çıktı. Ancak ben yeni sürümü falan yüklememiştim. Garip.

    • @aknc81
      @aknc81 3 роки тому

      Teşekkürler bu arada.

  • @mertbenli5282
    @mertbenli5282 8 місяців тому

    northwind değerleri çıkmıyordu. Aşağıdaki iki adımı yaptım.
    1.refresh dediktek sonra northwind'i gelmeyen arkadaslar SQL server da new query demeden önce kendimiz bir adet Add New Database eklememiz gerekiyor sonra onun üzerinde new query demeniz yeterli
    2.NuGet en güncel yaptım.

  • @emrebaspnar8530
    @emrebaspnar8530 4 місяці тому

    Hocam bi önceki derste SingleOrDefault() yerine First() kullansak nasıl olur ? Sonuçta ikisi de bir veriyi getiriyor ve id ye göre getiriyor. Id tek olduğuna göre ilk bulduğu zaten tek değil midir ? Yoksa başka bi mantığı var mıdır ?

  • @emreaka3965
    @emreaka3965 3 роки тому +1

    Çok güzel.

  • @tgbaozkn
    @tgbaozkn 3 місяці тому

    hocam macte şunu entegre etmek niye bu kadar çetrefilli kod çalıştı ama vakit kaybediyorum ...

  • @WaffenVerband
    @WaffenVerband 3 роки тому

    Çok teşekkürler hocam iyiki varsınız

  • @webmobile21
    @webmobile21 2 роки тому

    sayın hocam mac kullanıcıları ne yapacak, postgresql kurdum nortwind üzerinden bilgi de çekiyorum ancak visual studio ile nasıl entegre çalıştırabileceğimi bulamadım

  • @mehmetbartu7795
    @mehmetbartu7795 3 роки тому +2

    db kurulumu nu mac deki arkadaslar nasil yapicak hocam onunla alakali bir kaynakvarmi

    • @mehmetbartu7795
      @mehmetbartu7795 3 роки тому +2

      kendi kendimi yanitliyorum ama ben arastirdim
      mac icin sqlpro adinda bir sql uygulamasi var onu indirebilirsiniz

    • @ertugrulcelik173
      @ertugrulcelik173 3 роки тому

      @@mehmetbartu7795 indirip kurunca vs 2019 ile entegre şekilde çalıştırılabiliyor mu? Siz nasıl kullanıyorsunuz?

  • @muhammedfurkangerem8025
    @muhammedfurkangerem8025 29 днів тому

    Benim gibi sonradan izleyen arkadaşlar için söylüyorum, Northwind direkt database olarak gelmiyor, çalıştırdığınız Script büyük bir ihtimalle verileri "master" db'sine attı. Ayrıca, dotnet sürümünüz neyse NuGet'ten o sürümü indirin. Dotnet sürümüm 8'ken 3.1.1'i indirdiğimde hata aldım, versiyon hatası bilginize.

  • @nazmmarul1398
    @nazmmarul1398 3 роки тому +2

    Hocam çok kaliteli bir dersti

  • @cagrserbetcioglu3832
    @cagrserbetcioglu3832 3 роки тому +1

    Arkadaşlar 1:21:33 de hocanın aradığı şey bende çıkmıyor. İşi bilen birisi yardımcı olursa çok sevinirim

  • @bilgekagan2215
    @bilgekagan2215 3 роки тому +3

    Merhaba bir sorum olacakta. Ya ben şimdi bu kampa başladım. 7. Gündeyim fakat anlamadığım oturtamadığım yerler oluyor ve zaman ayırmam gerekiyor. Biraz araştırdım, kampa katılım sağlayanlara göre yaşım biraz daha küçük okullar falan da oluyor uzaktan eğitim olduğu için zaman anlamında sıkıntı yaşıyorum yarıyıl tatilinden sonra da daha fazla yaşayacağım bu sıkıntıyı programa ara verip, internette gördüğüm başlangıçta html css dillerini öğrenin başlangıçta kolayla başlamak daha iyi olacaktır gibi yorumlarda aldım. Ama bu kampa ara versem c# ı bırak başka dile geç diller arasında dolaşmak istemiyorum. Kampa ara vermek istemiyorum. Bir şeyler öğrenmek ve githuba, cv me koyabileceğim yeni şeyler yapmak istiyorum. Tavsiyeleriniz neler

    • @abdullahfurkanbaris3081
      @abdullahfurkanbaris3081 3 роки тому +2

      Bence eğitime ara verme dönüşü zor olabilir. Hazır başlamışken bitir derim. Zorlanman da çok normal. Bunu hepimiz yaşadık, yaşıyoruz. Araştırma konusunda haklısın. Bu videoların dışında araştırmalar yapmamız gerekiyor. Githubtan projeleri incelememiz gerekiyor. Takıldığın yerler olursa discordtan soru sorabilirsin hatta bana bile özelden sorabilirsin yardımcı olurum

    • @bilgekagan2215
      @bilgekagan2215 3 роки тому +2

      Saolun teşekkürler yardımcı olduğunuz için

    • @bilgekagan2215
      @bilgekagan2215 3 роки тому +2

      @@fundaordek4406 saolun bende aynı şekilde düşündüğüm için şimdiden başlamak istedim. E bazen anlamakta zorlanıyorum ama sıkılmıyorum seviyorum uğraşmayı saolun tavsiyeleriniz için. Pes etmek yok

    • @aknc81
      @aknc81 3 роки тому

      @@bilgekagan2215 Devam edebildin mi? Bence arkadaşlar fazla zorlamış. Ben de tam bu derste bıraktım kampla beraber ilerlemeyi. Bir süre sonra 3. dersten başladım ve şu anda haftada 1 ders şeklinde daha sağlam ilerliyorum. İyi ki de kendimi zorlayıp kampla beraber ilerlemeye çalışmamışım. Yoksa bir çok mevzu havada kalacaktı benim için.

  • @filizkahrman2643
    @filizkahrman2643 3 роки тому +1

    Genel olarak dersi anladım fakat şuan tekrar yaparken Expression un mantığını tam kavrayamadım yardımcı olabilecek biri var mı acaba

    • @beratd992
      @beratd992 3 роки тому

      discord hesabınız varsa anlatabilirim isterseniz

    • @thefirstofficer4717
      @thefirstofficer4717 2 роки тому

      ben de aynı soruyu kendime sordum. Anladıysanız bana da ufak bir özetle bilgi verir misiniz lütfen?

  • @efsaneby6443
    @efsaneby6443 2 роки тому

    2:21 de EfProductDal kizardi

  • @ibrahimhalilsakar5861
    @ibrahimhalilsakar5861 3 роки тому

    Engin hocam mükemmelsiniz (Bin kere like atabilsem atacam)

  • @gizem8167
    @gizem8167 2 роки тому

    sql indirilirken hata alıyorum sizce neden

  • @nihatbeyi
    @nihatbeyi 2 роки тому

    mükemmeldi..

  • @sergenorhann9533
    @sergenorhann9533 3 роки тому

    👍😊

  • @bencet486
    @bencet486 3 роки тому

  • @sukrusonar4613
    @sukrusonar4613 3 роки тому

    Hocam bir sorum var soracak kimse bulamadım o yüzden size sormak istedim. Ben entity framework' ün migration araçını kullanmak istiyorum. İnternetten baktım fakat property ler için dataannoation kullanılmış. Acaba dışarıdan bir validasyon ile ef migration kullanılabilir mi. Mesela fluent validation ile migration kullanabilir miyiz. Umarım anlatabilmişimdir. Şimdiden teşekkür ederim.

    • @atakangunay1190
      @atakangunay1190 3 роки тому

      Merhaba cevaba ulaşamadıysanız anladığım kadarıyla yardımcı olmaya çalışayım. öncelikle fluen apiyi data annotationa güvenmedğimiz ve single responsibilty'i çiğnememek amacıyla kullanırız migration için böle bir gereklilik yok diyelim ki property üzerinde değişiklik yaptık yada annotatin veya fluent ile bir şart ekledik 'requiered' gibi. yapman gereken tek şey entityframeworkcore.tool paketini nuget üzerinden kurmak ve package mange console üzerinde şunu yazmak (add- migration- istediğimad) migration oluşacaktır ardından update-database yaz tabi katmanlı mimari kullanıyorsan dataacces katmanına gelip sağ tıklayıp set startup project olarak işaretlemeyi unutma kolay gelsin.

  • @merveerdemli3239
    @merveerdemli3239 3 роки тому

    çok kalp

  • @gurbeturun6746
    @gurbeturun6746 3 роки тому

    Güzel.

  • @bandalic
    @bandalic 4 місяці тому

    3 yıldan sonra ben 8 kurmuş oldum :D

  •  3 роки тому +1

    +1

  • @lta-xlr2009
    @lta-xlr2009 Рік тому +1

    36:35 2:24:37

    • @lta-xlr2009
      @lta-xlr2009 8 місяців тому +1

      en sonunda dün 6 ay önce aldığım hatadan dolayı açılamayan projemi yeniden yazdım

  • @robotkasifi7100
    @robotkasifi7100 3 роки тому

    Geride kaldigim son ders

  • @mertekizler6435
    @mertekizler6435 3 роки тому

    26.14

  • @OyunMagaras14
    @OyunMagaras14 5 місяців тому

    1:26:00

  • @mertekizler6435
    @mertekizler6435 3 роки тому

    9.gün

  • @bet.y
    @bet.y 11 місяців тому

    2:09:17

  • @reena9642
    @reena9642 2 роки тому

    Kampı benim gibi sonradan izleyen var mı ? :')

    • @ilkinsuleymanov3604
      @ilkinsuleymanov3604 7 місяців тому +1

      merhaba , ne durumdasibiz simdi?

    • @reena9642
      @reena9642 7 місяців тому

      @@ilkinsuleymanov3604 bir şirkette stajyer iken başlamıştım. Şu an kendimi çok daha fazla geliştirdim ama bu kurs gerçekten çok iyiydi. Olayı tam anlamıyla kavramama yardımcı oldu

    • @reena9642
      @reena9642 6 місяців тому

      @@ilkinsuleymanov3604 Stajyerken başladığım kamp, beni çok farklı konumlara kadar götürdü. Çok başarılı bir kamptı kesinlikle sonuna kadar izle. Şu an güzel bir maaşla backend developer olarak çalışmaktayım.

  • @bet.y
    @bet.y 11 місяців тому

    1:30:52

  • @hilalkmr
    @hilalkmr 6 місяців тому

    1:37:00