public async Task <PoolPickHandle> Pick(User user, Category category, Dictionary <string, object> options) { var pickOptions = options != null?mapper.Map <PickOptions>(options) : new PickOptions(); var question = pickOptions.UniqueToUser ? await questionRepository.FindUntouchedRandomAsync(user) : await questionRepository.FindRandomAsync(); if (question == null) { throw new UserHasNoViablePickException("User has no remaining unsolved questions."); } var handle = new PoolPickHandle { Picker = user, Question = question, AvailableFor = 300, }; await poolPickHandleRepository.AddAsync(handle); await unitOfWork.CompleteAsync(); return(handle); }
public async Task AddAsync(PoolPickHandle poolPickHandle) { await context.PoolPickHandles.AddAsync(poolPickHandle); }