public Response ProcessNumber(int inputNumber)
        {
            var result = new SequencesResponse()
            {
                AllNumbersSequence       = new List <int>(),
                OddNumbersSequence       = new List <int>(),
                EvenNumbersSequence      = new List <int>(),
                AllNumbersSecondSequence = null,
                CharacterOutput          = Char.MinValue
            };

            // Generate sequences: all numbers, odd numbers and even numbers.
            for (int i = 1; i <= inputNumber; i++)
            {
                result.AllNumbersSequence.Add(i);

                if (i % 2 == 0)
                {
                    result.EvenNumbersSequence.Add(i);
                }
                else
                {
                    result.OddNumbersSequence.Add(i);
                }
            }

            // Set CharacterOutput.
            if (inputNumber % 3 == 0 && inputNumber % 5 == 0)
            {
                result.CharacterOutput = 'Z';
            }
            else if (inputNumber % 3 == 0)
            {
                result.CharacterOutput = 'C';
            }
            else if (inputNumber % 5 == 0)
            {
                result.CharacterOutput = 'E';
            }
            else
            {
                result.AllNumbersSecondSequence = result.AllNumbersSequence;
            }

            return(result);
        }
        public async Task <Abstractions.Response> GetResponseAsync()
        {
            await RequestTokenAsync();

            var stringResponse = await Client.GetStringAsync(Host + Path);

            if (stringResponse != null)
            {
                SequencesResponse sequenceResponse = JsonConvert.DeserializeObject <SequencesResponse>(stringResponse);

                if (sequenceResponse != null)
                {
                    return(sequenceResponse);
                }
            }

            return(null);
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Index(SequencesViewModel vm)
        {
            if (vm.InputNumber < 1)
            {
                ModelState.AddModelError("", "Input number can't be less than 1");

                return(View(vm));
            }

            if (ModelState.IsValid)
            {
                _restClient.Path = _restClient.Path + vm.InputNumber;
                SequencesResponse sequences = await _restClient.GetResponseAsync() as SequencesResponse;

                vm.Sequences = sequences;
            }

            return(View(vm));
        }
        public void GetSequences__NumberMultipleThreeAndMultipleFive__SuccessfulResult()
        {
            // Arrange
            int inputNumber     = 15;
            var sequenceService = new SequenceService();

            // Act
            SequencesResponse sequencesObject = (SequencesResponse)sequenceService.ProcessNumber(inputNumber);

            // Assert
            Assert.Equal(new List <int> {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
            }, sequencesObject.AllNumbersSequence.ToList());
            Assert.Equal(new List <int> {
                1, 3, 5, 7, 9, 11, 13, 15
            }, sequencesObject.OddNumbersSequence.ToList());
            Assert.Equal(new List <int> {
                2, 4, 6, 8, 10, 12, 14
            }, sequencesObject.EvenNumbersSequence.ToList());
            Assert.Null(sequencesObject.AllNumbersSecondSequence);
            Assert.Equal('Z', sequencesObject.CharacterOutput);
        }