spGetMessageCounts_Filtered

Parameters

Parameter Parameter Type Mode Description
@OwnerAccountID int IN
@MessageTypeFilter int IN

Definition

Copy




CREATE PROCEDURE [dbo].[spGetMessageCounts_Filtered]
(
    @OwnerAccountID int,
    @MessageTypeFilter int
)
    AS

    DECLARE    @Read int
    DECLARE    @UnRead int

        --DRAFTS
        if @MessageTypeFilter = 0
        BEGIN

        SELECT 
        @Read = SUM(CASE o.Viewed
         WHEN 1 THEN 1
         ELSE 0
         END),
        @UnRead = SUM(CASE o.Viewed
         WHEN 0 THEN 1
         ELSE 0
         END)
        FROM [Message] o
        WHERE o.OwnerID = @OwnerAccountID
        AND (o.RecipientGroupID = 0 OR o.RecipientGroupID IS NULL)
        AND o.SenderID = o.OwnerID
        AND (o.OwnerID <> o.RecipientID OR o.RecipientID IS NULL OR o.RecipientID = 0)
        AND o.Sent = 0 AND o.Deleted = 0
        AND (o.MessageFolderID = 0 or o.MessageFolderID IS NULL)

        END


        --SENT
        if @MessageTypeFilter = 1
        BEGIN

        SELECT 
        @Read = SUM(CASE o.Viewed
         WHEN 1 THEN 1
         ELSE 0
         END),
        @UnRead = SUM(CASE o.Viewed
         WHEN 0 THEN 1
         ELSE 0
         END)
        FROM [Message] o
        WHERE o.OwnerID  = @OwnerAccountID
        AND o.SenderID = o.OwnerID
        AND o.Sent = 1 AND o.Deleted = 0
        AND (o.MessageFolderID = 0 or o.MessageFolderID IS NULL)

        END

        --RECEIVED
        if @MessageTypeFilter = 2
        BEGIN

        SELECT 
        @Read = SUM(CASE o.Viewed
         WHEN 1 THEN 1
         ELSE 0
         END),
        @UnRead = SUM(CASE o.Viewed
         WHEN 0 THEN 1
         ELSE 0
         END)
        FROM [Message] o
        WHERE o.OwnerID  = @OwnerAccountID
        AND o.RecipientID = o.OwnerID
        AND o.Deleted = 0
        AND (o.MessageFolderID = 0 or o.MessageFolderID IS NULL)

        END

        --TRASH
        if @MessageTypeFilter = 3
        BEGIN

        SELECT 
        @Read = SUM(CASE i.Viewed WHEN 1 THEN 1 ELSE 0 END),  
        @UnRead = SUM(CASE i.Viewed WHEN 1 THEN 0 ELSE 1 END)
        FROM
        (SELECT viewed FROM message WHERE OwnerID = @OwnerAccountID and Deleted = 1) as i

        END

        --PERSONAL FOLDERS
        if @MessageTypeFilter = 4
        BEGIN

        SELECT 
        @Read = SUM(CASE i.Viewed WHEN 1 THEN 1 ELSE 0 END),  
        @UnRead = SUM(CASE i.Viewed WHEN 1 THEN 0 ELSE 1 END)
        FROM
        (SELECT viewed FROM message WHERE OwnerID = @OwnerAccountID and Deleted = 0 AND MessageFolderID > 0) as i

        END


        SELECT    ISNULL(@Read, 0) 'Read',
                ISNULL(@UnRead, 0) 'UnRead'