spAddUpdate_ClientUserMRU

Parameters

Parameter Parameter Type Mode Description
@CurrentUsersID int IN
@ObjectID int IN
@ObjectTypeID int IN
@ContentID int IN

Definition

Copy


CREATE   PROCEDURE dbo.spAddUpdate_ClientUserMRU
(
    @CurrentUsersID    int,        
    @ObjectID        int,
    @ObjectTypeID        int,
    @ContentID        int
)
AS

declare @MeCount int

select @MeCount=count(id) from clientusermru where userid=@CurrentUsersID and objecttypeid=@ObjectTypeID and ObjectID=@ObjectID

/*
declare @count int
select @count=count(id) from clientusermru where userid=@CurrentUsersID and objecttypeid=@ObjectTypeID 
*/


if (@MeCount > 0
begin
    /* 
    I'm already in the list just update my access date
    */
    update ClientUserMRU set LastAccessed=getutcdate() where userid=@CurrentUsersID and objecttypeid=@ObjectTypeID and ObjectID=@ObjectID
end
else
begin

    /*
    rollout oldest items of this type
    */
    delete from clientusermru where userid=@CurrentUsersID and objecttypeid=@ObjectTypeID and id not in (select top 9 id from clientusermru where userid=@CurrentUsersID and objecttypeid=@ObjectTypeID order by lastaccessed desc)

    insert into ClientUserMRU
    (    
        userid,
        objectid,
        objecttypeid,
        contentid,
        Lastaccessed
    )
    values
    (
            @CurrentUsersID,        
        @ObjectID,
        @ObjectTypeID,
        @ContentID,
        getutcdate()
    )

end