// Copyright (c) 2012, Outercurve Foundation. // All rights reserved. // // Redistribution and use in source and binary forms, with or without modification, // are permitted provided that the following conditions are met: // // - Redistributions of source code must retain the above copyright notice, this // list of conditions and the following disclaimer. // // - Redistributions in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // // - Neither the name of the Outercurve Foundation nor the names of its // contributors may be used to endorse or promote products derived from this // software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR // ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON // ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. using System; namespace WebsitePanel.Providers.SharePoint { /// /// Exposes functionality for share point server provider hosted in conjunction with organization management provider and /// exchange server. /// public interface IHostedSharePointServer { /// /// When implemented gets root web application uri. /// Uri RootWebApplicationUri { get; } /// /// When implemented gets list of supported languages by this installation of SharePoint. /// /// List of supported languages int[] GetSupportedLanguages(); /// /// When implemented gets list of SharePoint collections within root web application. /// /// List of SharePoint collections within root web application. SharePointSiteCollection[] GetSiteCollections(); /// /// When implemented gets SharePoint collection within root web application with given name. /// /// Url that uniquely identifies site collection to be loaded. /// SharePoint collection within root web application with given name. SharePointSiteCollection GetSiteCollection(string url); /// /// When implemented creates site collection within predefined root web application. /// /// Information about site coolection to be created. void CreateSiteCollection(SharePointSiteCollection siteCollection); /// /// When implemented deletes site collection under given url. /// /// Url that uniquely identifies site collection to be deleted. void DeleteSiteCollection(SharePointSiteCollection siteCollection); /// /// When implemeneted backups site collection under give url. /// /// Url that uniquely identifies site collection to be deleted. /// Resulting backup file name. /// A value which shows whether created backup must be archived. /// Created backup full path. string BackupSiteCollection(string url, string filename, bool zip); /// /// When implemented restores site collection under given url from backup. /// /// Site collection to be restored. /// Backup file name to restore from. void RestoreSiteCollection(SharePointSiteCollection siteCollection, string filename); /// /// When implemented gets binary data chunk of specified size from specified offset. /// /// Path to file to get bunary data chunk from. /// Offset from which to start data reading. /// Binary data chunk length. /// Binary data chunk read from file. byte[] GetTempFileBinaryChunk(string path, int offset, int length); /// /// When implemented appends supplied binary data chunk to file. /// /// Non existent file name to append to. /// Full path to existent file to append to. /// Binary data chunk to append to. /// Path to file that was appended with chunk. string AppendTempFileBinaryChunk(string fileName, string path, byte[] chunk); void UpdateQuotas(string url, long maxStorage, long warningStorage); SharePointSiteDiskSpace[] CalculateSiteCollectionsDiskSpace(string[] urls); long GetSiteCollectionSize(string url); void SetPeoplePickerOu(string site, string ou); } }