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()))); } }
/// <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)); } }
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)); }
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)); }