예제 #1
0
        public IActionResult Left([FromBody] DiffLeft diffLeft)
        {
            try
            {
                diffLeft.Validate();

                if (diffLeft.isValid)
                {
                    diffLeft = (DiffLeft)Binary.BinaryToString(diffLeft);
                }
                else
                {
                    return(BadRequest(Validate.FormatObservationInclude(diffLeft)));
                }

                _storage.Left = diffLeft;
                _diffLeftRepository.Incluid(diffLeft);

                return(Ok(Validate.FormatObservationInclude(diffLeft)));
            }
            catch (Exception ex)
            {
                return(UnprocessableEntity(Validate.FormatError(ex.ToString())));
            }
        }
예제 #2
0
        /// <summary>
        /// Padroniza o formato de saída da aplicação, valida e compara os valores com o intuito de
        /// recuperar os valores diferentes
        /// </summary>
        /// <param name="diffLeft">Objeto que contem os valores para validação</param>
        /// <param name="diffRight">Objeto que contem os valores para validação</param>
        /// <returns>Retorna um objeto Response que contém os erros e as observações</returns>
        public static Response VerifyDiff(DiffLeft diffLeft, DiffRight diffRight)
        {
            List <string> errors       = new List <string>();
            List <string> observations = new List <string>();

            if (diffLeft == null)
            {
                diffLeft = new DiffLeft();
                diffLeft.Validate();
            }

            if (diffRight == null)
            {
                diffRight = new DiffRight();
                diffRight.Validate();
            }

            if (diffLeft.isValid && diffRight.isValid)
            {
                string leftValue  = diffLeft.Value.ToLower();
                string rightValue = diffRight.Value.ToLower();

                if (leftValue.Equals(rightValue))
                {
                    observations.Add("Valor 'left' é idêntico ao valor 'right'.");
                }
                else
                {
                    if (leftValue.Length == rightValue.Length)
                    {
                        observations.Add("Tamanho do valor 'left' é idêntico ao tamanho do valor 'right'.");
                    }

                    char[] leftChar  = leftValue.ToCharArray();
                    char[] rightChar = rightValue.ToCharArray();

                    var differences = leftChar.Except(rightChar);
                    foreach (var diff in differences)
                    {
                        observations.Add(string.Format("O valor '{0}' não está presente em ambos.", diff));
                    }
                }

                return(new Response(errors, observations));
            }
            else
            {
                errors.AddRange(diffLeft.GetValidationMessage);
                errors.AddRange(diffRight.GetValidationMessage);

                return(new Response(errors));
            }
        }
예제 #3
0
        public void FormatObservationInclude()
        {
            string expected = "{\"Errors\":[],\"Observations\":[\"Valor Teste adicionado com sucesso.\"]}";

            DiffLeft diffLeft = new DiffLeft("Teste");

            diffLeft.Validate();

            Response result  = Validate.FormatObservationInclude(diffLeft);
            string   compare = JsonConvert.SerializeObject(result);

            Assert.True(expected.Equals(compare));
        }
예제 #4
0
        public void VerifyDiffReturnErrors()
        {
            string expected = "{\"Errors\":[\"Atributo 'value' é obrigatório.\",\"Atributo 'value' é obrigatório.\"],\"Observations\":[]}";

            DiffLeft diffLeft = new DiffLeft();

            diffLeft.Validate();

            DiffRight diffRight = new DiffRight();

            diffRight.Validate();

            Response result  = Validate.VerifyDiff(diffLeft, diffRight);
            string   compare = JsonConvert.SerializeObject(result);

            Assert.True(expected.Equals(compare));
        }