USP_DATAFORMTEMPLATE_EDIT_CURRENCYEXCHANGERATEDOWNLOADPROCESSXIGNITE

The save procedure used by the edit dataform template "Xignite Currency Exchange Rate Download Process Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@NAME nvarchar(100) IN Name
@DESCRIPTION nvarchar(4000) IN Description
@TYPECODE tinyint IN Type
@SETSOURCECODETOPROVIDER bit IN Set the exchange rate source to Xignite
@RATES xml IN Rates
@DELETEHISTORYTHRESHOLDCODE tinyint IN Delete history older than
@PROVIDERAUTHENTICATION xml IN Authentication
@SETPROVIDERAUTHENTICATIONASDEFAULT bit IN Set as default authentication for Xignite
@PROVIDERPARAMETERS xml IN Parameters

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_CURRENCYEXCHANGERATEDOWNLOADPROCESSXIGNITE]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier,
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(4000),
  @TYPECODE tinyint,
  @SETSOURCECODETOPROVIDER bit,
  @RATES xml,
  @DELETEHISTORYTHRESHOLDCODE tinyint,
  @PROVIDERAUTHENTICATION xml,
  @SETPROVIDERAUTHENTICATIONASDEFAULT bit,
  @PROVIDERPARAMETERS xml
)
as
  set nocount on;

  declare @CURRENTDATE datetime;

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

  set @CURRENTDATE = getdate();

  exec dbo.[USP_GET_KEY_ACCESS];

  begin try
    update dbo.[CURRENCYEXCHANGERATEDOWNLOADPROCESS] set
      [NAME] = @NAME,
      [DESCRIPTION] = @DESCRIPTION,
      [TYPECODE] = @TYPECODE,
      [SETSOURCECODETOPROVIDER] = @SETSOURCECODETOPROVIDER,
      [PROVIDERAUTHENTICATION] = encryptbykey(key_guid('sym_BBInfinity'), convert(nvarchar(3800), @PROVIDERAUTHENTICATION)),
      [PROVIDERPARAMETERS] = @PROVIDERPARAMETERS,
      [DELETEHISTORYTHRESHOLDCODE] = @DELETEHISTORYTHRESHOLDCODE,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE
    where [ID] = @ID;

    exec dbo.[USP_CURRENCYEXCHANGERATEDOWNLOADPROCESS_GETRATES_UPDATEFROMXML] @ID, @RATES, @CHANGEAGENTID;

    update dbo.[CURRENCYEXCHANGERATEPROVIDER] set
      [DEFAULTAUTHENTICATION] = case when @SETPROVIDERAUTHENTICATIONASDEFAULT = 1 then encryptbykey(key_guid('sym_BBInfinity'), convert(nvarchar(3800), @PROVIDERAUTHENTICATION)) else [DEFAULTAUTHENTICATION] end
    where [ID] = '6E1EAAEF-070F-4F88-B546-036EFA7AE96E';
  end try

  begin catch
    exec dbo.[USP_RAISE_ERROR];
    return 1;
  end catch

  close symmetric key sym_BBInfinity;

  return 0;