/trunk/Powershell/GetPHPVersionCmdlet.cs
C# | 58 lines | 42 code | 8 blank | 8 comment | 2 complexity | 2fc06c4abcbf3a8de78b6f109cdc2ce8 MD5 | raw file
Possible License(s): CC-BY-SA-3.0
- //-----------------------------------------------------------------------
- // <copyright>
- // Copyright (C) Ruslan Yakushev for the PHP Manager for IIS project.
- //
- // This file is subject to the terms and conditions of the Microsoft Public License (MS-PL).
- // See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL for more details.
- // </copyright>
- //-----------------------------------------------------------------------
-
- using System.Management.Automation;
- using Microsoft.Web.Administration;
- using Web.Management.PHP.Config;
-
- namespace Web.Management.PHP.Powershell
- {
-
- [Cmdlet(VerbsCommon.Get, "PHPVersion")]
- public sealed class GetPHPVersionCmdlet : BaseCmdlet
- {
- [Parameter(ValueFromPipelineByPropertyName = true, Position = 0)]
- public string HandlerName { get; set; }
-
- [Parameter(ValueFromPipeline = false, Position = 1)]
- public string Version { get; set; }
-
- protected override void DoProcessing()
- {
- using (var serverManager = new ServerManager())
- {
- var serverManagerWrapper = new ServerManagerWrapper(serverManager, SiteName, VirtualPath);
- var configHelper = new PHPConfigHelper(serverManagerWrapper);
- var phpVersions = configHelper.GetAllPHPVersions();
-
- var nameWildcard = PrepareWildcardPattern(HandlerName);
- var versionWildcard = PrepareWildcardPattern(Version);
-
- var isActive = true;
- foreach (var phpVersion in phpVersions)
- {
- if (!nameWildcard.IsMatch(phpVersion.HandlerName))
- {
- isActive = false;
- continue;
- }
- if (!versionWildcard.IsMatch(phpVersion.Version))
- {
- isActive = false;
- continue;
- }
-
- var versionItem = new PHPVersionItem(phpVersion, isActive);
- WriteObject(versionItem);
- isActive = false;
- }
- }
- }
- }
- }