DECLARE @username nvarchar(256)
DECLARE @GalleryID int
SET @username = 'System'
SET @GalleryID = 1

/* Make sure a default gallery exists. */
IF NOT EXISTS (SELECT * FROM [gs_Gallery] WHERE GalleryID = @GalleryID)
BEGIN
	INSERT gs_Gallery (GalleryId, Description)
	VALUES (@GalleryId, 'My Gallery')
END

/* Copy Album records into new album table. */
SET IDENTITY_INSERT [dbo].[gs_Album] ON

INSERT gs_Album (
	AlbumID, FKGalleryID, AlbumParentID, Title, 
	DirectoryName, 
	Summary, ThumbnailMediaObjectID, Seq, DateStart, DateEnd, DateAdded, CreatedBy, 
	LastModifiedBy, DateLastModified, OwnedBy, IsPrivate)
SELECT 
	AlbumID, 1, AlbumParentID, Title,

	CASE LEN(LTRIM(RTRIM(RelativePath)))
	 WHEN 0 THEN ''
	 ELSE
	  CASE CHARINDEX('/', REVERSE(RelativePath), 2)
	   WHEN 0 THEN LEFT(RelativePath, CHARINDEX('/', RelativePath) - 1)
	   ELSE REVERSE(SUBSTRING(REVERSE(RelativePath), 2, CHARINDEX('/', REVERSE(RelativePath), 2) - 2))
	  END
	 END,

	Summary, 0, Seq, DateStart, DateEnd, DateAdded, @username,
	@username, GETDATE(), @username, 0
 FROM Album

SET IDENTITY_INSERT [dbo].[gs_Album] OFF

/* Update Album thumbnail media object ID field. Find album whose RelativePath = ThumbnailRelativePath, 
then query mediaobjects table for the ID with this album ID and where ThumbnailFilename matches 
this field in this table. */
UPDATE gs_Album
SET ThumbnailMediaObjectID = thumbMOID
FROM
	(SELECT mo.MOID as thumbMOID, albumInner.AlbumID, thumbAlbum.AlbumID as thumbnailAlbumID, albumInner.ThumbnailFilename
	FROM Album thumbAlbum JOIN Album albumInner ON thumbAlbum.RelativePath = albumInner.ThumbnailRelativePath
	  JOIN MediaObject mo ON thumbAlbum.AlbumID = mo.FKAlbumID
	WHERE thumbAlbum.ThumbnailFilename = mo.ThumbnailFilename) TB
WHERE gs_Album.AlbumID = TB.AlbumID

/* Copy media object records into new table. */
SET IDENTITY_INSERT [dbo].[gs_MediaObject] ON

INSERT [gs_MediaObject]
	(MediaObjectID, FKAlbumID, Title, HashKey, ThumbnailFilename, ThumbnailWidth, ThumbnailHeight,
	ThumbnailSizeKB, OptimizedFilename, OptimizedWidth, OptimizedHeight, OptimizedSizeKB,
	OriginalFilename, OriginalWidth, OriginalHeight, OriginalSizeKB, Seq, CreatedBy, 
	DateAdded, LastModifiedBy, DateLastModified, IsPrivate)
SELECT 
	MOID, FKAlbumID, Title, HashKey, ThumbnailFilename, ThumbnailWidth, ThumbnailHeight,
	ThumbnailSizeKB, OptimizedFilename, OptimizedWidth, OptimizedHeight, OptimizedSizeKB,
	OriginalFilename, OriginalWidth, OriginalHeight, OriginalSizeKB, Seq, @username, 
	DateAdded, @username, GETDATE(), 0
FROM MediaObject

SET IDENTITY_INSERT [dbo].[gs_MediaObject] OFF
	
