Sobes.tech
Middle

Գործառույթ: Օգտագործողներից ստացվող իրադարձությունները, յուրաքանչյուրն անհրաժեշտ է ստուգել արտաքին աղբյուրում, բայց դա անմիջապես պատասխան չի տալիս: Իմպլեմենտացեք VerificationService, որը: - Ստանում է իրադարձություններ օգտագործողներից - Փորձում է ստուգել յուրաքանչյուրին կապվելով արտաքին ծառայության հետ - Եթե պատասխանն է PENDING, կրկին ուղարկում է այս իրադարձությունը ոչ շուտ քան 5 վայրկյան - Առավելագույնը 3 փորձ, հետո իրադարձության ID-ն արտածվում է stdout- ում FAILED կարգավիճակով - Հաջողությամբ մշակված իրադարձությունները արտածվում են stdout- ում VERIFIED կարգավիճակով Արտաքին կախվածությունների ձևանմուշներն ու սթաբները արդեն իրականացված են: 1. VerificationStatus 2. Event 3. VerificationResult 4. IExternalSource public enum VerificationStatus { OK, Pending, Error } public record Event(string Id, string Payload); public record VerificationResult(VerificationStatus Status, string? Message = null); public interface IExternalSource { VerificationResult Verify(string eventId); } public class VerificationService { private readonly IExternalSource _externalSource; private const int MaxAttempts = 3; private static readonly TimeSpan RetryDelay = TimeSpan.FromSeconds(5); public VerificationService(IExternalSource externalSource) { _externalSource = externalSource; } // TODO: implement }