InvoiceDiscount, .NET Core 7 ile geliştirilen, faturada müşteri indirimlerini customer olarak hesaplamak için oluşturulan bir projedir. Bu projede SOLID prensiplerine dikkat edilmiştir. Ayrıca FluentValidation kütüphanesi kullanılmış ve Moq ile birlikte birim testleri gerçekleştirilmiştir.Projede herhangi bir database kullanılmamıştır.Ancak istenildiğinde genişletilebilir.Ayrıca proje isteklerinde talep edilen indirim türleride çeşitlendirilmesi ve implement edilmesi basit bir şekilde yapılabilir.
Projede kullanılan mimari CLEAN Architecture uygulanıp. Müşteri tipine göre indirim hesaplama stratejileri Strateji Tasarım Desenine (Strategy Design Pattern) ile implemente edilmiştir.
InvoiceDiscount.API (Rest Servis Katmanı) InvoiceDiscount.Application:(Interface- DTO - Strategies bulunduğu katman) InvoiceDiscount.Domain(Entites Katmanı) InvoiceDiscount.Test(Unıt Testlerimiz) InvoiceDiscount.CLI: Kullanıcı girişi ve indirim hesaplamaları için konsol uygulaması bu bölümde bulunmaktadır. Kullanıcı girişi yapıldıktan sonra, indirim hesaplamaları için API ile iletişime geçilir.
- .NET Core 7
- Bir IDE (Visual Studio, Rider veya Visual Studio Code tavsiye edilir)
-
Repo'yu Klonlama:
- Projeyi yerel makinanıza klonlayın:
git clone https://github.com/erolakdogan/InvoiceDiscount.git
- Projeyi yerel makinanıza klonlayın:
-
Bağımlılıkları Yükleme:
- Proje dizinine gidin ve bağımlılıkları yükleyin:
cd InvoiceDiscount dotnet restore
- Proje dizinine gidin ve bağımlılıkları yükleyin:
-
API'yi Çalıştırma:
- API projenizin bulunduğu dizine gidin:
cd InvoiceDiscount.API dotnet run
- API projenizin bulunduğu dizine gidin:
-
CLI Uygulamasını Çalıştırma:
- CLI projenizin bulunduğu dizine gidin:
cd InvoiceDiscount.CLI dotnet run
- CLI projenizin bulunduğu dizine gidin:
-
Testlerin Çalıştırılması:
- Test projenizin bulunduğu dizinde, testleri çalıştırmak için:
cd InvoiceDiscount.Test dotnet test
- Test projenizin bulunduğu dizinde, testleri çalıştırmak için: