USP_DATAFORMTEMPLATE_ADD_THIRDPARTYAUTH_APPLICATIONUSER

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@DISPLAYNAME nvarchar(255) IN
@EMAILADDRESS UDT_EMAILADDRESS IN
@CONSTITUENTID uniqueidentifier IN
@SYSTEMROLES xml IN
@SITEID uniqueidentifier IN
@CURRENCYSETID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_THIRDPARTYAUTH_APPLICATIONUSER
(
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @DISPLAYNAME nvarchar(255) = '',
    @EMAILADDRESS dbo.UDT_EMAILADDRESS,
    @CONSTITUENTID uniqueidentifier = null,
    @SYSTEMROLES xml = null,
    @SITEID uniqueidentifier = null,
    @CURRENCYSETID uniqueidentifier = null
)
as
    set nocount on;

    if @ID is null
        set @ID = newid();

    if @CHANGEAGENTID is null  
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

    declare @CURRENTDATE datetime = getdate();

    begin try
        if @CONSTITUENTID is not null 
            --Remove any old link because duplicates are not allowed.

            update dbo.APPUSER set
                CONSTITUENTID = null,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE                    
            where (CONSTITUENTID = @CONSTITUENTID
                and (ID <> @ID);

        insert into dbo.APPUSER
            (ID, USERSID, DISPLAYNAME, EMAILADDRESS, CONSTITUENTID, SITEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values
            (@ID, SUSER_SID('NT AUTHORITY\ANONYMOUS LOGON'), @DISPLAYNAME, @EMAILADDRESS, @CONSTITUENTID, @SITEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

        exec dbo.USP_APPUSER_GETALLSYSTEMROLES_UPDATEFROMXML @ID, @SYSTEMROLES;

        if @CURRENCYSETID is not null
            insert into dbo.APPUSERCURRENCYSET
                (APPUSERID, CURRENCYSETID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            values
                (@ID, @CURRENCYSETID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

    end try

    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

    return 0;