// Note that add and build operations need to be done in the same context to preserve // tracking: private async Task <CharacterBuildModel> AddAndBuildAsync(CharacterBuildService service, ClaimsPrincipal user, string name, int level, params string[] choices) { var model = await service.AddAsync(user, new NewCharacterModel { Name = name, Level = level }); model.Should().NotBeNull(); return(await BuildAsync(service, user, model, choices)); }
private async Task <T> TestServiceAsync <T>(Func <CharacterBuildService, Task <T> > func) { using (var context = new ApplicationDbContext(dbOptions)) { var service = new CharacterBuildService(buildDriver, context, logger, mapper, toastService, userManager); return(await func(service)); } }
private async Task TestServiceAsync(Func <CharacterBuildService, Task> action) { using (var context = new ApplicationDbContext(dbOptions)) { var service = new CharacterBuildService(buildDriver, context, logger, mapper, toastService, userManager); await action(service); } }
private async Task <CharacterBuildModel> BuildAsync(CharacterBuildService service, ClaimsPrincipal user, CharacterBuildModel model, params string[] choices) { if (choices.Length == 0) { return(model); } var newModel = await service.BuildAsync(user, model, choices[0]); newModel.Should().NotBeNull(); return(await BuildAsync(service, user, newModel, choices.Skip(1).ToArray())); }