コード例 #1
0
        public List <FCCxCBienoServicio> NEGOCIO_SelectAll()
        {
            try
            {
                var resTemp = new DATOS_BienoServicio().DATOS_selectAll();
                /*TODO*/
                List <FCCxCBienoServicio> res = new List <FCCxCBienoServicio>();
                foreach (var r in resTemp)
                {
                    FCCxCBienoServicio n = new FCCxCBienoServicio()
                    {
                        IdBoS       = r.IdBoS,
                        DscBoS      = r.DscBoS,
                        IdAuxiliar  = r.IdAuxiliar,
                        IdConcepto  = r.IdConcepto,
                        FecCreacion = r.FecCreacion,
                        UsrCreacion = r.UsrCreacion,
                        FecUltModif = r.FecUltModif,
                        UsrUltModif = r.UsrUltModif,
                        Id_SP       = r.Id_SP
                    };
                    res.Add(n);
                }
                return(res);
            }

            catch (Exception ex)
            {
                var msgError = ex.Message;
            }
            return(null);
        }
コード例 #2
0
        public void BienoServicio_Post_Debe_FALLAR_IdAuxiliarInvalido()
        {
            // arrange

            var bienoServicioNuevo = new FCCxCBienoServicio()
            {
                DscBoS      = "Nuevo bien o servicio csanabria",
                IdAuxiliar  = 100,  //verificar que el registro no exista en FCCxCAuxiliar
                IdConcepto  = 1,
                FecCreacion = DateTime.Now,
                UsrCreacion = "pruebaUnit",
                FecUltModif = DateTime.Now,
                UsrUltModif = "pruebaunit"
            };

            var ctrl = new BienoServicioController();

            ctrl.Request       = new HttpRequestMessage();
            ctrl.Configuration = new HttpConfiguration();

            // act

            //invocar el post del controlador Api
            HttpResponseMessage result = ctrl.Post(bienoServicioNuevo);

            //notas: 1. reporte de errores es pobre, negocios y datos solo retornan false si hubo error
            //en el api detecto error y genero un mensaje de tipo InternalServerError, pero no tengo más detalles,
            //no hay excepciones en las capas de datos y negocios, tuve que depurar para ver que era null exception
            //2. idealmente por buen diseño el api debería devolver un StatusCode.OK con el Id del nuevo registro creado, pero
            //la implementación de las capas no lo permiten

            // assert, debe retornar internal server error
            Assert.AreEqual(result.StatusCode, System.Net.HttpStatusCode.InternalServerError, "Debía retornar internal server error y no lo hizo"); //TODO: validar que sea OK
        }
コード例 #3
0
        public void BienoServicio_Put_DebeModificarCorretamente()
        {
            // arrange

            var bienoServicioModif = new FCCxCBienoServicio()
            {
                IdBoS       = 1,
                DscBoS      = "Modif prueba unit" + DateTime.Now.ToShortTimeString(),
                IdAuxiliar  = 1,
                IdConcepto  = 1,
                FecCreacion = DateTime.Now,
                UsrCreacion = "pruebaUnit",
                FecUltModif = DateTime.Now,
                UsrUltModif = "pruebaunit"
            };

            var ctrl = new BienoServicioController();

            ctrl.Request       = new HttpRequestMessage();
            ctrl.Configuration = new HttpConfiguration();

            // act

            //invocar el post del controlador Api
            HttpResponseMessage result = ctrl.Put(bienoServicioModif);

            //notas: 1. reporte de errores es pobre, negocios y datos solo retornan false si hubo error
            //en el api detecto error y genero un mensaje de tipo InternalServerError, pero no tengo más detalles,
            //no hay excepciones en las capas de datos y negocios, tuve que depurar para ver que era null exception
            //2. idealmente por buen diseño el api debería devolver un StatusCode.OK con el Id del nuevo registro creado, pero
            //la implementación de las capas no lo permiten

            // assert
            Assert.AreNotEqual(result.StatusCode, System.Net.HttpStatusCode.InternalServerError, "Error en la inserción"); //TODO: validar que sea OK
        }
コード例 #4
0
        // PUT: api/BienoServicio/5
        public HttpResponseMessage Put(FCCxCBienoServicio BienoServicioModif)
        {
            try
            {
                using (var objNegocio = new NEGOCIO_BienoServicio())
                {
                    var resNegocios = objNegocio.NEGOCIO_update(BienoServicioModif);

                    //mensaje Http de respuesta del Api
                    HttpResponseMessage res = null;

                    if (resNegocios)
                    {
                        //crear respuesta de ok
                        res = new HttpResponseMessage(HttpStatusCode.OK);
                    }
                    else
                    {
                        //crear respuesta de error
                        res = new HttpResponseMessage(HttpStatusCode.InternalServerError);
                    }
                    return(res);
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
コード例 #5
0
        // POST: api/BienoServicio
        public HttpResponseMessage Post([FromBody] FCCxCBienoServicio nuevoBienoServicio)
        {
            try
            {
                //probar throw new Exception("Error de prueba");
                using (var objNegocio = new NEGOCIO_BienoServicio())
                {
                    var resNegocios = objNegocio.NEGOCIO_insertar(nuevoBienoServicio);

                    //mensaje Http de respuesta del Api
                    HttpResponseMessage res = null;

                    if (resNegocios)
                    {
                        //crear respuesta de ok
                        res = new HttpResponseMessage(HttpStatusCode.OK);

                        //no se puede obtener el Id del nuevo registro pues retorna un bool
                        //var message = Request.CreateResponse(HttpStatusCode.Created, nuevoConcepto.IdConcepto);
                        //message.Headers.Location = new Uri(Request.RequestUri +
                        //    nuevoConcepto.IdConcepto.ToString());
                    }
                    else
                    {
                        //crear respuesta de error
                        res = new HttpResponseMessage(HttpStatusCode.InternalServerError);
                    }
                    return(res);
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
コード例 #6
0
        public HttpResponseMessage ObtenerBoSPrecio(FCCxCBienoServicio BienoServicioBuscar) //(int IdAuxiliar, int IdBienOServicio, int Periodo)
        {
            try
            {
                HttpResponseMessage res;
                using (var objNegocio = new NEGOCIO_BienoServicio())
                {
                    //Retorna la lista de Bienes o Servicios, con precio, idprecio, periodo
                    var oBoSPrecio = objNegocio.NEGOCIO_Select(BienoServicioBuscar.IdBoS); // new NEGOCIO_BoSPrecio();// (224, "CA", 0, "Desconocido", Key_Ambiente);

                    //por qué hace esto antes de devolverlo?

                    if (BienoServicioBuscar.IdBoS > 0)                //if (BienoServicioBuscar.IdBienOServicio > 0)
                    {
                        oBoSPrecio.IdBoS = BienoServicioBuscar.IdBoS; // BienoServicioBuscar.IdBienOServicio;
                    }

                    oBoSPrecio.IdAuxiliar = BienoServicioBuscar.IdAuxiliar;

                    res = Request.CreateResponse(HttpStatusCode.OK, oBoSPrecio);
                    //response.Content = ???
                    res.Headers.CacheControl = new CacheControlHeaderValue()
                    {
                        MaxAge = TimeSpan.FromMinutes(20)
                    };
                }
                return(res);
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }
コード例 #7
0
 public bool NEGOCIO_update(FCCxCBienoServicio obj)
 {
     try
     {
         var resultado = new DATOS_BienoServicio().DATOS_update(obj);
         return(resultado);
     }
     catch (Exception ex)
     {
         var msgError = ex.Message;
         return(false);
     }
 }