Table of Contents

Constructor ReferralService

Namespace
UsluzionicaServer.Services
Assembly
UsluzionicaServer.dll

ReferralService(AppDbContext, NotificationService, IConfiguration, ILogger<ReferralService>)

Referral nagrada se isplaćuje u DVE rate:

  1. rata — pozvani potvrdi email → pozivalac dobija SignupRewardTokens (2)
  2. rata — pozvani aktivira provajdera → pozivalac dobija ActivationRewardTokens (3)

Zašto prva rata ide na potvrdu emaila a ne na samu registraciju: registracija je besplatna i neograničena, pa bi isplata na registraciju značila da svako može da otvara naloge sa sopstvenim kodom i uzima tokene bez ikakvog rada. Potvrda emaila zahteva stvarnu, jedinstvenu i funkcionalnu adresu po nalogu. Uz to, nalog bez potvrđenog emaila ne može ni da se prijavi (AuthService. LoginAsync ga odbija), pa u ovom sistemu ionako još nije pravi nalog.

Obe metode su IDEMPOTENTNE i bezbedne pod istovremenim pozivima. To nije teorijska briga: verifikacioni link se lako aktivira dvaput (mail klijent ga prefetch-uje, pa korisnik klikne), a ResetPasswordAsync je drugi put kroz koji email može biti potvrđen.

public ReferralService(AppDbContext db, NotificationService notificationService, IConfiguration config, ILogger<ReferralService> logger)

Parameters

db AppDbContext
notificationService NotificationService
config IConfiguration
logger ILogger<ReferralService>