USP_DATAFORMTEMPLATE_ADD_CSSCLASS

The save procedure used by the add dataform template "CssClass Add Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CONTENTTYPESID int IN
@CSSXML xml IN

Definition

Copy

  CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_CSSCLASS
  (
     @ID uniqueidentifier output,
     @CONTENTTYPESID int,
     @CSSXML xml
  )
  as

  set nocount on;

  begin try;

      declare @CSS_CTE table(CLASSNAME nvarchar(255), BBDEFAULTCSS nvarchar(2048), DESCRIPTION nvarchar(2048), INHERITSCLASS nvarchar(255))
      insert into @CSS_CTE(CLASSNAME, BBDEFAULTCSS, DESCRIPTION, INHERITSCLASS)
      select
              T.c.value('(Name)[1]', 'nvarchar(255)'),
              T.c.value('(DefaultStyle)[1]', 'nvarchar(2048)'),
              T.c.value('(Description)[1]', 'nvarchar(2048)'),
              T.c.value('(InheritsClass)[1]', 'nvarchar(255)')
          from @CSSXML.nodes('/CSS/Class') T(c)

          delete CC from CSSCLASSES CC left outer join @CSS_CTE CT on CC.CLASSNAME=CT.CLASSNAME
          where CC.CONTENTTYPEID = @CONTENTTYPESID
          AND CT.CLASSNAME is null

        insert into CSSCLASSES(CLASSNAME, BBDEFAULTCSS, CONTENTTYPEID, [DESCRIPTION], INHERITSCLASS)
        select
        CT.CLASSNAME, CT.BBDEFAULTCSS, @CONTENTTYPESID, CT.DESCRIPTION, CT.INHERITSCLASS
            from @CSS_CTE CT left outer join CSSCLASSES CC on CT.CLASSNAME=CC.CLASSNAME
      where CC.CLASSNAME is null

      update CSSCLASSES 
      set CSSCLASSES.BBDEFAULTCSS = CT.BBDEFAULTCSS,
          CSSCLASSES.DESCRIPTION = CT.DESCRIPTION,
          CSSCLASSES.INHERITSCLASS = CT.INHERITSCLASS
      from
        CSSCLASSES inner join @CSS_CTE CT on CSSCLASSES.CLASSNAME = CT.CLASSNAME
      where CSSCLASSES.CONTENTTYPEID=@CONTENTTYPESID

        select @ID = newid();
  end try

  begin catch
      exec dbo.USP_RAISE_ERROR
      return 1
  end catch

  return 0