diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/HostedSharePointServer2013.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/HostedSharePointServer2013.cs
new file mode 100644
index 00000000..0d549014
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/HostedSharePointServer2013.cs
@@ -0,0 +1,299 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Microsoft.Win32;
+using WebsitePanel.Providers.SharePoint;
+using WebsitePanel.Providers.Utils;
+using WebsitePanel.Server.Utils;
+
+namespace WebsitePanel.Providers.HostedSolution
+{
+ ///
+ /// Provides hosted SharePoint server functionality implementation.
+ ///
+ public class HostedSharePointServer2013 : HostingServiceProviderBase, IHostedSharePointServer
+ {
+ #region Delegate
+
+ private delegate TReturn SharePointAction(HostedSharePointServer2013Impl impl);
+
+ #endregion
+
+ #region Fields
+
+ protected string LanguagePacksPath;
+ protected string Wss3Registry32Key;
+ protected string Wss3RegistryKey;
+
+ #endregion
+
+ #region Properties
+
+ public string BackupTemporaryFolder
+ {
+ get { return ProviderSettings["BackupTemporaryFolder"]; }
+ }
+
+ public Uri RootWebApplicationUri
+ {
+ get { return new Uri(ProviderSettings["RootWebApplicationUri"]); }
+ }
+
+ #endregion
+
+ #region Constructor
+
+ public HostedSharePointServer2013()
+ {
+ Wss3RegistryKey = @"SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\15.0";
+ Wss3Registry32Key = @"SOFTWARE\Wow6432Node\Microsoft\Shared Tools\Web Server Extensions\15.0";
+ LanguagePacksPath = @"%commonprogramfiles%\microsoft shared\Web Server Extensions\15\HCCab\";
+ }
+
+ #endregion
+
+ #region Methods
+
+ /// Gets list of supported languages by this installation of SharePoint.
+ /// List of supported languages
+ public int[] GetSupportedLanguages()
+ {
+ var impl = new HostedSharePointServer2013Impl();
+ return impl.GetSupportedLanguages(RootWebApplicationUri);
+ }
+
+ /// Gets list of SharePoint collections within root web application.
+ /// List of SharePoint collections within root web application.
+ public SharePointSiteCollection[] GetSiteCollections()
+ {
+ return ExecuteSharePointAction(impl => impl.GetSiteCollections(RootWebApplicationUri));
+ }
+
+ /// 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.
+ public SharePointSiteCollection GetSiteCollection(string url)
+ {
+ return ExecuteSharePointAction(impl => impl.GetSiteCollection(RootWebApplicationUri, url));
+ }
+
+ /// Creates site collection within predefined root web application.
+ /// Information about site coolection to be created.
+ public void CreateSiteCollection(SharePointSiteCollection siteCollection)
+ {
+ ExecuteSharePointAction