Beispiel #1
0
        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
            });
        }