Пример #1
0
        public void AddResult(Result result)
        {
            if (result == null)
            {
                throw new ArgumentNullException(nameof(result));
            }

            _databaseContext.UseTransaction(transaction =>
            {
                var discipline = _disciplinesRepository.GetDiscipline(result.Discipline.Id, transaction, true);
                if (discipline == null)
                {
                    throw new ArgumentException("Bad discipline id is provided");
                }

                var countingFormula = CountingFormula.Get(discipline.Counting);

                var attempts     = result.Attempts;
                var attemptCount = countingFormula.AttemptCount;

                result.Average      = countingFormula.ComputeAverage(attempts);
                result.AttemptCount = attemptCount;

                _resultsRepository.AddResult(result, transaction);
            });
        }