Table of Contents

Method FilterBlocked

Namespace
UsluzionicaServer.Services
Assembly
UsluzionicaServer.dll

FilterBlocked(IQueryable<Listing>, AppDbContext, string?)

Filtrira oglase blokiranih iz bilo kog upita nad Listings.

Koristi se na svakom mestu koje vraća oglase — pretraga, omiljeni, profil uslugodavca. Jedan metod, da se pravilo ne prepisuje po servisima i ne raziđe.

NOT EXISTS, a ne učitavanje skupa blokiranih u memoriju pa Contains(): Contains pravi IN (@p1, @p2, ...) što radi dok je lista kratka, a puca kad neko blokira stotine ljudi — SQL Server ima granicu broja parametara, a plan upita postane neupotrebljiv. NOT EXISTS ne zavisi od veličine i koristi oba indeksa iz AppDbContext.

public static IQueryable<Listing> FilterBlocked(IQueryable<Listing> query, AppDbContext db, string? viewerId)

Parameters

query IQueryable<Listing>
db AppDbContext
viewerId string

Returns

IQueryable<Listing>