USP_APPUSER_MIGRATETOBBIDUSER

Parameters

Parameter Parameter Type Mode Description
@APPUSERID uniqueidentifier IN
@EMAILADDRESS nvarchar(100) IN
@NAMEIDENTIFIER nvarchar(450) IN
@DISPLAYNAME nvarchar(255) IN
@CHANGEAGENTID uniqueidentifier IN
@LASTLOGINDATE datetime IN

Definition

Copy


CREATE procedure [dbo].[USP_APPUSER_MIGRATETOBBIDUSER](
    @APPUSERID uniqueidentifier,
    @EMAILADDRESS nvarchar(100),
    @NAMEIDENTIFIER nvarchar(450),
    @DISPLAYNAME nvarchar(255) = null,
    @CHANGEAGENTID uniqueidentifier = null,
    @LASTLOGINDATE datetime = null)
as
begin
  set nocount on;

  if @EMAILADDRESS is null begin
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end

  if @EMAILADDRESS = '' begin
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end

  if ((select count(1) from dbo.APPUSERCLAIMS where EMAILADDRESS = @EMAILADDRESS and APPUSERID <> @APPUSERID) = 1) begin
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end

  declare @CURRENTTIME datetime = GETDATE();

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

  exec USP_APPUSER_UPDATEINFO @APPUSERID, @EMAILADDRESS, @DISPLAYNAME, @CHANGEAGENTID, @LASTLOGINDATE 
  --Don't readd the claim if it already exist which it will in some cases

  if ((select count(1) from dbo.APPUSERCLAIMS where EMAILADDRESS = @EMAILADDRESS and APPUSERID = @APPUSERID) = 0)
    exec USP_APPUSERCLAIMS_ADD @NAMEIDENTIFIER, @APPUSERID, @EMAILADDRESS

  begin try
    update dbo.APPUSER
    set CUSTOM_AUTHENTICATION_USERID = '',
      DATECHANGED = @CURRENTTIME,
      CHANGEDBYID = @CHANGEAGENTID 
    where ID = @APPUSERID
  end try
  begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end catch

  return 0;
end