UFN_EMAIL_INVALIDACCOUNTS_QUERY

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@ISBLACKLISTED int IN
@DATERANGE int IN

Definition

Copy


        CREATE function dbo.UFN_EMAIL_INVALIDACCOUNTS_QUERY
        (
          @ISBLACKLISTED integer = null,
          @DATERANGE integer = null
        )
        returns @INVALIDACCOUNTS table
        (
          ID uniqueidentifier,
          ADDRESS nvarchar(205),
          FAILEDMESSAGE nvarchar(max),
          DATEPROCESSED datetime,
          FAILEDATTEMPTS int,
          ISBLACKLISTED bit
        )
        as
          begin
            declare @DATECHECK date;
            declare @CURRENTDATE date = convert(date, getutcdate());
            set @DATECHECK = 
            case 
              when @DATERANGE = 0 then
                @CURRENTDATE
              when @DATERANGE = 1 then
                convert(date,dateadd(d,-7,@CURRENTDATE))
              when @DATERANGE = 2 then
                      convert(date,dateadd(d,-30,@CURRENTDATE))
            end;

            if @ISBLACKLISTED is null
            begin
              if @DATECHECK is null
              begin
                insert into @INVALIDACCOUNTS (ID, ADDRESS, FAILEDMESSAGE, DATEPROCESSED, FAILEDATTEMPTS, ISBLACKLISTED)
                select ID, [ADDRESS], FAILEDMESSAGE, dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEFROMUTC(DATEPROCESSED), FAILEDATTEMPTS, ISBLACKLISTED
                    from EMAILINVALIDRECIPIENT
                    order by DATEPROCESSED desc;
              end
              else
              begin
                insert into @INVALIDACCOUNTS (ID, ADDRESS, FAILEDMESSAGE, DATEPROCESSED, FAILEDATTEMPTS, ISBLACKLISTED)
                select ID, [ADDRESS], FAILEDMESSAGE, dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEFROMUTC(DATEPROCESSED), FAILEDATTEMPTS, ISBLACKLISTED
                    from EMAILINVALIDRECIPIENT
                  where DATEPROCESSED > @DATECHECK
                    order by DATEPROCESSED desc;
              end
            end
            else
            begin
              if @DATECHECK is null
              begin
                insert into @INVALIDACCOUNTS (ID, ADDRESS, FAILEDMESSAGE, DATEPROCESSED, FAILEDATTEMPTS, ISBLACKLISTED)
                select ID, [ADDRESS], FAILEDMESSAGE, dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEFROMUTC(DATEPROCESSED), FAILEDATTEMPTS, ISBLACKLISTED
                    from EMAILINVALIDRECIPIENT
                  where ISBLACKLISTED = cast(@ISBLACKLISTED as bit)
                    order by DATEPROCESSED desc;
              end
              else
              begin
                insert into @INVALIDACCOUNTS (ID, ADDRESS, FAILEDMESSAGE, DATEPROCESSED, FAILEDATTEMPTS, ISBLACKLISTED)
                select ID, [ADDRESS], FAILEDMESSAGE, dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEFROMUTC(DATEPROCESSED), FAILEDATTEMPTS, ISBLACKLISTED
                    from EMAILINVALIDRECIPIENT
                  where ISBLACKLISTED = cast(@ISBLACKLISTED as bit)
                    and DATEPROCESSED > @DATECHECK
                    order by DATEPROCESSED desc;
              end
            end

          return;
          end