using System.Collections.Generic;
namespace WebDAVSharp.Server.Stores {
///
/// This interface must be implemented by classes that operate as document collections in a store.
///
public interface IWebDavStoreCollection : IWebDavStoreItem {
///
/// Gets a collection of all the items in this .
///
///
/// The items.
///
IEnumerable Items {
get;
}
///
/// Retrieves a store item by its name.
///
/// The name of the store item to retrieve.
///
/// The store item that has the specified
/// ;
/// or
/// null if there is no store item with that name.
///
IWebDavStoreItem GetItemByName(string name);
///
/// Creates a new collection with the specified name.
///
/// The name of the new collection.
///
/// The created instance.
///
IWebDavStoreCollection CreateCollection(string name);
///
/// Deletes a store item by its name.
///
/// The name of the store item to delete.
void Delete(IWebDavStoreItem item);
///
/// Creates a new document with the specified name.
///
/// The name of the new document.
///
/// The created instance.
///
IWebDavStoreDocument CreateDocument(string name);
///
/// Copies an existing store item into this collection, overwriting any existing items.
///
/// The store item to copy from.
/// The name of the copy to create of .
/// The boolean for copying the containing files/folders or not.
///
/// The created instance.
///
IWebDavStoreItem CopyItemHere(IWebDavStoreItem source, string destinationName, bool includeContent);
///
/// Moves an existing store item into this collection, overwriting any existing items.
///
/// The store item to move.
/// The
/// that refers to the item that was moved,
/// in its new location.
///
/// The moved instance.
///
///
/// Note that the method should fail without creating or overwriting content in the
/// target collection if the move cannot go through.
///
IWebDavStoreItem MoveItemHere(IWebDavStoreItem source, string destinationName);
}
}