public ResponseModel ValidateTestInsData(TestInsQueryFilter testInsQueryFilter)
 {
     try
     {
         TestValidator validator        = new TestValidator();
         var           validationResult = validator.Validate(testInsQueryFilter);
         return(MainValidator.IterationValidationResult(validationResult));
     }
     catch (Exception err)
     {
         throw new Exception(err.Message);
     }
 }
示例#2
0
        public async Task <ResponsePost> InsTestAsync(TestInsQueryFilter testInsQueryFilter)
        {
            #region Test Validator
            var responseModel = _testRepositoryVal.ValidateTestInsData(testInsQueryFilter);
            if (!responseModel.IsValid)
            {
                return(new ResponsePost()
                {
                    Messages = responseModel.ValidationMessages.ToArray(),
                    StatusCode = HttpStatusCode.BadRequest
                });
            }
            #endregion

            #region Reglas de Negocio
            //Si existe un registro con VALOR igual en la tabla Test2 no permitir el insert en Test
            var test2 = await _testRepository.GetDataBDTest2Async(testInsQueryFilter);

            if (test2.Count() > 0)
            {
                return(new ResponsePost()
                {
                    Messages = new Message[] { new Message()
                                               {
                                                   Type = TypeMessage.warning.ToString(), Description = "El valor que se intenta registrar en Test1 ya existe en Test2"
                                               } },
                    StatusCode = HttpStatusCode.BadRequest
                });
            }
            #endregion

            var testIns = await _testRepository.InsTestAsync(testInsQueryFilter);

            if (testIns.AffectedRows > 0)
            {
                return(new ResponsePost()
                {
                    Response = testIns,
                    StatusCode = HttpStatusCode.OK
                });
            }
            else
            {
                return(new ResponsePost()
                {
                    Response = testIns,
                    StatusCode = HttpStatusCode.NoContent
                });
            }
        }
 public async Task <IEnumerable <Test> > GetDataBDTest2Async(TestInsQueryFilter testInsQueryFilter)
 {
     try
     {
         var dyParam = new OracleDynamicParameters();
         dyParam.Add("TESTCURSOR2", OracleDbType.RefCursor, ParameterDirection.Output);
         dyParam.Add("p_valor", OracleDbType.Varchar2, ParameterDirection.Input, testInsQueryFilter.Valor);
         return(await _coneccion.GetData <Test>(dyParam, "TestAcad.SP_GETTEST2"));
     }
     catch (Exception err)
     {
         throw new Exception(err.Message);
     }
 }
示例#4
0
        public async Task <IActionResult> PostPersona(TestInsQueryFilter testInsQueryFilter)
        {
            try
            {
                var per = await _testService.InsTestAsync(testInsQueryFilter);

                return(StatusCode((int)per.StatusCode, per));
            }
            catch (Exception err)
            {
                _logger.LogError(err, "Error inesperado");

                var responsePost = new ResponsePost()
                {
                    Messages = new Message[] { new Message()
                                               {
                                                   Type = TypeMessage.error.ToString(), Description = err.Message
                                               } },
                };
                return(StatusCode(500, responsePost));
            }
        }
        public async Task <ResponsePostDetail> InsTestAsync(TestInsQueryFilter testInsQueryFilter)
        {
            try
            {
                var affectedRows = 0;
                var dyParam      = new OracleDynamicParameters();
                dyParam.Add("valor", OracleDbType.Varchar2, ParameterDirection.Input, testInsQueryFilter.Valor);
                dyParam.Add("affected_rows", OracleDbType.Int32, ParameterDirection.Output, 0);
                await _coneccion.InsData(dyParam, "TestAcad.SP_INSERTTEST");

                affectedRows = dyParam.Get("affected_rows");

                return(new ResponsePostDetail()
                {
                    Process = "Test",
                    AffectedRows = affectedRows
                });
            }
            catch (Exception err)
            {
                throw new Exception(err.Message);
            }
        }