コード例 #1
0
        //---------------------------------------------------------------------------------------------------------------------------------------
        ///<summary> Adiciona/Modifica una nueva categoria de acuerdo a los datos del cuerpo de la solicitud (si edId crea una nueva)  </summary>
        private JsonResult AddModifyCategoria(IFormFile fileFoto, int edId, Categorium cat)
        {
            var categorias = new Categorias(HttpContext);               // Obtiene objetos para operaciones con las categorias

            int Id;

            try                { Id = categorias.Change(edId, cat); }   // Si edId = 0, adiciona, si no modifica una categoria
            catch (Exception) { return(retJson.NoModify(edId, cat.Nombre)); }  // Hubo un error modificando o borrando la categoria

            if (Id <= 0)
            {
                return(retJson.NoExist(edId, cat.Nombre));              // No se encontro la categoria a borrar
            }
            try                                                         // Intenta guardar el logotipo de la categoria
            {
                var name  = "Categoria" + cat.Id;                       // Nombre que va ha tener el fichero
                var fName = SaveFile("Logos", name, fileFoto);          // Trata de guardar el logo, subido con la solicitud

                if (fName == null && edId == 0)                         // Si no se subio un Logo y si es un registro nuevo
                {
                    fName = CopyFile(cat.Logo, "Logos", name);          // Hace un duplicado del fichero del logo
                }
                if (fName != null)                                      // Si se cambio el logo
                {
                    categorias.ChangeLogo(Id, fName);                   // Modifica localizacion y nombre del logo en la BD
                }
            }
            catch (Exception) { }                                       // Ignora cualquier error guardando el logo

            return(retJson.OkId(Id));
        }