private ExecutedCalculation CreateExecutedCalculation(CalculateProbabilityInput input, string calculationType, decimal calculatedProbability) => new ExecutedCalculation { When = DateTime.UtcNow, Input = input, CalculationType = calculationType, Result = calculatedProbability };
public decimal CalculateProbability(CalculateProbabilityRequest request) { ValidateRequest(request); var input = CalculateProbabilityInput.FromCalculateProbabilityRequest(request); var calculatedProbability = calculatorFactory.GetCalculator(request.CalculationType).Calculate(input); var executedCalculation = CreateExecutedCalculation(input, request.CalculationType, calculatedProbability); calculationsStorer.StoreCalculation(executedCalculation); return(calculatedProbability); }
public decimal Calculate(CalculateProbabilityInput input) => input.ProbabilityOfA * input.ProbabilityOfB;