public IActionResult GetResultsForPullsUntilSuccess([FromBody] D.SuccessCalculationInput successCalculationInput) { D.PrizeSelectionsForSuccessInfo result = new D.PrizeSelectionsForSuccessInfo(); if (successCalculationInput.SuccessCriteria != null && successCalculationInput.SuccessCriteria.Any() && successCalculationInput.SelectionDomains != null && successCalculationInput.SelectionDomains.Any()) { IList <SelectionDomain> selectionDomainModels = _mapper.Map <IList <SelectionDomain> >(successCalculationInput.SelectionDomains); PrizeSelectionsForSuccessInfo successModel = _selectionSuccessCalculator.GetResultsForPullsUntilSuccess(successCalculationInput.SuccessCriteria, selectionDomainModels); result = _mapper.Map <D.PrizeSelectionsForSuccessInfo>(successModel); } return(new ObjectResult(result)); }
public IActionResult GetChanceToMeetSuccessCriteriaForFixedSelectionCount([FromBody] D.SuccessCalculationInput successCalculationInput) { double successChance = 0; if (successCalculationInput.SuccessCriteria != null && successCalculationInput.SuccessCriteria.Any() && successCalculationInput.SelectionDomains != null && successCalculationInput.SelectionDomains.Any() && successCalculationInput.SelectionCount > 0) { IList <SelectionDomain> selectionDomainModels = _mapper.Map <IList <SelectionDomain> >(successCalculationInput.SelectionDomains); successChance = _selectionSuccessCalculator.GetChanceToMeetSuccessCriteriaForFixedSelectionCount( successCalculationInput.SuccessCriteria, selectionDomainModels, successCalculationInput.SelectionCount); } return(new ObjectResult(successChance)); }