Tapis.Core.Reminders 1.0.3

dotnet add package Tapis.Core.Reminders --version 1.0.3
                    
NuGet\Install-Package Tapis.Core.Reminders -Version 1.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tapis.Core.Reminders" Version="1.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Tapis.Core.Reminders" Version="1.0.3" />
                    
Directory.Packages.props
<PackageReference Include="Tapis.Core.Reminders" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Tapis.Core.Reminders --version 1.0.3
                    
#r "nuget: Tapis.Core.Reminders, 1.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Tapis.Core.Reminders@1.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Tapis.Core.Reminders&version=1.0.3
                    
Install as a Cake Addin
#tool nuget:?package=Tapis.Core.Reminders&version=1.0.3
                    
Install as a Cake Tool

Tapis.Core.Reminders

Notlar ve hatırlatıcılar modülünün sözleşme paketi. Her ürün (ServiceManagement, HostelManagement) bu paketi kendi API'sinde barındırır ve kendi tenant veritabanında kendi tablolarını tutar. Paket tenant çözümlemesi, kimlik doğrulama ya da ürün varlıkları bilmez; ihtiyaç duyduğu her şeyi port üzerinden alır.

1.0.2'den beri uygulama servisleri ürünün içindedir (kullanıcı kararı S1, 2026-10-13). Paket not, hatırlatıcı, bildirim ve ek servislerinin yalnız arayüzünü verir; implementasyon ürünün kendi repository/UnitOfWork katmanını kullandığı için ürün projesinde yaşar. Paket container'dan DbContext çözmez.

İçerik

Alan Ne yapar
Entities/ Note, Reminder, ReminderChecklistItem, ReminderAlarm, Notification, Attachment — hepsi OwnerUserId taşır
Persistence/ ApplyRemindersModel(ModelBuilder) ile tablolar ürünün kendi DbContext'ine katılır (xmin damgası ve denetim interceptor'ı böylece otomatik gelir)
Services/ servis arayüzleri (INoteService, IReminderService, INotificationService, IAttachmentService), tekrar kuralı (RecurrenceService), alarm işleyici (ReminderDispatchService) ve ek eşlemesi (AttachmentMap)
RemindersLocalizationConsts ileti ve işlem anahtarları (İngilizce); metinler ürünün kaynak dosyalarında, ISharedLocalizer ile çözülür
Scheduling/ sonraki alarma kadar uyuyan zamanlayıcı döngüsü ve sinyal
Hubs/ RemindersHub — kullanıcı bazlı grup, NotificationCreated / UnreadCount olayları
Controllers/ api/Notes, api/Reminders, api/ReminderAttachments, api/ReminderNotifications
Ports/ IFileStorage, IReminderDbContextFactory, IReminderSchedulerSignal, IReminderRealtimeNotifier, IReminderClock

Ürüne bağlama

// Program.cs
builder.Services.AddRemindersModule(builder.Configuration);
builder.Services.AddScoped<IReminderDbContextFactory, ServiceManagementReminderDbContextFactory>();

// Uygulama servisleri ürünün kendisindedir (S1): paket yalnız arayüzü tanımlar.
builder.Services.AddScoped<INoteService, NotService>();
builder.Services.AddScoped<IReminderService, HatirlaticiService>();
builder.Services.AddScoped<INotificationService, HatirlaticiBildirimService>();
builder.Services.AddScoped<IAttachmentService, HatirlaticiEkService>();
builder.Services.AddControllers().AddRemindersControllers();
...
app.MapRemindersModule();   // hub
// DbContext.OnModelCreating
builder.ApplyRemindersModel();

Yapılandırma Reminders bölümünden okunur (MaxSleepMinutes, MaxAttempts, RetryDelayMinutes, BatchSize, IdleShutdownMinutes, Attachments:MaxSizeMb, Attachments:AllowedExtensions, Attachments:MaxFilesPerRecord, Attachments:LocalRootPath).

Kurallar

  • Uygulama servisi yazan ürün kendi IUnitOfWork/repository'lerini kullanır, DbContext'i doğrudan açmaz; doğrulama FluentValidation validator'ıyla ürün tarafında yapılır (paket DTO'ları ürünün global ValidationFilter'ından geçer); kullanıcıya dönen her ileti ISharedLocalizer ile RemindersLocalizationConsts anahtarından çözülür.
  • Kayıtlar kişiseldir: her sorgu token'daki OwnerUserId ile süzülür, başka kullanıcının kaydı olmayan kayıtla aynı 404'ü alır.
  • Bildirim yalnız uygulama içidir: e-posta, SMS, WhatsApp gönderilmez ve bunlar için soyutlama yoktur.
  • Ek dosyalar yalnız yetki denetimi yapan indirme ucundan akar; depolama anahtarı istemciye hiç verilmez.
  • Tüm tarihler yerel saat (Europe/Istanbul) yazılır; modülde UTC kullanılmaz.
  • Elle transaction yalnız ürünün yürütme stratejisinin içinde açılır. Ürünler PostgreSQL context'ini EnableRetryOnFailure(3) ile kuruyor; EF, yeniden deneyen bir strateji altında BeginTransaction'ı InvalidOperationException ile reddeder. Yeni bir transaction gerekiyorsa gövde db.Database.CreateExecutionStrategy().ExecuteAsync(...) içine konur ve yeniden denenebilir yazılır (her denemede ChangeTracker.Clear() + veriyi sıfırdan oku). 1.0.0'da alarm turu bu kuralı ihlal ettiği için zamanlayıcı PostgreSQL'de hiç çalışmadı; SQLite testleri yeniden denemediği için göstermedi (regresyon testi: AlarmYenidenDenemeStratejisiTests).
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.3 67 10/13/2026
1.0.2 48 10/13/2026
1.0.1 46 10/13/2026
1.0.0 55 10/13/2026