示例#1
0
        public ActionResult LibroInsertado()
        {
            ViewBag.Message = "Your contact page.";
            String    ruta  = "principal/imagenes/";
            Libro     book  = new Libro();
            CheckData check = new CheckData();

            /****************** VALIDACIONES BACK-END ***********************/

            /*check length del año de lanzamiento solo cuatro numeros*/
            if (Request.Form["nbr_lanzamiento"].Length != 4)
            {
                TempData["errorYear"] = true;
                return(RedirectToAction("InsertarLibro"));
            }
            /*check que el año de lanzamiento sea solo numeros*/
            if (!check.CheckIntNumber(Request.Form["nbr_lanzamiento"]))
            {
                TempData["errorYear"] = true;
                return(RedirectToAction("InsertarLibro"));
            }

            /*check si existe el idAutor es un dato int*/
            if (!check.CheckIntNumber(Request.Form["ddlAutor"]))
            {
                TempData["errorAutor"] = true;
                return(RedirectToAction("InsertarLibro"));
            }
            /*check si el idAutor existe en la base de datos*/
            if (!check.CheckIdAutor(Request.Form["ddlAutor"]))
            {
                TempData["errorAutor"] = true;
                return(RedirectToAction("InsertarLibro"));
            }

            /*check si existe el idCategoria es un dato int*/
            if (!check.CheckIntNumber(Request.Form["ddlCategory"]))
            {
                TempData["errorCategory"] = true;
                return(RedirectToAction("InsertarLibro"));
            }
            /*check si el idCategory existe en la base de datos*/
            if (!check.CheckIdCategory(Request.Form["ddlCategory"]))
            {
                TempData["errorCategory"] = true;
                return(RedirectToAction("InsertarLibro"));
            }

            /*check si el idEditorial es un dato int*/
            if (!check.CheckIntNumber(Request.Form["ddlEditorial"]))
            {
                TempData["errorEditorial"] = true;
                return(RedirectToAction("InsertarLibro"));
            }
            /*check si el idEditorial existe en la base de datos*/
            if (!check.CheckIdEditorial(Request.Form["ddlEditorial"]))
            {
                TempData["errorEditorial"] = true;
                return(RedirectToAction("InsertarLibro"));
            }
            /*checking precio, tambien evalua si llega vacio*/
            if (!check.CheckPrice(Request.Form["txt_price"]))
            {
                TempData["errorPrice"] = true;
                return(RedirectToAction("InsertarLibro"));
            }
            /*checking si la cantidad es un numero (si es null devuelve false)*/
            if (!check.CheckIntNumber(Request.Form["nbr_quantity"]))
            {
                TempData["errorQuantity"] = true;
                return(RedirectToAction("InsertarLibro"));
            }

            /*convierto el precio string en decimal*/
            String  precio = Request.Form["txt_price"];
            decimal price  = check.ConvertStringToDecimal(precio);

            /*para la descripcion no hago check*/

            /*pregunto si se recibió null como imagen*/
            String imagen = Request.Form["itf_urlImage"];

            if (imagen != "")
            {
                /*check formato de imagen jpg, png, gif, bmp*/
                if (!check.checkImageFormat(ruta + Request.Form["itf_urlImage"]))
                {
                    TempData["errorImg"] = true;
                    return(RedirectToAction("InsertarLibro"));
                }
            }

            /*ckeck existencia del libro en la base de datos por idAutor y nombre de libro*/
            if (check.checkAutorAndBookName(Request.Form["txt_bookName"], Request.Form["ddlAutor"]))
            {
                TempData["duplicatedBook"] = true;
                return(RedirectToAction("InsertarLibro"));
            }


            /**************** fin validaciones back-end *********************/

            book.Nombre            = Request.Form["txt_bookName"];
            book.AnioDeLanzamiento = Convert.ToInt32(Request.Form["nbr_lanzamiento"]);
            book.IdAutor           = Convert.ToInt32(Request.Form["ddlAutor"]);
            book.IdCategoria       = Convert.ToInt32(Request.Form["ddlCategory"]);
            book.IdEditorial       = Convert.ToInt32(Request.Form["ddlEditorial"]);
            book.Descripcion       = Request.Form["txta_description"];
            book.Cantidad          = Convert.ToInt32(Request.Form["nbr_quantity"]);
            book.Precio            = price;

            /*Para obtener la ruta absoluta de la img Usar esto:
             * var nombreImagen = Request.Form["itf_urlImage"];
             * var path = Path.Combine(Server.MapPath("~/principal/imagenes/"), nombreImagen);
             * book.UrlImagen = path;
             */
            if (imagen == "")
            {
                book.UrlImagen = imagen;
            }
            else
            {
                book.UrlImagen = ruta + Request.Form["itf_urlImage"];
            }

            book.Estado = true;

            LibroService ls             = new LibroService();
            int          filasAfectadas = 0;

            filasAfectadas = ls.InsertBook(book);
            /*si filasAfectadas devuelve 1, es porque se pudo insertar en la base de datos*/
            if (filasAfectadas > 0)
            {
                ViewBag.Msg = 1;
            }
            else
            {
                ViewBag.Msg = 0;
            }

            return(View());
        }