/// <summary> /// Collect numbers /// </summary> /// <param name="myNumber"></param> /// <param name="isNegative"></param> protected override void ColloctNumbers(int myNumber, bool isNegative) { if (isNegative) { NegativeNumbers.Add(myNumber * -1); if (AllowNegative) { Numbers.Add(myNumber * -1); } } else if (myNumber <= UpBound) { Numbers.Add(myNumber); } else { Numbers.Add(0); IgnoredNumbers.Add(0); } }
public int Add(string numbers) { if (ContainsNoNumbers(numbers)) { return(0); } if (ContainsASingleNumber(numbers)) { return(GetSingleNumber(numbers)); } var formattedNumbers = new FormattedNumberString(numbers); var negativeNumbers = new NegativeNumbers(formattedNumbers); if (negativeNumbers.HasAny()) { throw new NegativeException($"Negatives not allowed, {negativeNumbers}"); } return(new Calculator(formattedNumbers).GetTotal()); }