Hafta 1 Ödev

  • Projede veriler inmemory database tarafından sağlanmaktadır. /Context klasörü altında
  • Her bir sorgu için ayrı ayrı oluşturulan View Modelleri (/ViewModels klasörü altında) ile entitylerle maplemek için AutoMapper kullanılmıştır. /Common/Mapping klasörü altında
  • Validasyonlar için fluent validation kullanılmıştır. Her view model için ayrı ayrı validasyon düzenlenmiştir. /Validators klasörü altında
  • Operasyonlar command ve query olmak üzere ikiye ayrılmış, her bir işlem için ayrı ayrı yazılmıştır.

Hafta 2 Ödev

  • Projede CustomException Middleware kullanılmaktadır. /Middleware/CustomGlobalException.cs
  • Request,Response ve Global hatalar loglanarak db'de kaydedilmektedir. /Services/DbLogger
  • Extension method örnekleri /Common/Extensions altında yer almaktadır.
  • Kullanıcı tarafından kayıt sırasında girilen mail adresinin örnek senaryoda gmail, hotmail yada outlook olması talep edilmektedir. Bu kurala uygunluğu kontrol eden custom attribute /Utilities klasörü altında yer almaktadır.
  • Projede örnek senaryoya göre Movie işlemlerine ulaşabilmek için kayıt olunması gerekir. MovieController altına yapılacak her sorgu başlığında kayıt sırasında girilen email ve şifre basic olarak giriş yapılmalıdır. Bunu kontrol eden attribute Utilities/CustomAuthAttribute olarak yer almaktadır.

Hafta 3 Ödev

Patikadev yapısını düşünerek bir db oluşturuldu

  • eğitimler, öğrenciler,katılımcılar,eğitmenler,asistanlar, eğitimde öğrencilerin yoklamalarının ve başarı durumlarının tutulduğu tablolar içeriyor. veritipleri ve ilişkiler belirtildi.
  • öğrenci yoklaması girildiğinde. yoklama durumuna göre başarı durumunu hafta bazlı olarak güncelleyin.(Örn: eğitim 7 hafta olsun. ilk iki hafta derslere katıldı ise başarı oranı 2/7 nin % olarak karşılığı yazılacak trigger hazırlandı.)
  • öğrencileri eğitimlere ekleyen bir procedure yazıldı. öğrenci belirtilen eğitim tarihinde herhangi başka bir eğitime kayıtlı olamaz.
  • eğitim bazlı öğrencileri listeleyen view yazıldı.

Hafta 4 Ödev

  • Kullanıcı işlemleri için Asp.NET Core Identity altyapısı kullanıldı.
  • Api de yetkilendirme işlemleri için JWT kullanıldı. Movie Controller içerisindeki actionlara erişmek için token kullanılmalıdır.
  • Movie Controller içerisinde her response da header a verinin oluşturulma/getirilme tarihi saati yazan result filter oluşturuldu.
  • Rol bazlı yapı tanımlandı. Create,Delete,Update işlemleri yalnızca admin tarafından gerçekleştirilebilir.

Hafta 5 Ödev

  • Tek bir endpoint ten arama, filtreleme ve sıralama işlemlerini yapılan generic method yazıldı. GetMoviesbyFilter Actionı ile işlemler yapılabilir. (/Common/Extensions/FilterDataExtension.cs )
  • In memorycache ve response cache kullanımları yapıldı. (GetMoviesbyFilter - Response Cache / GetMoviebyId - Memory Cache)
  • Sorgu adedi 100'ü geçtiğinde distributed cache olarak redis e yazan ve okuyan bir cache kullanıldı. (GetMovies)