public override double Add(string stringNumberInput)
        {
            if (string.IsNullOrEmpty(stringNumberInput))
            {
                return(0);
            }

            stringNumberInput = PrepInputString(stringNumberInput);

            NumberString = stringNumberInput;

            ValueList = NumberString.Split(StringNumberDelimiters.ToArray(), StringSplitOptions.None).ToList();

            NumberList = (from x in ValueList select GetDouble(x)).ToList();

            var negativeNumberList = (from x in NumberList where x < 0 select x).ToList();

            if (negativeNumberList.Any())
            {
                throw new NegativeNumberException(negativeNumberList);
            }

            NumberList = NumberList.Where(x => IsLessThanOrEqualTo(1000, x)).ToList();

            Result = NumberList.Sum();

            Debug.WriteLine(NumberString);
            Debug.WriteLine(GetResultFormula("+"));
            Debug.WriteLine(Result);

            return(Result);
        }
Exemple #2
0
        public override double Add(string stringNumberInput)
        {
            if (string.IsNullOrEmpty(stringNumberInput))
            {
                return(0);
            }

            stringNumberInput = PrepInputString(stringNumberInput);

            NumberString = stringNumberInput;

            if (stringNumberInput.StartsWith(CustomDelimiterIdentifier))
            {
                var splitter = stringNumberInput.IndexOf("\n", StringComparison.Ordinal);
                if (splitter == 3)
                {
                    NumberString = stringNumberInput.Substring(4);
                    FormatString = stringNumberInput.Substring(2, 1);
                    StringNumberDelimiters.Add(FormatString);
                }
                else
                {
                    NumberString = stringNumberInput.Substring(splitter + 2);
                    FormatString = string.Empty;
                }
            }

            ValueList = NumberString.Split(StringNumberDelimiters.ToArray(), StringSplitOptions.None).ToList();

            NumberList = (from x in ValueList select GetDouble(x)).ToList();

            var negativeNumberList = (from x in NumberList where x < 0 select x).ToList();

            if (negativeNumberList.Any())
            {
                throw new NegativeNumberException(negativeNumberList);
            }

            NumberList = NumberList.Where(x => IsLessThanOrEqualTo(1000, x)).ToList();

            Result = NumberList.Sum();

            Debug.WriteLine(NumberString);
            Debug.WriteLine(GetResultFormula("+"));
            Debug.WriteLine(Result);

            return(Result);
        }
Exemple #3
0
        public override double Add(string stringNumberInput)
        {
            if (string.IsNullOrEmpty(stringNumberInput))
            {
                return(0);
            }

            stringNumberInput = PrepInputString(stringNumberInput);

            NumberString = stringNumberInput;

            ValueList = NumberString.Split(StringNumberDelimiters.ToArray(), StringSplitOptions.None).Take(2).ToList();

            NumberList = (from x in ValueList select GetDouble(x)).ToList();

            Result = NumberList.Sum();

            Debug.WriteLine(NumberString);
            Debug.WriteLine(GetResultFormula("+"));
            Debug.WriteLine(Result);

            return(Result);
        }
        public override double Add(string stringNumberInput)
        {
            if (string.IsNullOrEmpty(stringNumberInput))
            {
                return(0);
            }

            stringNumberInput = PrepInputString(stringNumberInput);

            NumberString = stringNumberInput;
            int splitter;

            if (stringNumberInput.StartsWith(CustomDelimiterIdentifier))
            {
                splitter = stringNumberInput.IndexOf("\n", StringComparison.Ordinal);
                if (splitter == 3)
                {
                    NumberString = stringNumberInput.Substring(4);
                    FormatString = stringNumberInput.Substring(2, 1);
                    StringNumberDelimiters.Add(FormatString);
                }
                else
                {
                    splitter = stringNumberInput.IndexOf("]\n", StringComparison.Ordinal);
                    if (splitter == -1)
                    {
                        NumberString = stringNumberInput;
                    }
                    else
                    {
                        NumberString = stringNumberInput.Substring(splitter + 2);
                        FormatString = stringNumberInput.Substring(3, splitter - 3);
                        var additionalDeliminators = FormatString.Split(FormatDelimiter.ToArray(), StringSplitOptions.RemoveEmptyEntries);

                        if (additionalDeliminators.Length > 1)
                        {
                            throw new Exception("Too many custom delimiters!");
                        }

                        StringNumberDelimiters.AddRange(additionalDeliminators);
                    }
                }
            }
            else
            {
                NumberString = stringNumberInput;
            }


            ValueList = NumberString.Split(StringNumberDelimiters.ToArray(), StringSplitOptions.None).ToList();

            NumberList = (from x in ValueList select GetDouble(x)).ToList();

            var negativeNumberList = (from x in NumberList where x < 0 select x).ToList();

            if (negativeNumberList.Any())
            {
                throw new NegativeNumberException(negativeNumberList);
            }

            NumberList = NumberList.Where(x => IsLessThanOrEqualTo(1000, x)).ToList();

            Result = NumberList.Sum();

            Debug.WriteLine(NumberString);
            Debug.WriteLine(GetResultFormula("+"));
            Debug.WriteLine(Result);

            return(Result);
        }