Beispiel #1
0
        private async Task PreloadCurrentRuleset(OperationContext context, RulesetScheduleProvider scheduleProvider, IRepository <Ruleset> rulesets)
        {
            var rulesetId = (await scheduleProvider.GetActiveRulesetRecordAsync(context.Transaction, DateTime.UtcNow)).RulesetId;
            var ruleset   = await rulesets.ByIdAsync(context.Transaction, rulesetId, rulesetId);

            context.Logger.Log($"Preloaded ruleset '{ruleset.Id}'");
        }
Beispiel #2
0
 public AnimalController(ITransactionManager transactionManager, IRepository <Animal> animals, IRepository <Ruleset> rulesets, RulesetScheduleProvider scheduleProvider, OperationRunner operationRunner)
 {
     _transactionManager = transactionManager;
     _animals            = animals;
     _rulesets           = rulesets;
     _scheduleProvider   = scheduleProvider;
     _operationRunner    = operationRunner;
 }
Beispiel #3
0
        public AnimalBox(IRepository <Ruleset> rulesets, IRepository <Animal> animals, RulesetScheduleProvider scheduleProvider)
        {
            _animals          = animals;
            _rulesets         = rulesets;
            _scheduleProvider = scheduleProvider;

            //TODO: Extract the event handlers map.
            _handlerTypeByEventType = new Dictionary <Type, Type>
            {
                { typeof(CreateAnimalEvent), typeof(CreateAnimalEventHandler) },
                { typeof(AnimalActionEvent), typeof(AnimalActionEventHandler) },
                { typeof(AnimalRulesetChangeEvent), typeof(AnimalRulesetChangeEventHandler) }
            };
        }
        public async Task GetActiveRulesetRecordsAsync_returns_correct()
        {
            // Arrange
            var rulesetSchedule = new VersionSchedule
            {
                BranchId = "Default",
                Records  = new[]
                {
                    new VersionScheduleRecord {
                        VersionId = "1", RulesetId = "First", Start = new DateTime(2018, 1, 1)
                    },
                    new VersionScheduleRecord {
                        VersionId = "2", RulesetId = "Second", Start = new DateTime(2018, 2, 1)
                    },
                    new VersionScheduleRecord {
                        VersionId = "3", RulesetId = "Third", Start = new DateTime(2018, 3, 1)
                    },
                    new VersionScheduleRecord {
                        VersionId = "3", RulesetId = "Fourth", Start = new DateTime(2018, 4, 1)
                    }
                }
            };

            var transactionMock = new Mock <ITransaction>();
            var repositoryMock  = new Mock <IRepository <VersionSchedule> >();

            repositoryMock.Setup(_ => _.ByIdAsync(transactionMock.Object, rulesetSchedule.BranchId, rulesetSchedule.BranchId))
            .ReturnsAsync(rulesetSchedule);
            var target = new RulesetScheduleProvider(rulesetSchedule.BranchId, repositoryMock.Object);

            // Act
            var result = await target.GetActiveRulesetRecordsAsync(transactionMock.Object,
                                                                   new DateTime(2018, 1, 10), new DateTime(2018, 3, 10));

            // Assert
            Assert.NotNull(result);
            Assert.Equal(2, result.Count);
        }
Beispiel #5
0
 public RulesetController(ITransactionManager transactionManager, RulesetScheduleProvider scheduleProvider, IRepository <Ruleset> rulesets)
 {
     _rulesets           = rulesets;
     _scheduleProvider   = scheduleProvider;
     _transactionManager = transactionManager;
 }