Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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);
        }