public int grabarSubArea(Models.SubareaPreventa oSubAreaPreventa, List <Models.FiguraSubareaPreventa> lstFigurasArea)
        {
            Guid methodOwnerID     = new Guid("91fe2269-b98f-4376-bcdb-06a3e750c744");
            int  idSubAreaPreventa = 0;
            int  nFiguras          = 0;

            OpenDbConn();

            if (cDblib.Transaction.ownerID.Equals(new Guid()))
            {
                cDblib.beginTransaction(methodOwnerID);
            }

            try
            {
                DAL.SubareaPreventa cSubAreaPreventa = new DAL.SubareaPreventa(cDblib);

                DataTable dtFiguras = new DataTable();
                dtFiguras.Columns.Add(new DataColumn("col_1", typeof(int)));
                dtFiguras.Columns.Add(new DataColumn("col_2", typeof(char)));


                //Recorremos la lista
                foreach (Models.FiguraSubareaPreventa oFiguras in lstFigurasArea)
                {
                    DataRow row = dtFiguras.NewRow();
                    row["col_1"] = oFiguras.t001_idficepi;
                    row["col_2"] = oFiguras.ta203_figura;

                    dtFiguras.Rows.Add(row);
                }

                idSubAreaPreventa = cSubAreaPreventa.grabarSubArea(oSubAreaPreventa);

                nFiguras = cSubAreaPreventa.grabarFigurasSubArea(oSubAreaPreventa.ta201_idsubareapreventa, dtFiguras);

                //Finalizar transacción
                if (cDblib.Transaction.ownerID.Equals(methodOwnerID))
                {
                    cDblib.commitTransaction(methodOwnerID);
                }

                return(idSubAreaPreventa);
            }
            catch (Exception ex)
            {
                //rollback
                if (cDblib.Transaction.ownerID.Equals(methodOwnerID))
                {
                    cDblib.rollbackTransaction(methodOwnerID);
                }

                throw ex;
            }
        }