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}'"); }
public AnimalController(ITransactionManager transactionManager, IRepository <Animal> animals, IRepository <Ruleset> rulesets, RulesetScheduleProvider scheduleProvider, OperationRunner operationRunner) { _transactionManager = transactionManager; _animals = animals; _rulesets = rulesets; _scheduleProvider = scheduleProvider; _operationRunner = operationRunner; }
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); }
public RulesetController(ITransactionManager transactionManager, RulesetScheduleProvider scheduleProvider, IRepository <Ruleset> rulesets) { _rulesets = rulesets; _scheduleProvider = scheduleProvider; _transactionManager = transactionManager; }