Changes to IIS70 provider, etc for changing PHP versions among installed versions. Mimics the behaviour of IIS PHP Manager and works with it, i.e. changes made in PHP Manager is visible in WSP and vice versa.

This commit is contained in:
Olov Karlsson 2014-10-03 10:18:33 +02:00
parent 2d48b7fb33
commit d7ac9fa36f
8 changed files with 266 additions and 44 deletions

View file

@ -26,6 +26,8 @@
// (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.Linq;
namespace WebsitePanel.Providers.Web.Handlers
{
using System;
@ -178,7 +180,7 @@ namespace WebsitePanel.Providers.Web.Handlers
}
}
internal void InheritScriptMapsFromParent(string fqPath)
internal void InheritScriptMapsFromParent(string fqPath)
{
if (String.IsNullOrEmpty(fqPath))
return;
@ -241,5 +243,69 @@ namespace WebsitePanel.Providers.Web.Handlers
//
return null;
}
internal void CopyInheritedHandlers(string siteName, string vDirPath)
{
if (string.IsNullOrEmpty(siteName))
{
return;
}
if (string.IsNullOrEmpty(vDirPath))
{
vDirPath = "/";
}
using (var srvman = GetServerManager())
{
var config = srvman.GetWebConfiguration(siteName, vDirPath);
var handlersSection = (HandlersSection)config.GetSection(Constants.HandlersSection, typeof(HandlersSection));
var handlersCollection = handlersSection.Handlers;
var list = new HandlerAction[handlersCollection.Count];
((System.Collections.ICollection) handlersCollection).CopyTo(list, 0);
handlersCollection.Clear();
foreach (var handler in list)
{
handlersCollection.AddCopy(handler);
}
srvman.CommitChanges();
}
}
internal void MoveHandlerToTop(string handlerName, string siteName, string vDirPath)
{
if (string.IsNullOrEmpty(siteName))
{
return;
}
if (string.IsNullOrEmpty(vDirPath))
{
vDirPath = "/";
}
using (var srvman = GetServerManager())
{
var config = srvman.GetWebConfiguration(siteName, vDirPath);
var handlersSection = (HandlersSection)config.GetSection(Constants.HandlersSection, typeof(HandlersSection));
var handlersCollection = handlersSection.Handlers;
var handlerElement = handlersCollection[handlerName];
handlersCollection.Remove(handlerElement);
handlersCollection.AddCopyAt(0, handlerElement);
srvman.CommitChanges();
}
}
}
}