Class ReportService
- Namespace
- UsluzionicaServer.Services
- Assembly
- UsluzionicaServer.dll
Prijave oglasa i korisnika, i njihovo rešavanje.
RED ZA ADMINA JE PO METI, NE PO PRIJAVI. Deset prijava istog oglasa je jedan posao i jedna odluka, ne deset. Zato je red grupisan upit, a rešavanje zatvara sve prijave za tu metu odjednom.
BROJ PRIJAVA SE NE DENORMALIZUJE.
Ne postoji Listing.ReportCount. Broj se računa agregatom nad
Reports pri svakom otvaranju reda. Denormalizovan brojač bi bio drugi
izvor istine o istom podatku, a dva izvora se raziđu — obično posle prve
izmene koja zaobiđe change tracker. Volumen ovde ni izbliza ne traži tu cenu.
SADRŽAJ SE NE SKRIVA AUTOMATSKI. Nema praga posle kog oglas nestaje sam. To bi bio poklon konkurenciji: par lažnih prijava obori tuđi oglas bez ijedne provere. Prva prijava stavlja oglas u red; sklanja ga čovek.
public sealed class ReportService
- Inheritance
-
ReportService
- Inherited Members
Constructors
- ReportService(AppDbContext, UserModerationService, NotificationService, ILogger<ReportService>)
Prijave oglasa i korisnika, i njihovo rešavanje.
RED ZA ADMINA JE PO METI, NE PO PRIJAVI. Deset prijava istog oglasa je jedan posao i jedna odluka, ne deset. Zato je red grupisan upit, a rešavanje zatvara sve prijave za tu metu odjednom.
BROJ PRIJAVA SE NE DENORMALIZUJE. Ne postoji
Listing.ReportCount. Broj se računa agregatom nadReportspri svakom otvaranju reda. Denormalizovan brojač bi bio drugi izvor istine o istom podatku, a dva izvora se raziđu — obično posle prve izmene koja zaobiđe change tracker. Volumen ovde ni izbliza ne traži tu cenu.SADRŽAJ SE NE SKRIVA AUTOMATSKI. Nema praga posle kog oglas nestaje sam. To bi bio poklon konkurenciji: par lažnih prijava obori tuđi oglas bez ijedne provere. Prva prijava stavlja oglas u red; sklanja ga čovek.
Methods
- BrojNeresenihAsync()
Broj nerešenih prijava — za značku na tabu u admin panelu.
- DetaljiAsync(ReportTargetType, int?, string?)
Pojedinačne prijave za jednu metu — kad admin razvije stavku.
- RedAsync(ReportStatus)
Mete sa nerešenim prijavama, poređane po važnosti.
Dva kriterijuma, ne jedan: prvo broj prijava, pa starost najstarije. Samo po broju, usamljena prijava od pre nedelju dana nikad ne bi stigla na red — a upravo ona može biti tačna.
- ResiAsync(string, ResolveReportDto)
Jedna odluka zatvara SVE nerešene prijave za tu metu.
Admin je pregledao sadržaj, ne pojedinačnu prijavu — pa ostavljanje ostalih prijava otvorenim znači da se ista meta vraća u red i pregleda ponovo, bez novog povoda.