示例#1
0
 public ActionResult Index(PalindromeViewModel viewModel)
 {
     if (!ModelState.IsValid)
     {
         viewModel.DisplayResult = false;
         return(View(viewModel));
     }
     viewModel.DisplayResult = true;
     viewModel.ReverseString = GetReverseNumber(viewModel.OriginalNumber);
     viewModel.IsPalindrome  = (viewModel.OriginalNumber == viewModel.ReverseString);
     return(View(viewModel));
 }
示例#2
0
 public JsonResult Post([FromBody] PalindromeViewModel input)
 {
     try
     {
         _repo.CreateNew(input);
         return(new JsonResult("Saved"));
     }
     catch (Exception ex)
     {
         return(new JsonResult("An error Occurred" + ex.Message));
     }
 }
        public void CreateNew(PalindromeViewModel viewmodel)
        {
            if (FetchExistingRecordByPalindrome(viewmodel.PalindromeValue) == null)
            {
                var palindrome = new Models.Palindrome()
                {
                    PalindromeValue = viewmodel.PalindromeValue,
                    CreateTS        = DateTime.Now,
                    PalindromeId    = Guid.NewGuid()
                };

                _datacontext.Create(palindrome);
            }
        }
示例#4
0
        public void Create_Action_Returns_true_false()
        {
            //Arrange

            var input = new PalindromeViewModel
            {
                PalindromeValue = "test"
            };

            //Act
            var returnvalue = controller.Post(input);

            //Assert

            Assert.AreEqual(returnvalue.GetType(), typeof(bool));
        }
        public void Create_Action_Returns_JsonResult()
        {
            //Arrange

            var input = new PalindromeViewModel
            {
                PalindromeValue = "test"
            };

            //Act
            var returnvalue = controller.Post(input);

            //Assert

            Assert.IsNotNull(JsonConvert.SerializeObject(returnvalue));
        }
示例#6
0
        public void Symmetric_Numeric_Input_should_Pass()
        {
            //Arrange
            var viewmodel = new PalindromeViewModel()
            {
                PalindromeValue = "0wasitacatisaw0"
            };

            // Act

            var isPalindrome = businessRepo.IsPalindrome(viewmodel);

            // Assert

            Assert.IsTrue(isPalindrome);
        }
示例#7
0
        public void XML_Input_should_Not_be_processed()
        {
            //Arrange
            var viewmodel = new PalindromeViewModel()
            {
                PalindromeValue = "<wasitacatisaw></wasitacatisaw>"
            };

            // Act

            var isPalindrome = businessRepo.IsPalindrome(viewmodel);

            // Assert

            Assert.IsTrue(isPalindrome);
        }
示例#8
0
        public void Numeric_Characters_Pallindrome_Should_Be_Recognised()
        {
            //Arrange
            var viewmodel = new PalindromeViewModel()
            {
                PalindromeValue = "WasItAC76767@atISaw"
            };

            // Act

            var isPalindrome = businessRepo.IsPalindrome(viewmodel);

            // Assert

            Assert.IsFalse(isPalindrome);
        }
示例#9
0
        public void Mixed_Case_Pallindrome_Should_Be_Recognised()
        {
            //Arrange
            var viewmodel = new PalindromeViewModel()
            {
                PalindromeValue = "WasItACatISaw"
            };

            // Act

            var isPalindrome = businessRepo.IsPalindrome(viewmodel);

            // Assert

            Assert.IsTrue(isPalindrome);
        }
示例#10
0
        public void EmptyInputShouldReturnFalse()
        {
            //Arrange
            var viewmodel = new PalindromeViewModel()
            {
                PalindromeValue = ""
            };

            // Act

            var isPalindrome = businessRepo.IsPalindrome(viewmodel);

            // Assert

            Assert.IsFalse(isPalindrome);
        }
        public bool IsPalindrome(PalindromeViewModel model)
        {
            if (string.IsNullOrWhiteSpace(model.PalindromeValue) ||
                model.PalindromeValue.Length < 3)
            {
                return(false);
            }

            var input = model.PalindromeValue;
            var arr   = input.ToCharArray();

            arr = Array.FindAll(arr, (c => (char.IsLetterOrDigit(c))));

            var cleanedInput = new string(arr);

            return(IsPalindrome(cleanedInput));
        }
示例#12
0
        public JsonResult <PalindromeViewModel> Get(int minLength = 5, int maxLength = 10, int maxCapacity = 10)
        {
            PalindromeViewModel.Instance.IsGenerated = true;
            PalindromeViewModel returnValue = null;

            while (PalindromeViewModel.Instance.IsGenerated == true)
            {
                returnValue = _palindromefactory.PopulatePalindromeString(minLength, maxLength, maxCapacity);

                //I added sleep so you can see the palindrome is generated, because if not,
                //it's generated really fast to the client view
                Thread.Sleep(1000);

                Hub.Clients.All.populateOnePalindrome(returnValue);
            }


            return(Json(returnValue));
        }
        public IActionResult Post(PalindromeViewModel palindromeViewModel)
        {
            bool isPalindrome = _palindromeService.IsPalindrome(palindromeViewModel.Word);

            return(Ok(isPalindrome));
        }
示例#14
0
 public bool Post([FromBody] PalindromeViewModel model)
 {
     return(_businessRepo.IsPalindrome(model));
 }
示例#15
0
        public async Task <PalindromeViewModel> AddPalindrome(PalindromeViewModel viewModel)
        {
            var uri = $"{_remoteServiceBaseUrl}";

            return(await PostAsync <PalindromeViewModel>(uri, viewModel));
        }