Skip to content

kadernur/ReCapProject

Repository files navigation

Araba kiralama sistemi.

cAR

@ReCapProject projem benim gelişimimle beraber gelişmekte olan güzel bir proje. 👍 Bu projede katmanlı mimari yapısını kullanmaya çalıştım ve projeyi oluştururken SOLID prensiplerine uygun kodlar yazmaya çalıştım ve çalışmaya devam edeceğim. Bu projede "CODE RAFACTORİNG (Kodları iyileştirme) " yaparak ilerleme sağlayacağım. 💥

🔊💥 GÜNCELLEME(20.02.2021)

🟣 Projeye Core katmanı eklendi.
🟣 DTOs klasörü eklendi.
🟣 Code refactoring yaparak IEntitiyRepository,IEntity classları Core katmanına yerleştirildi.
🟣 IEntityRepositoryBase class'ı oluşturuldu.
🟣 Car,Color ve Brand nesnelerinin Crud operasyonları eklendi.program.cs 'de test edildi.

🔊💥 GÜNCELLEME(22.02.2021)

🟤 Projeye Result yaoıları eklendi.
🟤 Magic strings yapısı kullanıldı.
🟤 Business classında code refactoring yapıldı. Abstract ve Concrete sınıflarındaki class'lar generic yapısıyla değiştirildi.

🔊💥 GÜNCELLEME(01.03.2021)

🔵 Projeye WebAPI katmanı eklendi.Bu katmanda Business katmanındaki tüm servislerin API karşılğı yazılıp postman test aracında test edildi.

🔊💥 GÜNCELLEME(03.03.2021)

⚪ Projeye Autofac desteği eklendi.
⚪FluentValidation desteği eklendi.
⚪Aop desteği eklendi(ValidationAspect).

🔊💥 GÜNCELLEME(19.03.2021)

🟣 Cache, Transaction ve Performance aspectlerini eklendi
🟣JWT entegrasyonu yapıldı
🟣CarImages (Araba Resimleri) tablosu oluşturuldu.
🟣Api üzerinden arabaya resim ekleyecek sistem yazıldı.

İçindekiler

BUSİNESS KATMANI

Bu katmanda iş kodlarımı yazdım.

🟣 CORE KATMANI

Evrensel kodlarımızı kullandığımız katmanımızdır.
Core katmanı diğer katmanları referans almaz.

  • DataAceess 📂

    • EntityFramework 📂
      • EfEntityRepository.cs 👉 Burda kodları evrensel hale getirip farklı sistemler'e implemente etmemi sağlar.
    • IEntityRepository 👉 Data Access katmanındaki bu class'ı evrensel olabilmesi için Core katmanına taşıdım.
  • Entities 📂
    + IDto.cs
    + IEntity.cs 👉 Entites katmanından buraya taşıdım.

  • 🟤Utilities 📂 Restful(JSON) sürecinin gereksinimlerini içerir. Yani Request(istek) ve Response(yanıt) sürecini yönetebilmek için ortam hazırlar.

    • 🟤 Results 📂

      • 🟤Abstract
        • IDataResult.cs 👉 bu interface message ,success yanında data da içermesini istenen işlemlerde kullanılır.
        • IResult.cs 👉 void tipinde olan veriler için success ve message bilgilerini içerir
    • 🟤Concrete :poin_right:Result türleri için işlemin başarılı ve başarısız olma durumuna göre geçerli classları içeirir.

      • DataResult.cs
      • ErrorDataResult.cs
      • SuccessDataResult.cs
      • Result.cs
      • SuccessResult.cs
      • ErrorResult.cs
  • ⚪ Aspects 📂 AOP yapısı kullanıldı.

  • ⚪ CrossCuttingConcerns 📂
    Validation yapısını ValidationTool altında genelleştirdim.

DATA ACCESS KATMANI

Veriye ulaşmak için yazdığım katman kısacası SQL kodlarımın mevcut olduğu katman

  • Abstract:open_file_folder: :(İlgili soyut Sınıflarımı içerir.)

    • ICarDal.cs
    • IBrandDal.cs
    • IColorDal.cs
    • IEntityRepository.cs ❌ 👉 Bu class'ım bu klasördeki var olan diğer class'larımın kullanacağı Generic yapısını oluşturur.
  • Concrete 📂 : (Somut sınıflarımı içerir.)

    • EntityFrameWork:open_file_folder: :point_right: Bu klasör çalışmak istediğim veri tabanına bağlantı kurduğum ve istediğim verileri çekmemi sağlayan yapıları içeren bir klasördür. yani veri tabanı ile kendi class'larımı ilişkilendiğim classtır.
    • EfCarDal.cs
    • EfBrandDal.cs
    • EfColorDal.cs
    • ReCapDatabeseContext.cs 👉 Bu class'ım veri tabanına bağlanmamı sağlayan kodları içerir ve bu klasördeki diğer class'larımın veri tabanına erişimin sağlar.
  • InMemoryDal 👉 bu klasör veri tabanı kullanmadan bellekte olan verileri kullandığım klasördür.

    • InMemoryCarDal.cs

ENTİTİES

Bu katman yardımcı katmanımdır.

🔵 WebAPI

Sadece veri transferi için kullanılır.RestFull mimarisini destekleyen katmandır. bu katmandaki Controller gelen bütün istekleri karşılar.(RESFUL: Http protokolü:Bir kaynağa ulaşmak için izlediğimiz yol diyebiliriz.)

CAR TABLOSU

CarId BrandId ColorId ModelYear DailyPrice Description
1 1 2 2012 100 ManuelBenzin
2 1 3 2015 150 Otomotik Dizel
3 2 1 2017 200 Otomotik Hybrid
4 3 3 2014 125 Manuel Dizel
NULL NULL NULL NULL NULL NULL

BRAND TABLOSU

BranId BrandName
1 Tesla
2 BMw
3 Renault
NULL NULL

COLOR TABLOSU

ColorId ColorName
1 Beyaz
2 Siyah
3 Mavi
4 Gri
5
NULL NULL

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published