public async Task <Guid> InsertNewDataRecord(NumbersData numberDataRecord, CancellationToken cancellationToken) { await _context.NumbersDataRecords.AddAsync(numberDataRecord, cancellationToken); await _context.SaveChangesAsync(cancellationToken); return(numberDataRecord.Id); }
private void ValidateNumberDataRecord(NumbersData currentRecord) { if (currentRecord == null) { throw new ArgumentOutOfRangeException(nameof(GuessNumberDTO.NumberRecordId)); } if (currentRecord.UsedAttempts == _numbersSettings.MaxAttemptsCount) { throw new InvalidOperationException("All guess attempts are used for current record"); } }
public async Task SaveGuessNumberAndIncreaceAttemptsCount(NumbersData currentRecord, int guessNumber, CancellationToken cancellationToken) { currentRecord.UsedAttempts += 1; currentRecord.GuessedNumbers.Add(new GuessedNumber { NumbersDataId = currentRecord.Id, Number = guessNumber, }); await _context.SaveChangesAsync(cancellationToken); }
public async Task <IActionResult> InsertNewNumberRecord(CancellationToken cancellationToken) { try { var newNumberRecord = new NumbersData { Id = Guid.NewGuid(), PredefinedNumber = GetRandomNumberFromPredefinedRange(), }; return(Ok(await _numbersRepository.InsertNewDataRecord(newNumberRecord, cancellationToken))); } catch (Exception e) { return(BadRequest(e.Message)); } }