spAddUpdate_ClientUserDashboardPanel
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PKID | int | INOUT | |
@ClientUsersID | int | IN | |
@SiteContentID | int | IN | |
@CategoryTypeID | int | IN | |
@TypeID | int | IN | |
@AuxID | int | IN | |
@DockingLocation | nvarchar(1000) | IN | |
@DockingIndex | int | IN | |
@IsCollapsed | bit | IN |
Definition
Copy
CREATE PROCEDURE dbo.spAddUpdate_ClientUserDashboardPanel
(
@PKID int output,
@ClientUsersID int,
@SiteContentID int,
@CategoryTypeID int,
@TypeID int,
@AuxID int,
@DockingLocation nvarchar (1000),
@DockingIndex int ,
@IsCollapsed bit
)
AS
if (@PKID<=0) begin
INSERT INTO ClientUserDashboardPanel
(
ClientUsersID,
SiteContentID,
CategoryTypeID,
TypeID,
AuxID,
DockingLocation,
DockingIndex,
IsCollapsed,
saved_date
)
VALUES
(
@ClientUsersID,
@SiteContentID,
@CategoryTypeID,
@TypeID,
@AuxID,
@DockingLocation,
@DockingIndex,
@IsCollapsed,
getutcdate()
)
SELECT
@PKID = @@Identity
end else begin
DECLARE @PreviousPane nvarchar(1000)
DECLARE @PreviousIndex int
SELECT
@PreviousPane = DockingLocation,
@PreviousIndex = DockingIndex
FROM
dbo.ClientUserDashboardPanel
WHERE
ID = @PKID
if @DockingLocation = @PreviousPane
begin
if @DockingIndex = @PreviousIndex
begin
/*Nothing has changed*/
return
end
if @DockingIndex > @PreviousIndex
begin
/*Same pane new index is higher that previous*/
UPDATE dbo.ClientUserDashboardPanel
SET
DockingIndex = DockingIndex -1
WHERE
ClientUsersID = @ClientUsersID
AND
SiteContentID = @SiteContentID
AND
DockingLocation = @DockingLocation
AND
DockingIndex <= @DockingIndex
end
if @DockingIndex < @PreviousIndex
begin
/*Same pane new index is lower than previous*/
UPDATE dbo.ClientUserDashboardPanel
SET
DockingIndex = DockingIndex +1
WHERE
ClientUsersID = @ClientUsersID
AND
SiteContentID = @SiteContentID
AND
DockingLocation = @DockingLocation
AND
DockingIndex < @PreviousIndex
end
end
else
begin
/*Different pane*/
UPDATE dbo.ClientUserDashboardPanel
SET
DockingIndex = DockingIndex +1
WHERE
ClientUsersID = @ClientUsersID
AND
SiteContentID = @SiteContentID
AND
DockingLocation = @DockingLocation
AND
DockingIndex >= @DockingIndex
UPDATE dbo.ClientUserDashboardPanel
SET
DockingIndex = DockingIndex -1
WHERE
ClientUsersID = @ClientUsersID
AND
SiteContentID = @SiteContentID
AND
DockingLocation = @PreviousPane
AND
DockingIndex > @PreviousIndex
end
/*Do the Update*/
UPDATE ClientUserDashboardPanel SET
ClientUsersID = @ClientUsersID,
SiteContentID = @SiteContentID,
CategoryTypeID = @CategoryTypeID,
TypeID = @TypeID,
AuxID = @AuxID,
DockingLocation = @DockingLocation,
DockingIndex = @DockingIndex,
IsCollapsed = @IsCollapsed,
saved_date = getutcdate()
WHERE ID=@PKID
end