internal void DeleteThisItem(DavFolder parentFolder) { Context.ExecuteNonQuery( "DELETE FROM DMS_Folders WHERE ID = @ItemId; DELETE FROM DMS_Documents WHERE ID = @ItemId", "@ItemId", ItemId); if (parentFolder != null) { parentFolder.UpdateModified(); } }
internal void MoveThisItem(DavFolder destFolder, string destName, DavFolder parent) { string command = @"UPDATE DMS_Folders SET Name = @Name, ParentID = @Parent WHERE ID = @ItemId ; UPDATE DMS_Documents SET Name = @Name, ParentID = @Parent WHERE ID = @ItemId"; Context.ExecuteNonQuery( command, "@ItemId", ItemId, "@Name", destName, "@Parent", destFolder.ItemId); parent.UpdateModified(); destFolder.UpdateModified(); }
internal DavFolder CopyThisItem(DavFolder destFolder, DavHierarchyItem destItem, string destName) { // returns created folder, if any, otherwise null DavFolder createdFolder = null; Guid destID; if (destItem == null) { // copy item string commandText = @"INSERT INTO DMS_Folders(ID, Name, CreatedOn, ModifiedOn, ParentID, CreatorDisplayName, AutoVersion, AutoCheckedOut, TotalContentLength, Attributes) SELECT @Identity, @Name, GETUTCDATE(), GETUTCDATE(), @Parent, CreatorDisplayName, AutoVersion, AutoCheckedOut, TotalContentLength, Attributes FROM DMS_Folders WHERE ID = @ItemId; INSERT INTO DMS_Documents(ID, Name, CreatedOn, ModifiedOn, ParentID, FileContent, ContentType, SerialNumber, CreatorDisplayName, Comment, AutoVersion, AutoCheckedOut, TotalContentLength, LastChunkSaved, Attributes) SELECT @Identity, @Name, GETUTCDATE(), GETUTCDATE(), @Parent, FileContent, ContentType, SerialNumber, CreatorDisplayName, Comment, AutoVersion, AutoCheckedOut, TotalContentLength, LastChunkSaved, Attributes FROM DMS_Documents WHERE ID = @ItemId"; destID = Guid.NewGuid(); Context.ExecuteNonQuery( commandText, "@Name", destName, "@Parent", destFolder.ItemId, "@ItemId", ItemId, "@Identity", destID); destFolder.UpdateModified(); if (this is IFolder) { createdFolder = new DavFolder( Context, destID, destFolder.ItemId, destName, destFolder.Path + EncodeUtil.EncodeUrlPart(destName) + "/", DateTime.UtcNow, DateTime.UtcNow, fileAttributes); } } else { // update existing destination destID = destItem.ItemId; string commandText = @"UPDATE DMS_Folders SET ModifiedOn = GETUTCDATE() FROM (SELECT * FROM DMS_Folders WHERE ID=@SrcID) src WHERE DMS_Folders.ID=@DestID ; UPDATE DMS_Documents SET ModifiedOn = GETUTCDATE() , ContentType = src.ContentType FROM (SELECT * FROM DMS_Documents WHERE ID=@SrcID) src WHERE DMS_Documents.ID=@DestID"; Context.ExecuteNonQuery( commandText, "@SrcID", ItemId, "@DestID", destID); // remove old properties from the destination Context.ExecuteNonQuery( "DELETE FROM DMS_DocumentProperties WHERE ItemId = @ItemId", "@ItemId", destID); } // copy properties string command = @"INSERT INTO DMS_DocumentProperties(ItemId, Name, Namespace, PropVal) SELECT @DestID, Name, Namespace, PropVal FROM DMS_DocumentProperties WHERE ItemId = @SrcID"; Context.ExecuteNonQuery( command, "@SrcID", ItemId, "@DestID", destID); return(createdFolder); }