spAddUpdate_SiteImages

Parameters

Parameter Parameter Type Mode Description
@PKID int INOUT
@CurrentUsersID int IN
@ClientSitesID int IN
@Name nvarchar(256) IN
@FileName nvarchar(256) INOUT
@FileExt nvarchar(50) IN
@UploadFileName nvarchar(256) IN
@ImageContent image IN
@ImageType nvarchar(50) IN
@ImageSize int IN
@Guid uniqueidentifier INOUT
@Type int IN
@Caption nvarchar(256) IN
@Approved bit IN
@Private bit IN
@Categories ntext IN
@ImageAlbumID int IN
@Photographer nvarchar(255) IN
@PhotoDateTaken nvarchar(100) IN
@Deleted bit IN
@URL nvarchar(255) IN
@ThumbX int IN
@ThumbY int IN
@ThumbLength int IN

Definition

Copy

CREATE procedure [dbo].[spAddUpdate_SiteImages]
(
    @PKID            int output,
    @CurrentUsersID    int,        
    @ClientSitesID    int,
    @Name            nvarchar(256),
    @FileName        nvarchar(256) OUTPUT,
    @FileExt        nvarchar(50),
    @UploadFileName    nvarchar(256),
    @ImageContent    image,
    @ImageType        nvarchar(50),
    @ImageSize        int,
    @Guid            uniqueidentifier output,
    @Type            int,
    @Caption        nvarchar(256),
    @Approved        bit,
    @Private        bit,
    @Categories        ntext,
    @ImageAlbumID    int,
    @Photographer    nvarchar(255),
    @PhotoDateTaken    nvarchar(100),
    @Deleted        bit,
    @URL            nvarchar(255) = null,
    @ThumbX            int = 0,
    @ThumbY            int = 0,
    @ThumbLength    int = 0
)
as

    set nocount on;

    declare @Error int;

    set @Error = 0;

    if @URL = ''
        set @URL = null

    begin transaction AddUpdate_SiteImage;

    if @PKID <= 0
    begin

        if @Guid is null or @Guid = '00000000-0000-0000-0000-000000000000'
            set @Guid = newid();

        insert into SiteImages
        (
            ClientSitesID,
            [Name],
            [FileName],
            ImageContent,
            ImageType,
            ImageSize,
            Guid,
            UploadFileName,
            OwnerID,
            [Type],
            Caption,
            Approved,
            Private,
            Photographer,
            PhotoDateTaken,
            Deleted,
            URL,
            ThumbX,
            ThumbY,
            ThumbLength
        )
        values
        (
            @ClientSitesID,
            @Name,
            @FileName,
            @ImageContent,
            @ImageType,
            @ImageSize,
            @Guid,
            @UploadFileName,
            @CurrentUsersID,
            @Type,
            @Caption,
            @Approved,
            @Private,
            @Photographer,
            @PhotoDateTaken,
            @Deleted,
            @URL,
            @ThumbX,
            @ThumbY,
            @ThumbLength
        );

        set @Error = @@error;
        if @Error = 0 
        begin
            select @PKID = @@identity;

            set @FileName = 'img' + convert(nvarchar, @PKID) + @FileExt;

            update SiteImages set [FileName] = @FileName where ID = @PKID;

            if @ImageAlbumID > 0
            begin
                --INSERT the Album
                insert into ImageAlbum_Images (ImageAlbumID, SiteImageID) values (@ImageAlbumID, @PKID);
            end

            set @Error = @@error;
            if @Error = 0
            begin
                exec spAddUpdate_SiteImageFolders @PKID, @Categories;

                set @Error = @@error;
                if @Error = 0
                begin
                    exec spAuditThis @CurrentUsersID, 1, @Guid, 4;

                    set @Error = @@error;
                end
            end
        end

        --set default object security for newly uploaded images
        declare @CURRENTDATE datetime = getdate()
        declare @CHANGEAGENTID uniqueidentifier
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
        declare @OBJECTTASKID uniqueidentifier

        set @OBJECTTASKID = (select ID from dbo.CMSOBJECTTASK where ENUMID = 0
        insert into CMSEVERYONESECURITYPRIVS(SECUREDOBJECTGUID, SECUREDOBJECTTYPEID, OBJECTTASKID, VALUE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values(@Guid, 4, @OBJECTTASKID, 1, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

        set @OBJECTTASKID = (select ID from dbo.CMSOBJECTTASK where ENUMID = 1
        insert into CMSEVERYONESECURITYPRIVS(SECUREDOBJECTGUID, SECUREDOBJECTTYPEID, OBJECTTASKID, VALUE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values(@Guid, 4, @OBJECTTASKID, 0, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

        set @OBJECTTASKID = (select ID from dbo.CMSOBJECTTASK where ENUMID = 3
        insert into CMSEVERYONESECURITYPRIVS(SECUREDOBJECTGUID, SECUREDOBJECTTYPEID, OBJECTTASKID, VALUE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values(@Guid, 4, @OBJECTTASKID, 0, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

        set @OBJECTTASKID = (select ID from dbo.CMSOBJECTTASK where ENUMID = 4
        insert into CMSEVERYONESECURITYPRIVS(SECUREDOBJECTGUID, SECUREDOBJECTTYPEID, OBJECTTASKID, VALUE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values(@Guid, 4, @OBJECTTASKID, 0, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

    end
    else
    begin        
        if @ImageSize = 0
            update SiteImages set 
                [Name]        = @Name,
                Caption        = @Caption,
                [Type]        = @Type,
                Approved    = @Approved,
                Private        = @Private,
                Photographer    = @Photographer,
                PhotoDateTaken    = @PhotoDateTaken,
                Deleted     = @Deleted,
                URL            = @URL,
                ThumbX        = @ThumbX,
                ThumbY        = @ThumbY,
                ThumbLength = @ThumbLength
            where ID = @PKID;
        else
            update SiteImages set
                [Name]            = @Name,
                [FileName]        = @FileName,
                UploadFileName    = @UploadFileName,
                ImageContent    = @ImageContent,
                ImageType        = @ImageType,
                ImageSize        = @ImageSize,
                Caption            = @Caption,                        
                [Type]            = @Type,
                Approved        = @Approved,
                Private            = @Private,
                Photographer    = @Photographer,
                PhotoDateTaken    = @PhotoDateTaken,
                Deleted     = @Deleted,
                URL            = @URL,
                ThumbX        = @ThumbX,
                ThumbY        = @ThumbY,
                ThumbLength = @ThumbLength
            where ID = @PKID;

        set @Error = @@error;
        if @Error = 0
        begin
            select @Guid = Guid from SiteImages where ID = @PKID;

            exec spAddUpdate_SiteImageFolders @PKID, @Categories;

            set @Error = @@error;
            if @Error = 0
            begin
                exec spAuditThis @CurrentUsersID, 2, @Guid, 4;

                set @Error = @@error;
            end
        end
    end

    if @Error = 0
        commit transaction AddUpdate_SiteImage;
    else
        rollback transaction AddUpdate_SiteImage;