Пример #1
0
        public IActionResult Mutant(MutantDnaRequest request)
        {
            //VALIDACION DE ADNS
            var apiValidation = _mutantBsn.GeneralValidation(request);

            if (apiValidation.Success == false)
            {
                return(StatusCode(403, apiValidation.Message));
            }
            else
            {
                var dnas = request.Dna.ToList();

                //OBTENER DNA
                var isMutant  = _mutantBsn.IsMutant(dnas);
                var apiResult = _mutantBsn.GetApiResultMessageResponse(isMutant);

                //REGISTRAR (ASINCRONICAMENTE) => LA GRABACIÓN NO SE INVOLUCRA EN LA RESPUESTA
                var task = Task.Run(() => _mutantBsn.InsertDna(dnas, isMutant));

                if (apiResult.Success)
                {
                    return(Ok(apiResult));
                }
                else
                {
                    return(StatusCode(403, apiResult.Message));
                }
            }
        }
Пример #2
0
        public static MessageResponse GeneralValidation(MutantDnaRequest request)
        {
            var apiValidation = new MessageResponse();

            var cache = InvalidDnaCacheRapper.Instance;

            if (cache.IsInDnaInvalidCache(request.Dna.ToList().GetDeterministicHashCode()))
            {
                apiValidation.Success = false;
                apiValidation.Message = "ADN INVALIDO";
                return(apiValidation);
            }
            else
            {
                //NORMALIZACION DE DNAS
                var upperDna = DnaHelper.UpperDna(request.Dna.ToList());
                request.Dna = upperDna;


                //VALIDACION DE DNAS
                apiValidation = DnaValidator.ValidateDna(upperDna);

                if (apiValidation.Success == false)
                {
                    cache.AddToDnaInvalidCAche(request);
                }

                return(apiValidation);
            }
        }
Пример #3
0
 public MessageResponse GeneralValidation(MutantDnaRequest request)
 {
     return(DnaValidator.GeneralValidation(request));
 }
Пример #4
0
 public void AddToDnaInvalidCAche(MutantDnaRequest dnaRequest)
 {
     _cache.GetOrCreate(dnaRequest.Dna.ToList().GetDeterministicHashCode(), () => dnaRequest);
 }