Ejemplo n.º 1
0
 public void Calculate(IsMultipleOfResponse isMultipleOfResponse)
 {
     foreach (var number in isMultipleOfResponse?.result)
     {
         number.isMultiple = number.number != 0 && (number.number % this.divisor == 0);
     }
 }
Ejemplo n.º 2
0
        public static IsMultipleOfResponse ToIsMultipleOfResponse(this IsMultipleOfRequest isMultipleOfRequest)
        {
            var isMultipleOfResult = new IsMultipleOfResponse();

            if (isMultipleOfRequest.numbers != null && isMultipleOfRequest.numbers.Any())
            {
                isMultipleOfResult.result = isMultipleOfRequest
                                            .numbers
                                            .Select(n => new NumberResponse()
                {
                    number     = n,
                    isMultiple = false
                }).ToList();
            }
            return(isMultipleOfResult);
        }
Ejemplo n.º 3
0
        public ActionResult <IsMultipleOfResponse> Post([Range(1, int.MaxValue)] int divisor,
                                                        IsMultipleOfRequest isMultipleOfRequest)
        {
            _logger.LogInformation(LogEvents.PostIsMultipleOf, "Calculating multiple numbers of {divisor} divisor.", divisor);

            var isMultipleOfResult = new IsMultipleOfResponse();

            isMultipleOfResult = isMultipleOfRequest.ToIsMultipleOfResponse();

            var divisorCalculator = DivisorCalculatorFactory.Create(divisor);

            divisorCalculator.Calculate(isMultipleOfResult);

            _logger.LogInformation(LogEvents.ResponseIsMultipleOf,
                                   "Result for calculating multiple numbers of {divisor} divisor: {isMultipleOfResult}", divisor, JsonSerializer.Serialize(isMultipleOfResult));

            return(Ok(isMultipleOfResult));
        }
Ejemplo n.º 4
0
        public void IsMultiple__81728901_Of_151()
        {
            var calculator = new CalculatorOfAny(151);
            IsMultipleOfResponse isMultipleOfResponse = new IsMultipleOfResponse()
            {
                result = new List <NumberResponse>()
                {
                    new NumberResponse()
                    {
                        number = 81728901
                    }
                }
            };

            calculator.Calculate(isMultipleOfResponse);

            Assert.IsTrue(isMultipleOfResponse.result.First().isMultiple);
        }
Ejemplo n.º 5
0
        public void IsMultiple__97035_Of_3()
        {
            var calculator = new CalculatorOfAny(3);
            IsMultipleOfResponse isMultipleOfResponse = new IsMultipleOfResponse()
            {
                result = new List <NumberResponse>()
                {
                    new NumberResponse()
                    {
                        number = 97035
                    }
                }
            };

            calculator.Calculate(isMultipleOfResponse);

            Assert.IsTrue(isMultipleOfResponse.result.First().isMultiple);
        }
Ejemplo n.º 6
0
        public void IsMultiple__323455693_Of_11()
        {
            var calculator = new CalculatorOf11();
            IsMultipleOfResponse isMultipleOfResponse = new IsMultipleOfResponse()
            {
                result = new List <NumberResponse>()
                {
                    new NumberResponse()
                    {
                        number = 323455693
                    }
                }
            };

            calculator.Calculate(isMultipleOfResponse);

            Assert.IsTrue(isMultipleOfResponse.result.First().isMultiple);
        }
Ejemplo n.º 7
0
        public void Calculate(IsMultipleOfResponse isMultipleOfResponse)
        {
            foreach (var numberResponse in isMultipleOfResponse?.result)
            {
                int   even  = 0;
                int   odd   = 0;
                int[] units = Math.Abs(numberResponse.number).ToString().Select(c => int.Parse(c.ToString())).ToArray();

                for (int i = 0; i < units.Length; i++)
                {
                    if (i % 2 == 0)
                    {
                        odd += units[i];
                    }
                    else
                    {
                        even += units[i];
                    }
                }

                numberResponse.isMultiple = numberResponse.number != 0 &&
                                            ((odd - even == 0) || (Math.Abs((odd - even) % 11) == 0));
            }
        }