public CaseManager(ICaseRegistrationPolicy registrationPolicy, IRepository <CaseRegistration> caseRegistrationRepository, IRepository <Case, Guid> caseRepository) { _registrationPolicy = registrationPolicy ?? throw new ArgumentNullException(nameof(registrationPolicy)); _caseRegistrationRepository = caseRegistrationRepository ?? throw new ArgumentNullException(nameof(caseRegistrationRepository)); _caseRepository = caseRepository ?? throw new ArgumentNullException(nameof(caseRepository)); EventBus = NullEventBus.Instance; }
public static async Task <CaseRegistration> CreateAsync(Case newCase, User user, ICaseRegistrationPolicy registrationPolicy) { await registrationPolicy.CheckRegistrationAttemptAsync(newCase, user); return(new CaseRegistration { TenantId = newCase.TenantId, CaseId = newCase.Id, Case = newCase, UserId = user.Id, User = user }); }