Başlarken

Çok katmanlı mimari örneği olan bu proje başlıca Business,DataAccess,Core,Entities ve WebAPI katmanlarından oluşmaktadır. Bu proje mail servisinden gelen maillerin; tümünü görüntüleme, okunmamış mailleri görüntüleme, belirtilen tarih aralığındaki mailleri görüntüleme, belirtilen adet kadar mail görüntüleme işlemlerini gerçekleştirir. Opsiyonel olarak veritabanına kaydetme ve silme işlemleri de gerçekleştirilir.

Veritabanı Etkinleştirme

Microsoft Sql Server

script.sql içinde 7. ve 9. satırda bulunan dosya yolu kullanıcının bilgisayarına göre düzenlenmelidir. Bu işlemden sonra script.sql dosyası mevcut veritabanı üzerinde çalıştırılmalıdır (SQLServer). Eğer aynı isimde veritabanı varsa script içinde değişiklik yapılmalıdır. Veritabanı ismi veya sunucu ismi farklıysa DataAccess/Concrete/EntityFramework/TSoftMailProjectContext.cs dosyasındaki bağlantı adresi buna göre değiştirilmelidir.

PostgreSql

'postgreScript' dosyası mevcut veritabanı üzerinde çalıştırılmalıdır. Eğer aynı isimde veritabanı varsa script içinde değişiklik yapılmalıdır. Veritabanı ismi veya sunucu ismi farklıysa DataAccess/Concrete/EntityFramework/TSoftMailProjectPostgreContext.cs dosyasındaki bağlantı adresi buna göre değiştirilmelidir.

Veritabanı Seçimi

`DataAccess/Concrete/EntityFramework/' içerisinde yer alan Dal etiketi ile biten sınıflar için Ms Sql Server için TSoftMailProjectContext sınıfı, PostgreSql için TSoftMailProjectPostgreContext sınıfı EfEntityRepositoryBase içerisine referans olarak verilmelidir.

Mail Hesabı Konfigürasyonu



Paketler

Business

-Autofac(6.4.0)
-Autofac.Extras.DynamicProxy(6.0.1)
-Autofac.Extensions.DependencyInjection(8.0.0)
-GemBox.Email(15.0.1153)
-MailKit(3.3.0)

Core

-Autofac(6.4.0)
-Autofac.Extensions.DependencyInjection(8.0.0)
-Autofac.Extras.DynamicProxy(6.0.1)
-FluentValidation(11.1.0)
-Microsoft.AspNetCore.Http(2.2.2)
-Microsoft.AspNetCore.Http.Abstractions(2.2.0)
-Microsoft.EntityFrameworkCore(5.0.17)
-Microsoft.Extensions.Caching.Abstractions(6.0.0)
-Microsoft.Extensions.Configuration(6.0.1)
-Microsoft.Extensions.Configuration.Binder(6.0.0)
-System.IdentityModel.Tokens.Jwt(6.22.0)

DataAccess

-Microsoft.EntityFrameworkCore.SqlServer(5.0.17)

EmailService

-MailKit(3.3.0)

WebAPI

-Swashbuckle.AspNetCore(5.6.3)
-Microsoft.AspNetCore.Authentication.JwtBearer(5.0.17)

Desteklenen Veritabanları

Microsoft SQL Server 18

PostgreSQL 14