This commit is contained in:
vfedosevich 2015-02-26 23:19:19 -08:00
commit e9c7b0868b
580 changed files with 247313 additions and 5211 deletions

View file

@ -0,0 +1,6 @@
"%WIX%\bin\heat.exe" dir ..\..\WebsitePanel\Build\Release\EnterpriseServer -o Setup.WIXInstaller\EnterpriseServerFiles.wxs -gg -sreg -srd -var wix.BUILDESPATH -cg EnterpriseServerFiles -dr INSTALLENTERPRISESERVERFOLDER
"%WIX%\bin\heat.exe" dir ..\..\WebsitePanel\Build\Release\Server -o Setup.WIXInstaller\ServerFiles.wxs -gg -sreg -srd -var wix.BUILDSPATH -cg ServerFiles -dr INSTALLSERVERFOLDER
"%WIX%\bin\heat.exe" dir ..\..\WebsitePanel\Build\Release\Portal -o Setup.WIXInstaller\PortalFiles.wxs -gg -sreg -srd -var wix.BUILDPPATH -cg PortalFiles -dr INSTALLPORTALFOLDER

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Include>
<?define PROJECTPATH = "..\..\..\WebsitePanel"?>
<?define VERSION="2.1"?>
</Include>

View file

@ -0,0 +1,207 @@
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="INSTALLENTERPRISESERVERFOLDER">
<Directory Id="dir6CE36061E3999438B9BA89FF4216AA69" Name="bin" />
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="EnterpriseServerFiles">
<Component Id="cmp34CE7A099A3FFEC525D7D093AB8987C4" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{3DE5BF86-5C2B-44A9-AA65-38AA8B9AC83A}">
<File Id="fil80AE381498E108347A00C8973B487F16" KeyPath="yes" Source="!(wix.BUILDESPATH)\Default.aspx" />
</Component>
<Component Id="cmp3D7BF794CCD757023C3D334F08C1D445" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{6E70DAFF-BE33-4D9C-8D93-6687A586492B}">
<File Id="fil576A4104649ACFF3D7359A2DCA141A34" KeyPath="yes" Source="!(wix.BUILDESPATH)\ecServiceHandler.asmx" />
</Component>
<Component Id="cmp831731D472109501F57A355547021B02" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{A4D8D681-6B58-4AFC-A289-DEA1BA09E49E}">
<File Id="filC16221EFB30024C0A890D6D10DB5D0C5" KeyPath="yes" Source="!(wix.BUILDESPATH)\ecStorefront.asmx" />
</Component>
<Component Id="cmp7919B475439D0EDCF2E7111D7FBD01C9" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{89F3CC4A-411B-4ED1-82AE-CD53BF181E43}">
<File Id="filD9A0DB2425C634FFB8A694C1CC41B529" KeyPath="yes" Source="!(wix.BUILDESPATH)\ecStorehouse.asmx" />
</Component>
<Component Id="cmp5F82B874C6149AF14117B5FC53138BB8" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{22B94558-51A7-4E6A-B314-7F775A19DB84}">
<File Id="filD907747C258169B5049506CB949E8EA0" KeyPath="yes" Source="!(wix.BUILDESPATH)\esApplicationsInstaller.asmx" />
</Component>
<Component Id="cmp47069226C95CF9260198DF80078E21F6" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{3E88DB64-AB0D-4CDC-933A-204F8C24317B}">
<File Id="filE38C974C9EBDAD325273293427A6C90C" KeyPath="yes" Source="!(wix.BUILDESPATH)\esAuditLog.asmx" />
</Component>
<Component Id="cmpC2F032B70996ED1F661DF917CA81D18F" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{31C6F424-8546-4237-8FE5-9A7E1BA0C393}">
<File Id="fil3C8572176F57424027BB9E0E96855C4C" KeyPath="yes" Source="!(wix.BUILDESPATH)\esAuthentication.asmx" />
</Component>
<Component Id="cmp26B353E79A99A6CF2A62018CF6B59CEC" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{83F37E21-F265-4839-A247-82FD8AC3BD2A}">
<File Id="filD30DB2DFE7DF8B06136D1196A4589AF7" KeyPath="yes" Source="!(wix.BUILDESPATH)\esBackup.asmx" />
</Component>
<Component Id="cmpC91CD289AA32691FAEBF3C9E87E251E8" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{6B7FD6AD-218D-4EE8-87E8-E305F917E77F}">
<File Id="filE112A538E36085463D02CE6979E64E30" KeyPath="yes" Source="!(wix.BUILDESPATH)\esBlackBerry.asmx" />
</Component>
<Component Id="cmp333AEEAB6A016D3FB8C8A79ECCBA341D" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{7D86E2DB-3785-45DC-80E4-873FC07EE06D}">
<File Id="filC92E41395B2B7A0A20B4989539566F87" KeyPath="yes" Source="!(wix.BUILDESPATH)\esComments.asmx" />
</Component>
<Component Id="cmpB5952233E952EEE0CE009858FAF527A9" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{197E33E8-61D6-4168-AD52-C2E34326D0EB}">
<File Id="fil88A7DA2BCBADC6864DA96A5C6AB09B8E" KeyPath="yes" Source="!(wix.BUILDESPATH)\esCRM.asmx" />
</Component>
<Component Id="cmp63CDFBF38C138DC641515D217460A992" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{FEA616A5-41F7-4EAC-A767-4FF338DC090D}">
<File Id="fil802190B1995D1F28AE1B62C3E0E61993" KeyPath="yes" Source="!(wix.BUILDESPATH)\esDatabaseServers.asmx" />
</Component>
<Component Id="cmp5A826D79B822277BCA6491E801E6F378" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{DF0BD379-9E35-4B2C-8B8C-6B930BDE1D7C}">
<File Id="fil7AF44BB1C7286026B6ECBC9B2BFC71A5" KeyPath="yes" Source="!(wix.BUILDESPATH)\esEnterpriseStorage.asmx" />
</Component>
<Component Id="cmp371A1092F7AA3AB0D504D443865A34CC" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{FCD79061-B2EE-46B9-98A3-FB11C4DB052F}">
<File Id="fil54C39A6242DB0530FE5FF7F6D4557894" KeyPath="yes" Source="!(wix.BUILDESPATH)\esExchangeServer.asmx" />
</Component>
<Component Id="cmp1C3F1C3FA07FBCD9AF84334F3CE994A8" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{156C268F-2376-4C3E-8F6B-3CC4DE1E3768}">
<File Id="fil87594B4F289DB1415FD1817B44892E79" KeyPath="yes" Source="!(wix.BUILDESPATH)\esFiles.asmx" />
</Component>
<Component Id="cmpDFE044BE1BEFFDE4692056EE2809335A" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{12D5006D-A7EA-4C68-9C33-1B461DCEE11E}">
<File Id="fil60F58288D33D0A54534196F3306860FB" KeyPath="yes" Source="!(wix.BUILDESPATH)\esFtpServers.asmx" />
</Component>
<Component Id="cmp9475DC4C250B01885E0633772CB4ABA0" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{B89C88AE-6D50-4060-9375-B31A58D19615}">
<File Id="fil3D10FC6381F8F0C678FDA8ED4534C494" KeyPath="yes" Source="!(wix.BUILDESPATH)\esHeliconZoo.asmx" />
</Component>
<Component Id="cmpA254ACD457311C636E120F83F46DAF00" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{E4C71CBF-9077-44CA-8C9A-A77B86B6926C}">
<File Id="filBAF5EE71D3576C1E3D009B85D1155951" KeyPath="yes" Source="!(wix.BUILDESPATH)\esHostedSharePointServers.asmx" />
</Component>
<Component Id="cmp054543F483FF5F6F43D2985746F9EC23" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{18BBC34A-AD6C-4BF1-8F77-48A34ABB35A0}">
<File Id="filF07A7ABA84439092DC56A75CD5AEBD93" KeyPath="yes" Source="!(wix.BUILDESPATH)\esImport.asmx" />
</Component>
<Component Id="cmp2A87CEC92AB93D101BB1035064B12552" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{F50CEBB2-6163-4DC7-AA29-28104C0556A0}">
<File Id="filBB7841946881D194671A3D3A6964C0F8" KeyPath="yes" Source="!(wix.BUILDESPATH)\esLync.asmx" />
</Component>
<Component Id="cmp9DF80261245D898DCEDE3671500A4941" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{EC90DB0E-7DD7-4F28-82A7-ADDC2C61502D}">
<File Id="filF84E64CD412B775188940BD65D9E8197" KeyPath="yes" Source="!(wix.BUILDESPATH)\esMailServers.asmx" />
</Component>
<Component Id="cmpEAE4870E86F8713D5B8F8E5B3E7DB73B" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{040C0AA6-B01B-43C7-BEC0-93EB6DEF2DDD}">
<File Id="filBF4851FF41796A5DB1C58EB163B22937" KeyPath="yes" Source="!(wix.BUILDESPATH)\esOCS.asmx" />
</Component>
<Component Id="cmpAA37203E63674A11256B7370B250DE91" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{07703E52-8B9A-4A89-BD07-920AE6F9220F}">
<File Id="fil1BB4D1E77135B38D8871FAEF4351B6D5" KeyPath="yes" Source="!(wix.BUILDESPATH)\esOperatingSystems.asmx" />
</Component>
<Component Id="cmpB7A039B3F4DEA52C1009F25934BA0E6C" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{099D8DC4-297C-4CD5-B1CA-7B1F5B451CCD}">
<File Id="fil866896064798796D52BCEFFD15B4E237" KeyPath="yes" Source="!(wix.BUILDESPATH)\esOrganizations.asmx" />
</Component>
<Component Id="cmpE91E638D4549C6A9636A0106DF8E5DE9" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{FA6E71E9-A1EA-4158-9656-A936AF9E469A}">
<File Id="filF60E166BC58C55454820C604DECF88BD" KeyPath="yes" Source="!(wix.BUILDESPATH)\esPackages.asmx" />
</Component>
<Component Id="cmp751C3E687B67A09CB073745B237E0525" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{34C5698D-3CB3-4655-9410-6D762EAEC53F}">
<File Id="fil67F9CD9371F0FA79E9D1A86DDA3EB6CF" KeyPath="yes" Source="!(wix.BUILDESPATH)\esRemoteDesktopServices.asmx" />
</Component>
<Component Id="cmp4B34B1C2D8BD54FCC7871B7A0DD3C025" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{FEC20EA0-7792-4455-8E45-881208464837}">
<File Id="filC29A77C5FC2388D356F5CE180A7710E0" KeyPath="yes" Source="!(wix.BUILDESPATH)\esScheduler.asmx" />
</Component>
<Component Id="cmpDD09481E4089E210F98110D5BCEC173D" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{B34E7B92-3A75-4B96-9C6A-6FBBF238328D}">
<File Id="fil954DB99705E4D0ABAF80FD05C5EBBACC" KeyPath="yes" Source="!(wix.BUILDESPATH)\esServers.asmx" />
</Component>
<Component Id="cmp14F81E356F8B049145E1E0B1FB10FC70" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{4B120476-FE23-4BCE-8720-976E7E67ABBC}">
<File Id="filB05AB0D12B12B0E56BA166FDB3609835" KeyPath="yes" Source="!(wix.BUILDESPATH)\esSharePointServers.asmx" />
</Component>
<Component Id="cmp0E482EC02E8F8D743392159B0815AD57" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{73DC81E3-D288-4371-927B-52B0463A80D0}">
<File Id="filECEC6942F4FB30FCC9B596F417D41EC2" KeyPath="yes" Source="!(wix.BUILDESPATH)\esStatisticsServers.asmx" />
</Component>
<Component Id="cmp2901A918840EBD1C1DABB2F79D2B10A3" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{13E4987E-1CAF-44F9-9A70-131A6B15CB30}">
<File Id="fil0C5C856EEF2531CC7371B44D635D05F3" KeyPath="yes" Source="!(wix.BUILDESPATH)\esSystem.asmx" />
</Component>
<Component Id="cmpA867FFA1FE49F609535DFC6052D78AD9" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{4DD5728B-AC0A-4BF3-9EEC-51DE0D6C5405}">
<File Id="filBA3E42C0E57584136ED9BB83E054D6F7" KeyPath="yes" Source="!(wix.BUILDESPATH)\esTasks.asmx" />
</Component>
<Component Id="cmp94E44DB8E3E22CCBDD39A2B83D31FBC2" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{E0FA0DF0-9BCB-4005-BDD7-E7560A7AD6B3}">
<File Id="fil6D665D8C141914B22EF8EAA3ED524BA8" KeyPath="yes" Source="!(wix.BUILDESPATH)\esUsers.asmx" />
</Component>
<Component Id="cmp9475D484AF38750120079E95AA52905D" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{DB921955-43EB-4B97-83A7-891151024DF9}">
<File Id="fil586A826180831A7C07A44E4505C1A5D1" KeyPath="yes" Source="!(wix.BUILDESPATH)\esVirtualizationServer.asmx" />
</Component>
<Component Id="cmpAF29F51A2E960C073CFDBA75F5733CDB" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{8A93695F-32DA-4BA6-8C95-3D2FDC14342C}">
<File Id="fil6A7E497383471C6AEFA4638C27AFEFEB" KeyPath="yes" Source="!(wix.BUILDESPATH)\esVirtualizationServerForPrivateCloud.asmx" />
</Component>
<Component Id="cmpE164C5218E2534965D65C709AFCB5041" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{BFA29AC9-52AC-4CCE-9220-30E1CE392235}">
<File Id="filC382504C2B694C526BAC449795BD9384" KeyPath="yes" Source="!(wix.BUILDESPATH)\esWebApplicationGallery.asmx" />
</Component>
<Component Id="cmp478ACC3817BFDF9B67438D472E16F215" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{2925FA03-8A40-4905-9A26-56DA340B53B3}">
<File Id="fil439FDF6888F9C591E5CC0FA4B191F9E5" KeyPath="yes" Source="!(wix.BUILDESPATH)\esWebServers.asmx" />
</Component>
<Component Id="cmp429BF038970E0CFC25D8BCE860D50A57" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{583E58D6-39F7-4A77-B8C0-7CB1619CCAEF}">
<File Id="filFEBBDFA9B318C2E9E751B025648C1A7B" KeyPath="yes" Source="!(wix.BUILDESPATH)\Global.asax" />
</Component>
<Component Id="cmp62A54F046CE9140B2AE9722C0257BADC" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{107FB14E-EC68-4B40-997F-F564A7AF1927}">
<File Id="filC434D7C34EA5A1746435264846757BD1" KeyPath="yes" Source="!(wix.BUILDESPATH)\SystemEventHandlers.config" />
</Component>
<Component Id="cmpD4509F6500AF198A6674B31013523FEA" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{A139CCEF-F4CE-43B4-82C2-214087D4696E}">
<File Id="fil16FEF1499BCAD707280DB872E1BAD8EC" KeyPath="yes" Source="!(wix.BUILDESPATH)\TaskEventHandlers.config" />
</Component>
<Component Id="cmp4C41BDA96CC60A0A93AD86B466B9990C" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{1DAAD946-8EDD-455E-8FE8-3093F44CB107}">
<File Id="filF4F297556BE1C365666A0114C75988AA" KeyPath="yes" Source="!(wix.BUILDESPATH)\Web.config" />
</Component>
<Component Id="cmp2EAEBDE7CDEFBD808F654465A93E1CA1" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{FB87E13C-85E9-4C09-9D9A-43338B015A16}">
<File Id="fil8F893828FDE5595526903995FA74F10F" KeyPath="yes" Source="!(wix.BUILDESPATH)\Web.config.orig" />
</Component>
<Component Id="cmp0CD3D55E3FCC2CA93F26C9E2A8015B03" Directory="INSTALLENTERPRISESERVERFOLDER" Guid="{37A4613E-DD61-4705-AB49-FE168554AA15}">
<File Id="filA732E6A7C01B18DA027C222AF4E53864" KeyPath="yes" Source="!(wix.BUILDESPATH)\WsePolicyCache.Config" />
</Component>
<Component Id="cmp8C46E0D4BA876D11A93A309526C80AE5" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{32C12DC2-7779-4DEF-8DD2-B8A8927B14D0}">
<File Id="fil56774CBC059C0521F770230987131089" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\Ionic.Zip.Reduced.dll" />
</Component>
<Component Id="cmpABC7BC49B2C2DF1518B4AB0AEB6B824E" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{653A926F-9956-4620-B1BA-438E00F16769}">
<File Id="fil421A00E17FE73E07BC534ED295BC9739" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\IPAddressRange.dll" />
</Component>
<Component Id="cmpDE18943F32A1687F2E9D92E2A1A129C3" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{CD210018-8DCE-41B1-86BD-CFFEC65953A3}">
<File Id="fil1F4B9DC588EA21FE3995D0C10DF6CE32" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\Microsoft.Web.Services3.dll" />
</Component>
<Component Id="cmpB686E1245020F1ED91E4EFDFDC53C870" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{03E514F0-6EEC-4AEA-9EEC-825DAE644BC3}">
<File Id="filAAF537C55A5ECC37A81FD1DF068DC482" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.Common.Utils.dll" />
</Component>
<Component Id="cmp039435BE98FF30542B50144FD0290336" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{171AB743-ECD3-426A-86B3-927CA2044EEF}">
<File Id="fil60C85B024AF9F41601F448A42DC3EDA6" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.EnterpriseServer.Base.dll" />
</Component>
<Component Id="cmpBF157DEDA7A406B0B3A0350FBB9E5596" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{BAB468EE-6E00-4760-89B4-E45A8DE3CFF9}">
<File Id="fil1563BC927600D3BFB7DA10464A244566" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.EnterpriseServer.Code.dll" />
</Component>
<Component Id="cmpDE486BDB886A86BB93A249623EE9A392" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{ABD8E98B-6912-4DEF-8D1B-4065F4EED766}">
<File Id="fil9008B849652D076543B8D2551A1F2EC6" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.EnterpriseServer.dll" />
</Component>
<Component Id="cmpABEEE0ED98C9EA8C66301A3E473B2FAB" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{1718F1AF-9755-48B2-8030-8F99B1A95EAD}">
<File Id="filDDD6FA02C053068069D5591056CF237A" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.EnterpriseServer.dll.config" />
</Component>
<Component Id="cmpEE151CE273355C4EAFA93D6BB8369781" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{B25408D4-6683-4869-9E92-6EDACDF6C78F}">
<File Id="filB8EA5361CC42983258DCAF5E164047C0" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.Plugins.2Checkout.dll" />
</Component>
<Component Id="cmpB75A176B278432452C4B8F4E7B51C1C6" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{2D318EB2-B06A-41AF-96C4-E3B6170DDA34}">
<File Id="filF98AF0BEBCA6728E7CBFA7A6E4D2C94A" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.Plugins.AuthorizeNet.dll" />
</Component>
<Component Id="cmpF0E5F56755EEBAA8FACEB85955E2B103" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{360B4624-8C9F-4DF8-A0FC-377A548ABABF}">
<File Id="filBF073D3819998EAC1DC5E713525E41EB" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.Plugins.Enom.dll" />
</Component>
<Component Id="cmpE8B501E71157D65D964C26A4CAF0E081" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{2BBD6C4C-24C0-497C-8EFA-F2EDAB5AB51F}">
<File Id="fil945A61A869517280C7D4AC6A766BA4FE" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.Plugins.OfflinePayment.dll" />
</Component>
<Component Id="cmpE272AAB185B49027FBCAEE3945FF1563" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{F3E702FF-17ED-4FBD-9DF9-94EC8AFBD756}">
<File Id="filF8949C9A02F3C74F08321F9403B8215E" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.Plugins.OfflineRegistrar.dll" />
</Component>
<Component Id="cmpA2C5C2C82EBC0982CD987516D69D8736" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{FBD39F05-7E8D-4AD4-86B0-AB60D7D2BE37}">
<File Id="filAB7DB7FF41B21055C96572825B789887" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.Plugins.PayPalPro.dll" />
</Component>
<Component Id="cmpFD9EE867A03BE605714820A34938B2BA" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{5E9DA29C-12EA-44E2-84B8-5051A82CAF0E}">
<File Id="fil9E2843FA3A96D3D83A6AC26D5C310C5B" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.Plugins.PayPalStandard.dll" />
</Component>
<Component Id="cmpE1F9D6B9DA76050152B9D555951441CD" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{77940753-D549-417C-8549-599B4B3AE710}">
<File Id="fil070A7D1564602C5E64D0F14C1731631C" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.Providers.Base.dll" />
</Component>
<Component Id="cmp94CF5A0DCA0EF5E72DE2BABAB4B46FD5" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{0C585202-CDD1-4C6E-AF6A-8BB056B3017B}">
<File Id="fil0616936629E3B42FFC5BDB5B2C1F7E56" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.SchedulerService.exe" />
</Component>
<Component Id="cmp3643D85724FB6E436CB4A5B4A6C03019" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{69050CDA-DAAF-4692-B5AD-D1EAD3DCC5F9}">
<File Id="filD0DC369105A5B1DAC78383D8D536AEE8" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.SchedulerService.exe.config" />
</Component>
<Component Id="cmp3A6A21FF20D12C20A147292F69DFD8B7" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{B6AFDCAB-A65B-4781-BA6C-BCBE531C4D1B}">
<File Id="fil25EFF46F1EC3CEA6F4B80B9759D19E75" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.Server.Client.dll" />
</Component>
<Component Id="cmpA3CA0C7545473CE36976CCEBDE454737" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{64655114-F06A-4B5C-AFE0-106133D41B52}">
<File Id="fil93D797ED695C31D336C40A0BCF4C8E75" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.Templates.dll" />
</Component>
<Component Id="cmp8E811C967471516EDD3851E6B0B98109" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{1073E545-437D-4040-A2CF-7D3EEDD1DADF}">
<File Id="filF34E6EFC79378B7E3A8793888CEF00F0" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WebsitePanel.Whois.dll" />
</Component>
<Component Id="cmpDEDB0888D3DFB986812A862B5017E95C" Directory="dir6CE36061E3999438B9BA89FF4216AA69" Guid="{4038D990-94A4-4B83-8E03-1D2EB943A63F}">
<File Id="fil518311B26B2075F8BEA15D2AD6898BD0" KeyPath="yes" Source="!(wix.BUILDESPATH)\bin\WhoisClient.dll" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,421 @@
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include Config.wxi?>
<Product Id="*" Name="WebsitePanel" Language="1033" Version="$(var.VERSION)" Manufacturer="Outercurve Foundation"
UpgradeCode="F59D3AED-C1B8-46B4-AFE2-A97F3B7DFB5E">
<Package InstallerVersion="200" Compressed="yes" />
<Media Id="1" EmbedCab="yes" Cabinet="websitepanel.cab" />
<Feature Id="ServerFeature" Title="Server" Level="1" ConfigurableDirectory="INSTALLSERVERFOLDER" AllowAdvertise="no"
Description="WebsitePanel Server is a set of services running on the remote server to be controlled. Server application should be reachable from Enterprise Server one.">
<ComponentGroupRef Id="ServerFiles" />
</Feature>
<Feature Id="EnterpriseServerFeature" Title="Enterprise Server" Level="1" ConfigurableDirectory="INSTALLENTERPRISESERVERFOLDER" AllowAdvertise="no"
Description="Enterprise Server is the heart of WebsitePanel system. It includes all business logic of the application. Enterprise Server should have access to Server and be accessible from Portal applications.">
<ComponentGroupRef Id="EnterpriseServerFiles" />
</Feature>
<Feature Id="PortalFeature" Title="Portal" Level="1" ConfigurableDirectory="INSTALLPORTALFOLDER" AllowAdvertise="no"
Description="WebsitePanel Portal is a control panel itself with user interface which allows managing user accounts, hosting spaces, web sites, FTP accounts, files, etc.">
<ComponentGroupRef Id="PortalFiles" />
</Feature>
<Feature Id="SchedulerServiceFeature" Title="Scheduler Service" Level="1" ConfigurableDirectory="INSTALLSERVICEFOLDER" AllowAdvertise="no"
Description="WebsitePanel scheduler Service">
<ComponentGroupRef Id="SchedulerServiceFiles" />
</Feature>
<Property Id="BannerBitmap">bannrbmp</Property>
<Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
<Upgrade Id="F59D3AED-C1B8-46B4-AFE2-A97F3B7DFB5E">
<UpgradeVersion
Minimum="1.0.0.0" Maximum="99.0.0.0"
Property="PREVIOUSVERSIONSINSTALLED"
IncludeMinimum="yes" IncludeMaximum="no" />
</Upgrade>
<WixVariable Id="WixUIBannerBmp" Value="bannrbmp.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="dlgbmp.bmp" />
<WixVariable Id="WixUILicenseRtf" Value="License.rtf" />
<WixVariable Id ="BUILDESPATH" Value = "$(var.PROJECTPATH)\Build\$(var.BUILD)\EnterpriseServer" />
<WixVariable Id ="BUILDSPATH" Value = "$(var.PROJECTPATH)\Build\$(var.BUILD)\Server" />
<WixVariable Id ="BUILDPPATH" Value = "$(var.PROJECTPATH)\Build\$(var.BUILD)\Portal" />
<Icon Id="WebSitePanel.ico" SourceFile="WebSitePanel.ico" />
<Property Id="ARPPRODUCTICON" Value="WebSitePanel.ico" />
<Property Id="SERVERNAME" Value="localhost\SQLExpress" />
<Property Id="CONNECTIONSTRING" Value="1" />
<Property Id="DATABASENAME" Value="WebsitePanel" />
<Property Id="AUTHENTICATIONTYPE" Value="Windows Authentication" />
<Binary Id="bannrbmp" SourceFile="bannrbmp.bmp" />
<UI Id="CustomInstaller">
<UIRef Id="WixUI_Mondo" />
<Dialog Id="SWebDlg" Width="370" Height="270" NoMinimize="yes" Title="[ProductName] Setup">
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back">
<Publish Event="NewDialog" Value="CustomizeDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
<Publish Event="NewDialog" Value="SUserAccountDlg">1</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="Specify WebsitePanel Server web settings." />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Web Settings" />
<Control Type="Text" Id="IPaddressLabel" Width="73" Height="15" X="38" Y="79" Text="IP address:" />
<Control Type="Edit" Id="IPaddressEdit" Width="214" Height="15" X="34" Y="98" Property="SIP1" />
<Control Type="Text" Id="PortLabel" Width="73" Height="15" X="259" Y="79" Text="Port:" />
<Control Type="Edit" Id="PortEdit" Width="46" Height="15" X="259" Y="98" Property="SPORT">
</Control>
<Control Type="Text" Id="HostnameLabel" Width="73" Height="15" X="38" Y="124" Text="Host name:" />
<Control Type="Edit" Id="HostnameEdit" Width="266" Height="15" X="34" Y="142" Property="SHOSTNAME" Hidden="no">
</Control>
<Control Type="Text" Id="HintLabel" Width="190" Height="8" X="41" Y="165" Text="Example: www.contoso.com or panel.contoso.com" />
<Control Type="Text" Id="IntroLabel" Width="321" Height="30" X="26" Y="191" Text="Make sure the specified host name is pointed to this web site; otherwise you might not be able to access the application." />
<Control Type="GroupBox" Id="WebSiteSettingsGroup" Width="330" Height="124" X="22" Y="60" Text="Web Site Settings" />
</Dialog>
<Dialog Id="SUserAccountDlg" Width="370" Height="270" NoMinimize="yes" Title="[ProductName] Setup">
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back">
<Publish Event="NewDialog" Value="SWebDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
<Publish Event="NewDialog" Value="ServerPasswordDlg">1</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="Specify WebsitePanel Server security settings." />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Security Settings" />
<Control Type="Text" Id="DomainLabel" Width="73" Height="15" X="58" Y="116" Text="Domain:" />
<Control Type="Edit" Id="DomainEdit" Width="163" Height="15" X="142" Y="116" Property="SDOMAINNAME" />
<Control Type="Text" Id="UserLabel" Width="73" Height="15" X="58" Y="142" Text="User Name:" />
<Control Type="Edit" Id="LoginEdit" Width="163" Height="15" X="142" Y="142" Property="SUSERNAME">
<Condition Action="disable">AUTHENTICATIONTYPE = "Windows Authentication"</Condition>
<Condition Action="enable">NOT(AUTHENTICATIONTYPE = "Windows Authentication")</Condition>
</Control>
<Control Type="Text" Id="PasswordLabel" Width="73" Height="15" X="58" Y="169" Text="Password:" />
<Control Type="Edit" Id="PasswordEdit" Width="163" Height="15" X="142" Y="169" Property="SPASSWORD" Hidden="no" Password="yes">
<Condition Action="disable">AUTHENTICATIONTYPE = "Windows Authentication"</Condition>
<Condition Action="enable">NOT(AUTHENTICATIONTYPE = "Windows Authentication")</Condition>
</Control>
<Control Type="Text" Id="ConfirmPasswordLabel" Width="73" Height="15" X="58" Y="195" Text="Confirm Password:" />
<Control Type="Edit" Id="ConfirmPasswordEdit" Width="163" Height="15" X="142" Y="195" Property="SCONFIRMPASSWORD" />
<Control Type="Text" Id="IntroLabel" Width="341" Height="30" X="15" Y="62" Text="Please specify a new Windows user account for the web site anonymous access and application pool identity." />
<Control Type="CheckBox" Id="CreateADAccountCheckBox" Width="202" Height="17" X="58" Y="90" Text="Create Active Directory account" Property="SCREATEADACOUNT" />
</Dialog>
<Dialog Id="ServerPasswordDlg" Width="370" Height="270" NoMinimize="yes" Title="[ProductName] Setup">
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back">
<Publish Event="NewDialog" Value="SUserAccountDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
<Publish Event="NewDialog" Value="ESWebDlg" Order="9">&amp;EnterpriseServerFeature=3</Publish>
<Publish Event="NewDialog" Value="DatabaseConnectionDlg" Order="8">&amp;SchedulerServiceFeature=3</Publish>
<Publish Event="NewDialog" Value="PWebDlg" Order="7">&amp;PortalFeature=3</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="2" />
<Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="Specify a new password for this server." />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Set Server Password" />
<Control Type="Text" Id="PasswordLabel" Width="50" Height="17" X="52" Y="110" Text="Password:" />
<Control Type="Edit" Id="PasswordEdit" Width="163" Height="15" X="142" Y="110" Property="SERVERPASSWORD" />
<Control Type="Text" Id="ConfirmPasswordLabel" Width="72" Height="17" X="52" Y="136" Text="Confirm password:" />
<Control Type="Edit" Id="ConfirmPasswordEdit" Width="163" Height="15" X="142" Y="136" Property="CONFIRMSERVERPASSWORD" Hidden="no" Password="yes" />
<Control Type="CheckBox" Id="ChangeServerPasswordCheckBox" Width="160" Height="17" X="52" Y="84" Property="CHANGESERVERAPASSWORD" Text="Reset Server Password" />
<Control Type="Text" Id="IntroLabel" Width="341" Height="27" X="15" Y="52" Text="Please, specify a password which will be used to access this Server from the Enterprise Server component. Click Next to continue." />
</Dialog>
<Dialog Id="ESWebDlg" Width="370" Height="270" NoMinimize="yes" Title="[ProductName] Setup">
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back">
<Publish Event="NewDialog" Value="ServerPasswordDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
<Publish Event="NewDialog" Value="ESUserAccountDlg">1</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="Specify WebsitePanel Enterprise Server web settings." />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Web Settings" />
<Control Type="Text" Id="IPaddressLabel" Width="73" Height="15" X="38" Y="79" Text="IP address:" />
<Control Type="Edit" Id="IPaddressEdit" Width="214" Height="15" X="34" Y="98" Property="ESIP1" />
<Control Type="Text" Id="PortLabel" Width="73" Height="15" X="259" Y="79" Text="Port:" />
<Control Type="Edit" Id="PortEdit" Width="46" Height="15" X="259" Y="98" Property="ESPORT" />
<Control Type="Text" Id="HostnameLabel" Width="73" Height="15" X="38" Y="124" Text="Host name:" />
<Control Type="Edit" Id="HostnameEdit" Width="266" Height="15" X="34" Y="142" Property="ESHOSTNAME" Hidden="no" />
<Control Type="Text" Id="HintLabel" Width="190" Height="8" X="41" Y="165" Text="Example: www.contoso.com or panel.contoso.com" />
<Control Type="Text" Id="IntroLabel" Width="321" Height="30" X="26" Y="191" Text="Make sure the specified host name is pointed to this web site; otherwise you might not be able to access the application." />
<Control Type="GroupBox" Id="WebSiteSettingsGroup" Width="330" Height="124" X="22" Y="60" Text="Web Site Settings" />
</Dialog>
<Dialog Id="ESUserAccountDlg" Width="370" Height="270" NoMinimize="yes" Title="[ProductName] Setup">
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back">
<Publish Event="NewDialog" Value="ESWebDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
<Publish Event="NewDialog" Value="ServerAdminPasswordDlg">1</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="Specify WebsitePanel Enterprise Server security settings." />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Security Settings" />
<Control Type="Text" Id="DomainLabel" Width="73" Height="15" X="58" Y="116" Text="Domain:" />
<Control Type="Edit" Id="DomainEdit" Width="163" Height="15" X="142" Y="116" Property="ESDOMAINNAME" />
<Control Type="Text" Id="UserLabel" Width="73" Height="15" X="58" Y="142" Text="User Name:" />
<Control Type="Edit" Id="LoginEdit" Width="163" Height="15" X="142" Y="142" Property="ESUSERNAME">
<Condition Action="disable">AUTHENTICATIONTYPE = "Windows Authentication"</Condition>
<Condition Action="enable">NOT(AUTHENTICATIONTYPE = "Windows Authentication")</Condition>
</Control>
<Control Type="Text" Id="PasswordLabel" Width="73" Height="15" X="58" Y="169" Text="Password:" />
<Control Type="Edit" Id="PasswordEdit" Width="163" Height="15" X="142" Y="169" Property="ESPASSWORD" Hidden="no" Password="yes">
<Condition Action="disable">AUTHENTICATIONTYPE = "Windows Authentication"</Condition>
<Condition Action="enable">NOT(AUTHENTICATIONTYPE = "Windows Authentication")</Condition>
</Control>
<Control Type="Text" Id="ConfirmPasswordLabel" Width="73" Height="15" X="58" Y="195" Text="Confirm Password:" />
<Control Type="Edit" Id="ConfirmPasswordEdit" Width="163" Height="15" X="142" Y="195" Property="ESCONFIRMPASSWORD" />
<Control Type="Text" Id="IntroLabel" Width="341" Height="30" X="15" Y="62" Text="Please specify a new Windows user account for the web site anonymous access and application pool identity." />
<Control Type="CheckBox" Id="CreateADAccountCheckBox" Width="202" Height="17" X="58" Y="90" Text="Create Active Directory account" Property="ESCREATEADACOUNT" />
</Dialog>
<Dialog Id="ServerAdminPasswordDlg" Width="370" Height="270" NoMinimize="yes" Title="[ProductName] Setup">
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back">
<Publish Event="NewDialog" Value="ESUserAccountDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
<Publish Event="NewDialog" Value="DatabaseConnectionDlg" Order="9">&amp;EnterpriseServerFeature=3</Publish>
<Publish Event="NewDialog" Value="DatabaseConnectionDlg" Order="8">&amp;SchedulerServiceFeature=3</Publish>
<Publish Event="NewDialog" Value="PWebDlg" Order="7">&amp;PortalFeature=3</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="2" />
<Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="Specify a new password for the serveradmin account." />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Set Administrator Password" />
<Control Type="Text" Id="PasswordLabel" Width="50" Height="17" X="52" Y="90" Text="Password:" />
<Control Type="Edit" Id="PasswordEdit" Width="163" Height="15" X="142" Y="90" Property="SERVERADMINPASSWORD" />
<Control Type="Text" Id="ConfirmPasswordLabel" Width="72" Height="17" X="52" Y="116" Text="Confirm password:" />
<Control Type="Edit" Id="ConfirmPasswordEdit" Width="163" Height="15" X="142" Y="116" Property="CONFIRMSERVERADMINPASSWORD" Hidden="no" Password="yes">
</Control>
<Control Type="CheckBox" Id="ChangeServeradminPasswordCheckBox" Width="160" Height="17" X="52" Y="64" Property="CHANGESERVERADMINPASSWORD" Text="Reset Serveradmin Password" />
</Dialog>
<Dialog Id="DatabaseConnectionDlg" Width="370" Height="270" NoMinimize="yes" Title="[ProductName] Setup">
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back">
<Publish Event="NewDialog" Value="ServerAdminPasswordDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
<Publish Event="NewDialog" Value="PWebDlg" Order="7">&amp;PortalFeature=3</Publish>
<Publish Event="NewDialog" Value="VerifyReadyDlg" Order="6">1</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="Configure WebsitePanel database connection string" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Database connection string" />
<Control Type="Text" Id="ServerLabel" Width="50" Height="17" X="75" Y="68" Text="SQL Server:" />
<Control Type="Edit" Id="ServerEdit" Width="163" Height="15" X="142" Y="68" Property="SQLSERVERNAME" />
<Control Type="Text" Id="AuthenticationLabel" Width="70" Height="17" X="62" Y="94" Text="Authentication:" />
<Control Type="ComboBox" Id="AuthenticationCombo" Width="163" Height="16" X="142" Y="94" Property="SQLAUTHENTICATIONTYPE">
<ComboBox Property="SQLAUTHENTICATIONTYPE">
<ListItem Text="Windows Authentication" Value="Windows Authentication" />
<ListItem Text="SQL Server Authentication" Value="SQL Server Authentication" />
</ComboBox>
</Control>
<Control Type="Text" Id="LoginLabel" Width="50" Height="17" X="71" Y="120" Text="Login Name:" />
<Control Type="Edit" Id="LoginEdit" Width="163" Height="15" X="142" Y="120" Property="SQLLOGIN">
<Condition Action="disable">AUTHENTICATIONTYPE = "Windows Authentication"</Condition>
<Condition Action="enable">NOT(AUTHENTICATIONTYPE = "Windows Authentication")</Condition>
</Control>
<Control Type="Text" Id="PasswordLabel" Width="50" Height="17" X="80" Y="146" Text="Password:" />
<Control Type="Edit" Id="PasswordEdit" Width="163" Height="15" X="142" Y="146" Property="SQLPASSWORD" Hidden="no" Password="yes">
<Condition Action="disable">AUTHENTICATIONTYPE = "Windows Authentication"</Condition>
<Condition Action="enable">NOT(AUTHENTICATIONTYPE = "Windows Authentication")</Condition>
</Control>
<Control Type="Text" Id="DatabaseLabel" Width="50" Height="17" X="80" Y="172" Text="Database:" />
<Control Type="Edit" Id="DatabaseEdit" Width="163" Height="15" X="142" Y="172" Property="SQLDATABASENAME" />
</Dialog>
<Dialog Id="ConnectionWarningDlg" Width="250" Height="85" Title="[ProductName] Setup" NoMinimize="yes">
<Control Id="Ok" Type="PushButton" X="184" Y="60" Width="56" Height="17" Text="Ok">
<Publish Event="EndDialog" Value="Return">1</Publish>
</Control>
<Control Id="Text" Type="Text" X="8" Y="8" Width="221" Height="30">
<Text>Connection not valid.</Text>
</Control>
</Dialog>
<Dialog Id="PWebDlg" Width="370" Height="270" NoMinimize="yes" Title="[ProductName] Setup">
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back">
<Publish Event="NewDialog" Value="DatabaseConnectionDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
<Publish Event="NewDialog" Value="PUserAccountDlg">1</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="Specify WebsitePanel Portal web settings." />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Web Settings" />
<Control Type="Text" Id="IPaddressLabel" Width="73" Height="15" X="38" Y="79" Text="IP address:" />
<Control Type="Edit" Id="IPaddressEdit" Width="214" Height="15" X="34" Y="98" Property="PIP1" />
<Control Type="Text" Id="PortLabel" Width="73" Height="15" X="259" Y="79" Text="Port:" />
<Control Type="Edit" Id="PortEdit" Width="46" Height="15" X="259" Y="98" Property="PPORT" />
<Control Type="Text" Id="HostnameLabel" Width="73" Height="15" X="38" Y="124" Text="Host name:" />
<Control Type="Edit" Id="HostnameEdit" Width="266" Height="15" X="34" Y="142" Property="PHOSTNAME" Hidden="no" />
<Control Type="Text" Id="HintLabel" Width="190" Height="8" X="41" Y="165" Text="Example: www.contoso.com or panel.contoso.com" />
<Control Type="Text" Id="IntroLabel" Width="321" Height="30" X="26" Y="191" Text="Make sure the specified host name is pointed to this web site; otherwise you might not be able to access the application." />
<Control Type="GroupBox" Id="WebSiteSettingsGroup" Width="330" Height="124" X="22" Y="60" Text="Web Site Settings" />
</Dialog>
<Dialog Id="PUserAccountDlg" Width="370" Height="270" NoMinimize="yes" Title="[ProductName] Setup">
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back">
<Publish Event="NewDialog" Value="PWebDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
<Publish Event="NewDialog" Value="ESUrlDlg">1</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="Specify WebsitePanel Portal security settings." />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Security Settings" />
<Control Type="Text" Id="DomainLabel" Width="73" Height="15" X="58" Y="116" Text="Domain:" />
<Control Type="Edit" Id="DomainEdit" Width="163" Height="15" X="142" Y="116" Property="PDOMAINNAME" />
<Control Type="Text" Id="UserLabel" Width="73" Height="15" X="58" Y="142" Text="User Name:" />
<Control Type="Edit" Id="LoginEdit" Width="163" Height="15" X="142" Y="142" Property="PUSERNAME">
<Condition Action="disable">AUTHENTICATIONTYPE = "Windows Authentication"</Condition>
<Condition Action="enable">NOT(AUTHENTICATIONTYPE = "Windows Authentication")</Condition>
</Control>
<Control Type="Text" Id="PasswordLabel" Width="73" Height="15" X="58" Y="169" Text="Password:" />
<Control Type="Edit" Id="PasswordEdit" Width="163" Height="15" X="142" Y="169" Property="PPASSWORD" Hidden="no" Password="yes">
<Condition Action="disable">AUTHENTICATIONTYPE = "Windows Authentication"</Condition>
<Condition Action="enable">NOT(AUTHENTICATIONTYPE = "Windows Authentication")</Condition>
</Control>
<Control Type="Text" Id="ConfirmPasswordLabel" Width="73" Height="15" X="58" Y="195" Text="Confirm Password:" />
<Control Type="Edit" Id="ConfirmPasswordEdit" Width="163" Height="15" X="142" Y="195" Property="PCONFIRMPASSWORD" />
<Control Type="Text" Id="IntroLabel" Width="341" Height="30" X="15" Y="62" Text="Please specify a new Windows user account for the web site anonymous access and application pool identity." />
<Control Type="CheckBox" Id="CreateADAccountCheckBox" Width="202" Height="17" X="58" Y="90" Text="Create Active Directory account" Property="PCREATEADACOUNT" />
</Dialog>
<Dialog Id="ESUrlDlg" Width="370" Height="270" NoMinimize="yes" Title="[ProductName] Setup">
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back">
<Publish Event="NewDialog" Value="PUserAccountDlg">1</Publish>
</Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
<Publish Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="2" />
<Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="Enter the Enterprise Server URL" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Enterprise Server URL" />
<Control Type="Text" Id="UrlLabel" Width="88" Height="17" X="50" Y="110" Text="Enterprise Server URL:" />
<Control Type="Edit" Id="ESUrlEdit" Width="163" Height="15" X="142" Y="110" Property="ESURL" />
<Control Type="Text" Id="IntroLabel" Width="341" Height="27" X="15" Y="52" Text="Please, specify URL which will be used to access the Enterprise Server from the Portal. Click Next to continue." />
</Dialog>
<Dialog Id="FinishDlg" Width="370" Height="270" NoMinimize="yes" Title="[ProductName] Setup">
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
<Publish Event="NewDialog" Value="FinishDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Setup complete" />
<Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="Click Finish to exit the wizard." />
<Control Type="ScrollableText" Id="Log" Width="360" Height="174" X="4" Y="52" Property="INSTLOG" />
</Dialog>
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="CustomizeDlg" Order="3">LicenseAccepted = "1"</Publish>
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg" Order="3"></Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="SWebDlg" Order="10">&amp;ServerFeature=3</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="ESWebDlg" Order="9">&amp;EnterpriseServerFeature=3</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="DatabaseConnectionDlg" Order="8">&amp;SchedulerServiceFeature=3</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="PWebDlg" Order="7">&amp;PortalFeature=3</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="ESUrlDlg">1</Publish>
<TextStyle Id="DlgTitleFont" FaceName="Tahoma" Size="8" Bold="yes" />
</UI>
<InstallExecuteSequence>
<Custom Action="PropertyFinalizeInstall" After='InstallValidate'/>
<Custom Action="FinalizeUnInstall" After="InstallValidate">(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")</Custom>
<RemoveExistingProducts After="InstallValidate" />
<Custom Action='FinalizeInstall' After='InstallFiles' >NOT Installed or REINSTALL</Custom>
</InstallExecuteSequence>
</Product>
<Fragment>
<CustomAction Id="CheckConnection" BinaryKey="CheckConnection.CA" DllEntry="CheckConnection" />
<Binary Id="CheckConnection.CA" SourceFile="bin\WebsitePanel.WIXInstaller.CA.dll" />
</Fragment>
<Fragment>
<!-- immediate CA -->
<CustomAction Id='PropertyFinalizeInstall' Property='FinalizeInstall' Value='ConnectionString=[CONNECTIONSTRING];PreviousConnectionString=[PREVIOUSCONNECTIONSTRING];ServiceFolder=[SERVICEFOLDER];PreviousCryptoKey=[PREVIOUSCRYPTOKEY]' Return="check"/>
<!-- deferred CA -->
<CustomAction Id='FinalizeInstall' BinaryKey ='CheckConnection.CA' DllEntry='FinalizeInstall' Impersonate='no' Execute='deferred' Return='check' HideTarget='yes'/>
<!--<CustomAction Id="FinalizeInstall" BinaryKey="CheckConnection.CA" DllEntry="FinalizeInstall" />-->
</Fragment>
<Fragment>
<CustomAction Id="PreInstallationAction" BinaryKey="CheckConnection.CA" DllEntry="PreInstallationAction" />
<CustomAction Id="FinalizeUnInstall" BinaryKey="CheckConnection.CA" DllEntry="FinalizeUnInstall" />
<CustomAction Id='AlreadyUpdated' Error='Product has already been updated to $(var.VERSION) or newer.' />
<CustomAction Id='NoDowngrade' Error='A later version of [ProductName] is already installed.' />
</Fragment>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="WEBSITEPANELDIR" Name="WebsitePanel">
<Directory Id="INSTALLSERVICEFOLDER" Name="SchedulerService" />
<Directory Id="INSTALLSERVERFOLDER" Name="Server" />
<Directory Id="INSTALLENTERPRISESERVERFOLDER" Name="Enterprise Server" />
<Directory Id="INSTALLPORTALFOLDER" Name="Portal" />
</Directory>
</Directory>
</Fragment>
</Wix>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include Config.wxi?>
<?define BUILDPATH = "$(var.PROJECTPATH)\Build\$(var.BUILD)\EnterpriseServer\bin"?>
<?define SERVERBUILDPATH = "$(var.PROJECTPATH)\Build\$(var.BUILD)\Server\bin"?>
<Fragment>
<ComponentGroup Id="SchedulerServiceFiles">
<Component Id="cmpSchedulerServiceFiles" Directory="INSTALLSERVICEFOLDER" Guid="{5E9F9A14-DB8E-4555-8D40-67110698F046}">
<File Id="WebsitePanel.SchedulerService.exe" Source="$(var.BUILDPATH)\WebsitePanel.SchedulerService.exe" />
<File Id="WebsitePanel.SchedulerService.exe.config" Source="$(var.BUILDPATH)\WebsitePanel.SchedulerService.exe.config" />
<File Id="Ionic.Zip.Reduced.dll" Source="$(var.SERVERBUILDPATH)\Ionic.Zip.Reduced.dll"/>
<File Id="Microsoft.Web.Services3.dll" Source="$(var.SERVERBUILDPATH)\Microsoft.Web.Services3.dll"/>
<File Id="WebsitePanel.Common.Utils.dll" Source="$(var.BUILDPATH)\WebsitePanel.Common.Utils.dll"/>
<File Id="WebsitePanel.EnterpriseServer.Base.dll" Source="$(var.BUILDPATH)\WebsitePanel.EnterpriseServer.Base.dll"/>
<File Id="WebsitePanel.EnterpriseServer.Code.dll" Source="$(var.BUILDPATH)\WebsitePanel.EnterpriseServer.Code.dll"/>
<File Id="IPAddressRange.dll" Source="$(var.BUILDPATH)\IPAddressRange.dll"/>
<File Id="WhoisClient.dll" Source="$(var.BUILDPATH)\WhoisClient.dll"/>
<File Id="WebsitePanel.Providers.Base.dll" Source="$(var.BUILDPATH)\WebsitePanel.Providers.Base.dll"/>
<File Id="WebsitePanel.Server.Client.dll" Source="$(var.BUILDPATH)\WebsitePanel.Server.Client.dll"/>
<File Id="WebsitePanel.Templates.dll" Source="$(var.BUILDPATH)\WebsitePanel.Templates.dll"/>
<File Id="WebsitePanel.Whois.dll" Source="$(var.BUILDPATH)\WebsitePanel.Whois.dll"/>
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View file

@ -0,0 +1,418 @@
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="INSTALLSERVERFOLDER">
<Directory Id="dirFE040D7A5771FED5DD77B7A4BED10E7F" Name="bin" />
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="ServerFiles">
<Component Id="cmp96DED412EC1A0669CB1EBFC35932E93E" Directory="INSTALLSERVERFOLDER" Guid="{9C6C3B75-99CA-42CD-A470-038267D9A005}">
<File Id="filB926634A8138464D8559D474F7C15209" KeyPath="yes" Source="!(wix.BUILDSPATH)\AutoDiscovery.asmx" />
</Component>
<Component Id="cmp63DCCD43AB534E8330F8B6984D54BCE3" Directory="INSTALLSERVERFOLDER" Guid="{AEC5F0D3-6614-4DA4-BC78-4C2A78B547B9}">
<File Id="filB2A8C91FC26D98653D2BE1DC12FE6C35" KeyPath="yes" Source="!(wix.BUILDSPATH)\BlackBerry.asmx" />
</Component>
<Component Id="cmp48930429FE02E9320F1C89B35CDBC289" Directory="INSTALLSERVERFOLDER" Guid="{13B15EF3-CC43-403C-9DE3-358B6F2D5969}">
<File Id="fil62C838302A2E885DE950B0F7F5F25DE2" KeyPath="yes" Source="!(wix.BUILDSPATH)\CRM.asmx" />
</Component>
<Component Id="cmp8EDD566F3B8E6A2628B81A1DDF643E63" Directory="INSTALLSERVERFOLDER" Guid="{C88D2D9A-BA4A-4564-9090-F03B86416A4B}">
<File Id="filCAC386A1837F77C802D8E416A1B3802B" KeyPath="yes" Source="!(wix.BUILDSPATH)\DatabaseServer.asmx" />
</Component>
<Component Id="cmp3C73293D8E60BEACC4600440DE85514C" Directory="INSTALLSERVERFOLDER" Guid="{3B2F8382-1F64-4485-AF29-AD3C1285A122}">
<File Id="filF3FF68EEFC53A97A90C4A37EA9FDC3AA" KeyPath="yes" Source="!(wix.BUILDSPATH)\Default.aspx" />
</Component>
<Component Id="cmpC093A71A50345DD175FC6A71AACB00C2" Directory="INSTALLSERVERFOLDER" Guid="{2F10360C-BE37-4137-917D-C2F89904DC82}">
<File Id="fil0A152D8E852A19C966DD73DAFD2A181C" KeyPath="yes" Source="!(wix.BUILDSPATH)\DNSServer.asmx" />
</Component>
<Component Id="cmpBABF4FFFC759CED5A9606023F55F378D" Directory="INSTALLSERVERFOLDER" Guid="{92BD8A10-95D9-42AA-83D2-180697C91C07}">
<File Id="fil40F7159D8E7A786994DA7432718341CD" KeyPath="yes" Source="!(wix.BUILDSPATH)\EnterpriseStorage.asmx" />
</Component>
<Component Id="cmpEC8263252ABD67BFDF9721AB87B39BA5" Directory="INSTALLSERVERFOLDER" Guid="{224559DF-466C-472E-82A3-EDF3F5E3267F}">
<File Id="fil76876D97E20E425BC7F16F618E753949" KeyPath="yes" Source="!(wix.BUILDSPATH)\ExchangeServer.asmx" />
</Component>
<Component Id="cmp6746D2022E8E7DD850E397BA7C978EC6" Directory="INSTALLSERVERFOLDER" Guid="{390D8562-D1BE-40B2-9F77-20D397A59CFE}">
<File Id="filBF0AF92BE768A2CBAE35B72158FD7356" KeyPath="yes" Source="!(wix.BUILDSPATH)\FTPServer.asmx" />
</Component>
<Component Id="cmp09C86A4BE06A7D43B7DD384C21575305" Directory="INSTALLSERVERFOLDER" Guid="{DBD91793-ECFF-4E53-BEA9-58A01D056ED9}">
<File Id="fil61BA44AC8127B44683B7F0C15986CFB5" KeyPath="yes" Source="!(wix.BUILDSPATH)\Global.asax" />
</Component>
<Component Id="cmpF942A5A78A6B3711F175A5CB3180BDA1" Directory="INSTALLSERVERFOLDER" Guid="{365035BA-DFFB-42D7-9905-3BBE9BA53AA6}">
<File Id="fil5AF665BD8AE154094178754575352117" KeyPath="yes" Source="!(wix.BUILDSPATH)\HeliconZoo.asmx" />
</Component>
<Component Id="cmp2DB0CBC9ED91615C7B8083BE3B0C86D8" Directory="INSTALLSERVERFOLDER" Guid="{27D1F383-92C7-42D1-B192-6FDD4F06CD01}">
<File Id="filC8F755A8CF3B17D0DE5FCD854E7F3B48" KeyPath="yes" Source="!(wix.BUILDSPATH)\HostedSharePointServer.asmx" />
</Component>
<Component Id="cmp4C3E6D8D4B96BE1CD0196869D14FB245" Directory="INSTALLSERVERFOLDER" Guid="{91A06C00-C855-464C-95B7-E40E2B42A0A3}">
<File Id="fil660F7518B5488A7DC066BAF177DDEFC8" KeyPath="yes" Source="!(wix.BUILDSPATH)\LyncServer.asmx" />
</Component>
<Component Id="cmp306CB2383A2A77A41C74C676B7811B47" Directory="INSTALLSERVERFOLDER" Guid="{570D5F4D-E3C7-44B1-8F71-BB8FAE372E0B}">
<File Id="fil52F43BB29FFD7B874CB9732B72671C0D" KeyPath="yes" Source="!(wix.BUILDSPATH)\MailServer.asmx" />
</Component>
<Component Id="cmpDB9D3FEB28BCAE6FDF0BE2AEF39C999B" Directory="INSTALLSERVERFOLDER" Guid="{081CFA81-3D2F-4ED5-8562-B388EB3D3A0B}">
<File Id="filD57D1DCC138248465285E1F4923C3FD9" KeyPath="yes" Source="!(wix.BUILDSPATH)\OCSEdgeServer.asmx" />
</Component>
<Component Id="cmp910629BAC7808EF349E7003C542C08E7" Directory="INSTALLSERVERFOLDER" Guid="{10CB3F33-CE53-4835-A7F8-130FD5333926}">
<File Id="filEB0E03B52AE3C28E18E512B370C1BBFF" KeyPath="yes" Source="!(wix.BUILDSPATH)\OCSServer.asmx" />
</Component>
<Component Id="cmp16A31FD89793E3A4C3D070B3B93ACCA9" Directory="INSTALLSERVERFOLDER" Guid="{911A9A31-B7DB-4E57-AE82-95634A24AEF9}">
<File Id="filE1118B09B103A0E647F1AAE7E72F4087" KeyPath="yes" Source="!(wix.BUILDSPATH)\OperatingSystem.asmx" />
</Component>
<Component Id="cmpFA5D68FB420FDEE4098A69DD50F6AB3E" Directory="INSTALLSERVERFOLDER" Guid="{711972B6-F4A5-4301-AF48-2D283784BF11}">
<File Id="fil6B0D1DDFDBA6AD698A675110C95379FF" KeyPath="yes" Source="!(wix.BUILDSPATH)\Organizations.asmx" />
</Component>
<Component Id="cmp1F38C4981EFD17118857FFFAC10371C8" Directory="INSTALLSERVERFOLDER" Guid="{689FA4DF-EF98-421F-A0D9-884B753C2A53}">
<File Id="fil0D59B72E8BA7341F46B3DDC4D964C321" KeyPath="yes" Source="!(wix.BUILDSPATH)\RemoteDesktopServices.asmx" />
</Component>
<Component Id="cmp21B566F180DADD0183C0353A687F6FDE" Directory="INSTALLSERVERFOLDER" Guid="{369B51F8-1CC6-4ED1-9E11-AD900120D03C}">
<File Id="filB81FD249DAA39D361B2A0B6687F4F0F3" KeyPath="yes" Source="!(wix.BUILDSPATH)\ServiceProvider.asmx" />
</Component>
<Component Id="cmp3AA7B99FF832F3B7E9A5808320B0FFE1" Directory="INSTALLSERVERFOLDER" Guid="{97346EA6-AABE-4F80-A6DD-FF3F692D184F}">
<File Id="fil8FFE5F6C7A39E2A98052559F2C4BCB40" KeyPath="yes" Source="!(wix.BUILDSPATH)\SharePointServer.asmx" />
</Component>
<Component Id="cmp92F0443BC664FDB758F4B995F00C9E43" Directory="INSTALLSERVERFOLDER" Guid="{F6F4567D-F470-488E-A15B-6D53A8E050DA}">
<File Id="fil3D620C4D77E89EEB1758004E5536C605" KeyPath="yes" Source="!(wix.BUILDSPATH)\StatisticsServer.asmx" />
</Component>
<Component Id="cmp35F67952E66E5E84604457EC472D58C8" Directory="INSTALLSERVERFOLDER" Guid="{B4BE3772-8AF3-40F8-8BAE-54CE3623A1EE}">
<File Id="fil8CE9584A7F2FEB79B4FC404F827FD6E7" KeyPath="yes" Source="!(wix.BUILDSPATH)\VirtualizationServer.asmx" />
</Component>
<Component Id="cmp033A84582ECFB7373515A77AE2A2CA16" Directory="INSTALLSERVERFOLDER" Guid="{60268AED-8BFC-4272-A053-EE9A38C7BC30}">
<File Id="fil9C92DC5A0309F783F8884E9652AB5E8D" KeyPath="yes" Source="!(wix.BUILDSPATH)\VirtualizationServerForPrivateCloud.asmx" />
</Component>
<Component Id="cmp5A55A21753E524E255CC690E7E70F3CF" Directory="INSTALLSERVERFOLDER" Guid="{3CEBB63E-F164-4514-965F-55A998706AE1}">
<File Id="fil0F382EB2E8489D90828EC5F77409E57D" KeyPath="yes" Source="!(wix.BUILDSPATH)\Web.config" />
</Component>
<Component Id="cmp527BAE5A0DD4D756EB186D7D6D3F7E0A" Directory="INSTALLSERVERFOLDER" Guid="{29EF00C0-CB89-43BB-978F-FB60100E6D75}">
<File Id="fil1940908EBFCA3C071C2BB68540F2B8E5" KeyPath="yes" Source="!(wix.BUILDSPATH)\WebServer.asmx" />
</Component>
<Component Id="cmp3B7B3671DB341EE5B0EAA7AA1FF1540C" Directory="INSTALLSERVERFOLDER" Guid="{63E07E71-3588-46F8-8DCC-C318480F572B}">
<File Id="fil8037802C78CCC9C56D336FAF8651017F" KeyPath="yes" Source="!(wix.BUILDSPATH)\WindowsServer.asmx" />
</Component>
<Component Id="cmp2CB0FF22D207EBE0AAE9670986C7C64A" Directory="INSTALLSERVERFOLDER" Guid="{795BCFC9-D995-4A3B-A18C-0D867E31F448}">
<File Id="fil86781B5872C7AFF39512F3DC4F983251" KeyPath="yes" Source="!(wix.BUILDSPATH)\WsePolicyCache.Config" />
</Component>
<Component Id="cmpC637B58C5FFF410A8E4C2BE718BBEDD9" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{14F2635D-BAFA-430E-BCF3-75EBC467094E}">
<File Id="filA2666387782AEE09B82A53BE3E469295" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Ionic.Zip.Reduced.dll" />
</Component>
<Component Id="cmp7B741F3B7DB42D0193CEAFB0813A819C" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{F9DA6DD9-E17C-480E-8265-F30877D2C059}">
<File Id="filF0E4FE856FD7D18B16E3D53385083F22" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Microsoft.Practices.EnterpriseLibrary.Caching.dll" />
</Component>
<Component Id="cmpBF017B6DDBC7DE0627670A52CA32C8D9" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{CEEB9EA4-C9F6-4F0B-96F4-4C96C4C6B4CC}">
<File Id="filA6B23F941E4184964643B4DA5E6980B4" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Microsoft.Practices.EnterpriseLibrary.Common.dll" />
</Component>
<Component Id="cmp5EF44AD73F328024CA2CBA6B38BB2AFA" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{65DC696D-8164-412E-AF76-4CFBCC16D101}">
<File Id="filDA2ECC971C160878E26148C68ACECE82" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Microsoft.Practices.ObjectBuilder.dll" />
</Component>
<Component Id="cmpCE54D375F77874621EDDB0A4940EB9E6" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{ACF45F64-41E8-4251-A966-C75E5FB81FA9}">
<File Id="fil29B93179D8635CD59302BFCB051D86DD" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Microsoft.SharePoint.dll" />
</Component>
<Component Id="cmp2686283674A773D30617C99B8FC52DEB" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{2D7746C6-0557-42B4-A2FA-8C10B8833417}">
<File Id="fil85403E8F62C0CF28016EB380EF5888D0" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Microsoft.Web.Deployment.dll" />
</Component>
<Component Id="cmpBFEB09F79738319DD8854330EB839860" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{79DFF9F5-A68B-4AA1-8C33-6B6D75880E17}">
<File Id="fil7A107E0E86AFB962B7D2018F96A2FBAF" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Microsoft.Web.PlatformInstaller.dll" />
</Component>
<Component Id="cmpD2BAACE827B05F57348AEE581F1002BA" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{44AF55E5-2F0D-4152-B69A-846AD72CD58F}">
<File Id="fil8EC75244E12F566A35ABCEA075D25971" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Microsoft.Web.Services3.dll" />
</Component>
<Component Id="cmpBBCCF5AAA10D0EF2A86706EB38FE2A76" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{C2BCB517-E5F9-46E1-AAC0-79FB2F8063CA}">
<File Id="fil450A02E6C36019B5EB20FFC8719D1B5A" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Base.dll" />
</Component>
<Component Id="cmp1515283D9C191E96AC80C19F89624484" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{6F419407-2348-424C-BBCF-820985351EFB}">
<File Id="fil06C448136A3D63B9C801A578BECEB657" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Database.MySQL.dll" />
</Component>
<Component Id="cmp95EA51E0D1B02835C3A745D2A234B4D1" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{D1872D1F-0323-4CD5-B776-3F6D3F707D5F}">
<File Id="fil14526A4B2779F18C354953674E3243DC" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Database.SqlServer.dll" />
</Component>
<Component Id="cmpA332F87839F8A0555ADB89089F952EE4" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{CC5182DE-9035-4C5F-A46F-D8E4F83E9B4D}">
<File Id="fil0D70139453C6D008A6812D80E4A60A1E" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.DNS.Bind.dll" />
</Component>
<Component Id="cmp03DB823328F105704F7368A7884ECB1B" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{A888227E-F6A3-48FA-B311-95FA16DEE58D}">
<File Id="fil29EC8C959BD56E7D921A3C9C349B8A7D" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.DNS.MsDNS.dll" />
</Component>
<Component Id="cmp8013CAEACE4AE48717802BD85A2F326F" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{1C409CD8-FDE7-4892-AAF2-C36677D5D78E}">
<File Id="filC6A5376B0A44A745BEA04FB4A5AB2626" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.DNS.Nettica.dll" />
</Component>
<Component Id="cmpB3AA0826476AF2ACC2AB245147A22BC2" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{C7EB3435-38E8-40E7-9E08-33AE26AE247E}">
<File Id="fil678E64766BEF048B651ABC3419A63816" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.DNS.PowerDNS.dll" />
</Component>
<Component Id="cmpA1D452FC0569A74063D6BE2417476F29" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{F04B2B35-E4A7-446B-BE2D-084991E381E5}">
<File Id="fil9A3A403E4F95FA57DA84D560BF60B068" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.DNS.SimpleDNS.dll" />
</Component>
<Component Id="cmp6507EEDFDF4ADCC430EE41C14945F40C" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{433E06B9-2F3E-493B-97BE-81D7DF0FE2DA}">
<File Id="fil91917E9FBA2C4C30451AD41F69CF6EB6" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.DNS.SimpleDNS50.dll" />
</Component>
<Component Id="cmp905C0BAE44B2E88242B9973329CBF4B6" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{1EE1AE4A-7E55-438C-83E5-661F5C3D076E}">
<File Id="filC33ACD3FABEB60DF489A31FAC708083E" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.EnterpriseStorage.Windows2012.dll" />
</Component>
<Component Id="cmp9F4FDF79F1734A2143D3802D5187B25D" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{E2CD6B2C-AA2D-4C7E-9C7F-51EF3ABA8E64}">
<File Id="filFB7D4FF05D80FFF70AC5F00A36CF2EB7" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.FTP.FileZilla.dll" />
</Component>
<Component Id="cmpE02E95B1EB07113A26867DA24B42A27E" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{FAA3F757-E2F9-4976-84FC-5A3CE72B4BDA}">
<File Id="fil034287C431D58A0A2887A315EBABC440" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.FTP.Gene6.dll" />
</Component>
<Component Id="cmp9289FE560AE048D24623B214F1D6DC91" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{4ABDF6C2-CE4A-4295-A2C7-3FF2EB5DEBCD}">
<File Id="fil652138C0629DC965870B068FB36CA409" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.FTP.IIs60.dll" />
</Component>
<Component Id="cmp5B92624363FC4444E67A6CE069B4A678" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{379EE786-5546-4CE0-970D-F86F50DE8522}">
<File Id="filEEE26B77994B26E68CF545745F727931" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.FTP.IIs70.dll" />
</Component>
<Component Id="cmp3A0C35665CCAEC2E26672C21E4EE8200" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{615CBB3C-7A16-49FB-8108-433B986B68A6}">
<File Id="fil353B036889A96E5981113A98376A396D" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.FTP.IIs80.dll" />
</Component>
<Component Id="cmp2495A7FAC5953B9B5EA581CEF304A00E" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{39540F66-DC39-49B2-AC9C-3ED2A834C4E2}">
<File Id="fil9974B5EF932DE87359CAB6A73C676280" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.FTP.ServU.dll" />
</Component>
<Component Id="cmp8B59B4F33E3DAECEDFAB2E5A14917300" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{4EFA61BB-A2F9-4D09-99FF-9250943C7C5B}">
<File Id="fil1BBD5C87DDE7F63DA09C857427384BD5" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.HostedSolution.dll" />
</Component>
<Component Id="cmpA888923B593C22476D796F9528A6F85E" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{FB5261D8-E23C-4646-967D-D8760A0B0E03}">
<File Id="fil9420EA407752E6B19DAC2A82686C374A" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.AbilityMailServer.dll" />
</Component>
<Component Id="cmpCF68B3E2AC37C2C18EADE9091B711F74" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{3F8AD4B7-6B61-4AA4-91A1-C166EB1FF228}">
<File Id="fil28524A2B3EAA52BBDC052EB2145D4779" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.ArgoMail.dll" />
</Component>
<Component Id="cmp7FEDE73801DC1E58F00EC0FB2DBF41DD" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{46400D14-78C9-4FFC-A53E-0DE9347B7318}">
<File Id="fil6926A82EFE13230A1029ADA37F3B275D" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.hMailServer.dll" />
</Component>
<Component Id="cmp568A5F5714FE855715F0768AFBC9E534" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{2B1EBC99-3D8B-4B0C-818B-DB5E62221A42}">
<File Id="filB4BC4706797A99E1AD42680774C5EAAC" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.hMailServer43.dll" />
</Component>
<Component Id="cmp087F4389AB58E1F849684FB3BD1B0C33" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{0B8DDE20-9A2C-4994-AE1C-6A6EF2DBD898}">
<File Id="fil72B71156FDA4DF016DBC3A25EBAFB7BA" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.hMailServer5.dll" />
</Component>
<Component Id="cmpD1E8FAAC1C4B89E40C8A19742CD4BDB0" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{2EE2C4AA-81B8-4619-9026-B0892098355B}">
<File Id="fil671F0D630BEB8FE39C8A823383B531D4" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.MailEnable.dll" />
</Component>
<Component Id="cmp537FE354DD1E89AD52C01F4AFD11FF25" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{6586DF76-4439-419E-A4A8-EA89FE47BA05}">
<File Id="fil84746644F379BD1A44D89738E5E60D77" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.MDaemon.dll" />
</Component>
<Component Id="cmp9EF9EC8F1FCA522773D623C062901798" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{F9F873EF-3708-49BC-BE7C-C0D7AC725FE4}">
<File Id="fil136BB48E8EF95DC44AC78171D3CA5D20" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.Merak.dll" />
</Component>
<Component Id="cmp2F2088486B25CBBA296988F185D602F3" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{01504469-600B-4F5D-982E-B0818B6F154A}">
<File Id="filB5701056CEFAB30CDD5C02DED13563E2" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.Merak10.dll" />
</Component>
<Component Id="cmpA62744DABB1044B5AC910B0C64FFC1C8" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{D422F171-8031-4395-9F8D-2185510B3F37}">
<File Id="filA00E9CA8A75BC9EE2DEF4C2CA9CEB059" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.SmarterMail10.dll" />
</Component>
<Component Id="cmp06AA8A52C332A572C8C74D7F2C95D4DE" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{4FE3DDFA-20C3-43DF-8156-F3B438DA0B63}">
<File Id="fil785CD72996AD86F1A6720EA446F8F21B" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.SmarterMail2.dll" />
</Component>
<Component Id="cmpCA1F382779EA19E5B8793A3D4FFC0FF2" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{A9390DBC-17C9-4AE0-B323-9E78932740B1}">
<File Id="filEB2957C86497F25EAC16B036486CA283" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.SmarterMail3.dll" />
</Component>
<Component Id="cmp1083DC408DF20492F5DE377A16263FF7" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{873E0B3C-69C7-4C0A-AF59-7F45BCB183DE}">
<File Id="filD7F7DAB2FF0788C732AD24E2D383C1DF" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.SmarterMail5.dll" />
</Component>
<Component Id="cmp52001A1619C6C6462AD4E18E29D55C6F" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{16363D08-6426-4501-9BBD-2CD0DCFAE59D}">
<File Id="fil72440168699B087AAAC3302250859BFE" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.SmarterMail6.dll" />
</Component>
<Component Id="cmpE1B98C56567775781CE232F3214F524A" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{7C655C0D-BDBD-4E0F-96A2-CBA8E72CE9FB}">
<File Id="fil12C3D1282B8A801E36D99E762A121A66" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.SmarterMail7.dll" />
</Component>
<Component Id="cmpA4E38AE6D4E9AE1176AA16104BE5986B" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{64BE947C-733B-449D-A19C-903AD3F6CFEF}">
<File Id="filA9E11356C8902BB5EF584834550A69CC" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Mail.SmarterMail9.dll" />
</Component>
<Component Id="cmpB38C9202BA28BAD71AD07B923AF3772F" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{24D0FE3E-0342-4BD6-BDEB-9D0D02E6EF08}">
<File Id="fil06BA6E487745E8B3E0494FFB1AA2B497" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.OS.Windows2003.dll" />
</Component>
<Component Id="cmp63DB63B64A618EA65264B01D70000FED" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{03D629BA-7350-48AF-A2C3-B30DBEC9105F}">
<File Id="fil58C34443FC21D9BE6B71E2919A89BAC0" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.OS.Windows2008.dll" />
</Component>
<Component Id="cmp2C66B23D5DF822EB8D663F1FC32F569D" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{EAB1EACD-3AAC-4384-B2B6-5885CF367240}">
<File Id="fil5675AA4257F6D7D96EE65FDBF385ED91" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.OS.Windows2012.dll" />
</Component>
<Component Id="cmp9850380FBEE49BF361DE1623D8988A44" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{0AE43F78-5C21-4211-A421-D46C359321CC}">
<File Id="filE253B426B238460A49DEEFD29D9142AD" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.RemoteDesktopServices.Windows2012.dll" />
</Component>
<Component Id="cmpC14DDD7B34A70EA7083A2BE11838F701" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{45A04EFE-63F6-4C26-8197-55EAD1CA1A98}">
<File Id="fil24FA21A4CEF15DA75093A3A5AAFF93A6" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.SharePoint.Sps20.dll" />
</Component>
<Component Id="cmpA6C82FCCA55B620D750CE7674B8B9F44" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{91201239-F139-4A37-ACCF-D39D3BFFE76E}">
<File Id="filBB1B7CA0EAC43612F902D90A65A224CE" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.SharePoint.Sps30.dll" />
</Component>
<Component Id="cmpFF119681BD8008898F6103A8BCFDBB2F" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{24E49F72-7DD8-4B06-B7BB-7407F2421B8F}">
<File Id="fil573514FBA2C5F9C92BD1B0532D054554" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Statistics.AWStats.dll" />
</Component>
<Component Id="cmp2F5BF453E89F94BB15B7D1949534DF0E" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{0FC90D00-AC40-45FD-9322-416488793CE1}">
<File Id="fil14A6E07E9EA9FE90EE1EC91858585B5D" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Statistics.SmarterStats.dll" />
</Component>
<Component Id="cmp4AA6CB20AF0A6ECC7DD2D95EF7094CBE" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{16FA9CF8-6FA9-4EB2-9713-FDE6E1D3CD66}">
<File Id="fil7D5F6004B61FE9C35A959936BC31781B" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Virtualization.HyperV.dll" />
</Component>
<Component Id="cmp154A0DA3C71753EEEB9F809B83E08E27" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{803B2DC8-DE9B-4700-8040-4010012BFB2C}">
<File Id="filFBC7D819D03B96C18FB156EF5F9539A2" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.VirtualizationForPC.HyperVForPC.dll" />
</Component>
<Component Id="cmpE9B063D357EB748BE21228BA513E8674" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{7AA5D1E6-CE53-46DC-8540-A53CB7A4492F}">
<File Id="fil84F5BBFA5CEC951535A17FE38933B981" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Web.HeliconZoo.dll" />
</Component>
<Component Id="cmp32968AF9A3AD6138CDBA254104E73120" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{B00D1740-9A8B-4903-B0FC-13C8FE42BE8B}">
<File Id="fil7F9A12715FB49D2642B96929B1ECAAA5" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Web.IIs60.dll" />
</Component>
<Component Id="cmpFD6B772BF9EB61A8AABA7216A6B675EB" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{53E8EEE3-1CF6-4CE6-B229-85655E71D82A}">
<File Id="filB31183F0242FE3ABB8E2EFF5383FD7F7" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Web.IIs70.dll" />
</Component>
<Component Id="cmp7D71D06B103F2EBDCF0EDBD2460F6502" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{E44D17E7-9F04-4971-96EA-E68A2CF75CB9}">
<File Id="filBAEBC7317268ABBD3A5F8E738AB73F39" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Providers.Web.WebDav.dll" />
</Component>
<Component Id="cmp5FCD88765D7659FCAB72DE01DA3140D1" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{D711AEDE-7E91-4AD5-B09B-CC68927A7A0D}">
<File Id="filFE922D534F7035FB38E8FFD8302CE43A" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Server.dll" />
</Component>
<Component Id="cmpE80C969BC3E766BF7FEDB0D98758E8E3" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{BA96E14A-4577-4F56-ADF1-6A7C8D84A4E0}">
<File Id="filF149294B668ADAD1E4393AAA18AACCF0" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Server.dll.config" />
</Component>
<Component Id="cmp81063BD4D67928BEDE27EE6B8E07AAF9" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{4AA6D12E-7A2B-4A02-81AC-E618A32FA4FE}">
<File Id="fil2C918FFCA79875EE4BF1EA215A877524" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Server.Utils.dll" />
</Component>
<Component Id="cmpCC2FC19B4E788EA65E57C9CC016E04C1" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{AB103062-0067-4C3C-B6C9-C40A2317014A}">
<File Id="filCFE40B401F4EF39EAE6C9CBE6D4A3057" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Server.WPIService.exe" />
</Component>
<Component Id="cmp65CB7C68CAB97FA89556C6A83E32C596" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{BBA5F432-4B91-43EA-8F94-2CED1884D0FA}">
<File Id="fil78C2D2ADE981704BA7AF30575397B7FB" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WebsitePanel.Server.WPIService.exe.config" />
</Component>
<Component Id="cmp378159186E25B10226397C53E06F38BA" Directory="dirFE040D7A5771FED5DD77B7A4BED10E7F" Guid="{D30346C4-D09A-4203-83A2-280F077E8BF6}">
<File Id="filE2975D3613DBD61E124E4C7EBE483F4E" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\WpiServiceContract.dll" />
</Component>
<Component Id="cmp4985003E6B0F0F1645AE04EDE9269CF2" Directory="dir0FF1D37B4E002D1097484E8DA68347FE" Guid="{171E2088-1E1B-46E6-B4A8-A69DF38B4798}">
<File Id="fil50398A76EEBD64ADE5B61D151FC852A5" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2011\microsoft.crm.sdk.proxy.dll" />
</Component>
<Component Id="cmpAFBA22FA233D2CFF4BBD805340F0D0A9" Directory="dir0FF1D37B4E002D1097484E8DA68347FE" Guid="{0ED94A25-49E8-4CAF-B6B7-D5C51E5A79BB}">
<File Id="filEDA542483FE90DCD594CD35C18C12F81" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2011\microsoft.xrm.client.codegeneration.dll" />
</Component>
<Component Id="cmp62740FCAFC1FB55DF089182FBAA82930" Directory="dir0FF1D37B4E002D1097484E8DA68347FE" Guid="{E205D57B-12B5-4CAD-BD52-DFE910FB0982}">
<File Id="filB23E88B971878AF62AEB0AD41113CB04" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2011\microsoft.xrm.client.dll" />
</Component>
<Component Id="cmp4A65EA6177B134C49D67ACF23C7B9B00" Directory="dir0FF1D37B4E002D1097484E8DA68347FE" Guid="{6AC5631B-3F3E-4F30-ABE5-DE67BCB9EB6A}">
<File Id="filEC455712CF5CA31CC79277FB2A8EEDA5" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2011\microsoft.xrm.portal.dll" />
</Component>
<Component Id="cmp9F5B9579A69774A96A2A5E831433656C" Directory="dir0FF1D37B4E002D1097484E8DA68347FE" Guid="{3A09A1AE-AE62-4020-9944-94CAF14F3869}">
<File Id="fil78C4A570820F3C09BF139830A20D0580" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2011\microsoft.xrm.portal.files.dll" />
</Component>
<Component Id="cmp4B5B936B03682B4316FEF78E2CB2EECA" Directory="dir0FF1D37B4E002D1097484E8DA68347FE" Guid="{C7F490EE-A281-4D2F-BD9A-4F26A4716ECE}">
<File Id="filAA6555CB16EB7368E0935AD3D36B0098" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2011\microsoft.xrm.sdk.deployment.dll" />
</Component>
<Component Id="cmpDB221AF3E175B9F31103DF784D4A8B29" Directory="dir0FF1D37B4E002D1097484E8DA68347FE" Guid="{9AFF2BF3-990A-408D-B2A6-CC3E7DBE512C}">
<File Id="fil3AF7A7AB8BF103BB79B55DE5CDA6953E" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2011\microsoft.xrm.sdk.dll" />
</Component>
<Component Id="cmp0A7AC307A4E864E745D908041B544E61" Directory="dir0FF1D37B4E002D1097484E8DA68347FE" Guid="{141A09BE-907B-4A14-A59A-D2DFFCE355E2}">
<File Id="fil39DAA17C0D70352C51E21C93BF82B3CD" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2011\microsoft.xrm.sdk.workflow.dll" />
</Component>
<Component Id="cmpA3498D1041ABACD2F4399A2B461795EF" Directory="dir0FF1D37B4E002D1097484E8DA68347FE" Guid="{2E62A428-408A-4330-9953-0F1C4F3232AE}">
<File Id="fil245E9A6DE9B7C784141B733B0901A182" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2011\WebsitePanel.Providers.HostedSolution.Crm2011.dll" />
</Component>
<Component Id="cmp600CE97A0561D00935DDC3C869CB5BC0" Directory="dir14530AC2BB9F57DEF83E8CF76842E9A1" Guid="{BE962314-DEC0-4420-8A40-15B76F6A401C}">
<File Id="fil2724A9052946EBC7B97A2700DCD3B837" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2013\Microsoft.Crm.Sdk.Proxy.dll" />
</Component>
<Component Id="cmp58D4C555A54200FF930A4A9821787905" Directory="dir14530AC2BB9F57DEF83E8CF76842E9A1" Guid="{437F25DA-95EB-43CF-AB62-115CE99277E8}">
<File Id="fil2ED83C4E77D49C99B842E7AACE418F61" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2013\Microsoft.Xrm.Client.CodeGeneration.dll" />
</Component>
<Component Id="cmp20512F14450C80F57E51D4F2DFE7430E" Directory="dir14530AC2BB9F57DEF83E8CF76842E9A1" Guid="{664BAC91-236E-460B-A1FD-1BF249A6AFB7}">
<File Id="filD65006CF70206A849BAB186C60FF4370" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2013\Microsoft.Xrm.Client.dll" />
</Component>
<Component Id="cmpE8C26850E14F5DA23D7D9638390E3C4D" Directory="dir14530AC2BB9F57DEF83E8CF76842E9A1" Guid="{DC87DA64-A0F6-4F76-AF1A-CB8FE8E536B7}">
<File Id="filEF115D6A5B962C01CCC0B0F4B3B09825" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2013\Microsoft.Xrm.Portal.dll" />
</Component>
<Component Id="cmp197EDE5370E60E063675D38B1B451FCE" Directory="dir14530AC2BB9F57DEF83E8CF76842E9A1" Guid="{80438A8A-13BF-4B6E-B634-4418F432B7EA}">
<File Id="fil815EBE3DA213A225C9D8C64E5E27F8C0" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2013\Microsoft.Xrm.Portal.Files.dll" />
</Component>
<Component Id="cmpB313C65750A6739F92659B31A8760885" Directory="dir14530AC2BB9F57DEF83E8CF76842E9A1" Guid="{99D73D6C-B91E-4EE4-A366-254AC2B3DEBC}">
<File Id="filE50151DB1204CE36C6C22DF57076F3CE" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2013\Microsoft.Xrm.Sdk.Deployment.dll" />
</Component>
<Component Id="cmp739A4CC29091628852BFF4399EB69968" Directory="dir14530AC2BB9F57DEF83E8CF76842E9A1" Guid="{4637C66A-AF2F-454A-BFE5-64C6A08FC4C6}">
<File Id="filDD18D2532741F040025B05BEFDC0793D" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2013\Microsoft.Xrm.Sdk.dll" />
</Component>
<Component Id="cmp253CF14BA3D498979675E07A12BF9523" Directory="dir14530AC2BB9F57DEF83E8CF76842E9A1" Guid="{4054EE2F-43C4-4EAD-9D78-7F562C3E9F72}">
<File Id="fil13084C66DF169007CBA96CBDE22259D6" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2013\Microsoft.Xrm.Sdk.Workflow.dll" />
</Component>
<Component Id="cmp0C5DA0CE34C0E7592487E9967664BAAD" Directory="dir14530AC2BB9F57DEF83E8CF76842E9A1" Guid="{8ABE606F-FB2D-4D55-B735-574C164124A8}">
<File Id="filAFF3218DD357C7611D065CCC68D49359" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2013\System.Management.Automation.dll" />
</Component>
<Component Id="cmp2DEA3D6DF990C7724B0F1B530014F707" Directory="dir14530AC2BB9F57DEF83E8CF76842E9A1" Guid="{0108598D-CD2C-4C77-BE16-2D1B19053E2A}">
<File Id="filA3F7F760A288D162EE6E615A85B1DBEB" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Crm2013\WebsitePanel.Providers.HostedSolution.Crm2013.dll" />
</Component>
<Component Id="cmpCEE2DE5921F480D680024ECFC9E4F9B5" Directory="dir9DB81FFFD1FC013D1C2CF57BA60D8A21" Guid="{DD7699F6-CB55-4733-8329-43AF0BB9B07F}">
<File Id="filBFA27EC94AACB8942D029160D37FB3BB" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Dns2012\Ionic.Zip.Reduced.dll" />
</Component>
<Component Id="cmpC15EACF4C9978AD51C6A7193D28859D5" Directory="dir9DB81FFFD1FC013D1C2CF57BA60D8A21" Guid="{2B246ABB-98A2-429E-9101-98B10C756F69}">
<File Id="fil840EC1EF00874898A1EE79B9EA93628B" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Dns2012\Microsoft.Management.Infrastructure.dll" />
</Component>
<Component Id="cmp5E399471288617EBA91BEC5A3D0A53D4" Directory="dir9DB81FFFD1FC013D1C2CF57BA60D8A21" Guid="{D782FF0C-2562-437F-80F5-155176093125}">
<File Id="filC95A7BD7394C0B6ECC96C1F2B8527FAF" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Dns2012\System.Management.Automation.dll" />
</Component>
<Component Id="cmpEA96B4323E4ECB2A09578CCB5B233A73" Directory="dir9DB81FFFD1FC013D1C2CF57BA60D8A21" Guid="{DA39E5B3-BA19-45A4-AD91-B2E72A69D4A8}">
<File Id="fil4D3C607CD38D7122FC76402A9193E9B6" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Dns2012\WebsitePanel.Providers.Base.dll" />
</Component>
<Component Id="cmp80A882410F75D6B41C82A7EA3A2D0120" Directory="dir9DB81FFFD1FC013D1C2CF57BA60D8A21" Guid="{10FE1D7B-3105-47CF-94D2-94A75A55FEA4}">
<File Id="filB01B9791F743D6A987E95D1A97AA04F3" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Dns2012\WebsitePanel.Providers.DNS.MsDNS2012.dll" />
</Component>
<Component Id="cmpB54E7486866B33C5516D55BB38C8D42F" Directory="dir9DB81FFFD1FC013D1C2CF57BA60D8A21" Guid="{0F9DED36-1D3E-4412-813E-242524E6D141}">
<File Id="fil67DE9EE273A5936C2749D2C54EA87413" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Dns2012\WebsitePanel.Server.Utils.dll" />
</Component>
<Component Id="cmp168AE7D42CCDE5239DBC3F652AD99C74" Directory="dir30FECF9E1562D1E619668EB5D21027FC" Guid="{38ED8BAC-7486-4528-8CBD-98C7AE0BADBB}">
<File Id="filC316983A9FBFA8054061C1E2D4FF7FF6" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Exchange2013\WebsitePanel.Providers.HostedSolution.Exchange2013.dll" />
</Component>
<Component Id="cmp324158A3B60665EF9B8FDB27D76D8D3E" Directory="dir0EE9B80D60D6BE4DCE110990FB635EA7" Guid="{F0B1FAA9-C0C7-454D-857B-3842E21DF421}">
<File Id="fil0AE2A62224B28CB32C10969DC44EA1FD" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\IceWarp\WebsitePanel.Providers.Mail.IceWarp.dll" />
</Component>
<Component Id="cmpEC8C9D71455BA37AC2CB74D469511A4B" Directory="dir545332CB192D456FD4BEFF68E1658417" Guid="{CF0797AF-5C03-4136-B5AF-F2DD54DA7DE2}">
<File Id="fil0A9E6D264D8AA75E1D602A135A039DB0" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\IIs80\WebsitePanel.Providers.Web.IIs80.dll" />
</Component>
<Component Id="cmp4613983A20D5646920C0EAA77F4FC7C0" Directory="dir899A65007F0749FFEFB03A98389E2079" Guid="{688171A2-EEA1-4D0D-90DF-2E784F2FE901}">
<File Id="fil44D8CC7D807D8FEBAB4FE6054620C736" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Lync2013\WebsitePanel.Providers.Base.dll" />
</Component>
<Component Id="cmp3C97FB9FDA4AD2A6CCAE7058F0F2E380" Directory="dir899A65007F0749FFEFB03A98389E2079" Guid="{2A67A316-56B4-45B3-9FA2-DC9A93EE94D7}">
<File Id="fil23CA402B8594238B3D64EFD3B4F17880" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Lync2013\WebsitePanel.Providers.HostedSolution.Lync2013.dll" />
</Component>
<Component Id="cmpAB76FA39538E7C8466CA77180637A684" Directory="dir899A65007F0749FFEFB03A98389E2079" Guid="{E58132D2-B8A6-49CB-A5C6-9312297E65D2}">
<File Id="filB0539BC659B2897F193D3FC4511C39F2" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Lync2013\WebsitePanel.Providers.HostedSolution.Lync2013HP.dll" />
</Component>
<Component Id="cmp07CD2C76A86BAB89DD086BC9292D5A12" Directory="dir899A65007F0749FFEFB03A98389E2079" Guid="{05D926CF-5C42-4F53-B4D5-5A87A057E97D}">
<File Id="fil6A766B3DB5441EF371E0E8117306BE23" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Lync2013\WebsitePanel.Server.Utils.dll" />
</Component>
<Component Id="cmpAC4A187E977273BE5B8FA2D4DD607F74" Directory="dirB3D4D8D478E88FDD3AAF3F23B7B1E605" Guid="{54A1D13C-FA3A-4A2C-B083-C00704F7B4F1}">
<File Id="fil0AD10A0DE839FF8CECBF22DB6B427C12" KeyPath="yes" Source="!(wix.BUILDSPATH)\bin\Sharepoint2013\WebsitePanel.Providers.HostedSolution.SharePoint2013.dll" />
</Component>
</ComponentGroup>
</Fragment>
<Fragment>
<DirectoryRef Id="dirFE040D7A5771FED5DD77B7A4BED10E7F">
<Directory Id="dir0EE9B80D60D6BE4DCE110990FB635EA7" Name="IceWarp" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirFE040D7A5771FED5DD77B7A4BED10E7F">
<Directory Id="dir0FF1D37B4E002D1097484E8DA68347FE" Name="Crm2011" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirFE040D7A5771FED5DD77B7A4BED10E7F">
<Directory Id="dir14530AC2BB9F57DEF83E8CF76842E9A1" Name="Crm2013" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirFE040D7A5771FED5DD77B7A4BED10E7F">
<Directory Id="dir30FECF9E1562D1E619668EB5D21027FC" Name="Exchange2013" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirFE040D7A5771FED5DD77B7A4BED10E7F">
<Directory Id="dir545332CB192D456FD4BEFF68E1658417" Name="IIs80" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirFE040D7A5771FED5DD77B7A4BED10E7F">
<Directory Id="dir899A65007F0749FFEFB03A98389E2079" Name="Lync2013" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirFE040D7A5771FED5DD77B7A4BED10E7F">
<Directory Id="dir9DB81FFFD1FC013D1C2CF57BA60D8A21" Name="Dns2012" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirFE040D7A5771FED5DD77B7A4BED10E7F">
<Directory Id="dirB3D4D8D478E88FDD3AAF3F23B7B1E605" Name="Sharepoint2013" />
</DirectoryRef>
</Fragment>
</Wix>

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>3.7</ProductVersion>
<ProjectGuid>{978f0a18-7c81-4561-8f6d-5a165484ad0a}</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>Websitepanel</OutputName>
<OutputType>Package</OutputType>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>bin\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug;BUILD=debug</DefineConstants>
<SuppressValidation>False</SuppressValidation>
<SuppressIces>
</SuppressIces>
<CompilerAdditionalOptions>
</CompilerAdditionalOptions>
<LinkerAdditionalOptions>
</LinkerAdditionalOptions>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>BUILD=release</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Include="EnterpriseServerFiles.wxs" />
<Compile Include="PortalFiles.wxs" />
<Compile Include="Product.wxs" />
<Compile Include="SchedulerServiceFiles.wxs" />
<Compile Include="ServerFiles.wxs" />
</ItemGroup>
<ItemGroup>
<Content Include="Config.wxi" />
</ItemGroup>
<ItemGroup>
<WixExtension Include="WixUIExtension">
<HintPath>..\..\..\tools\WIX\WixUIExtension.dll</HintPath>
<Name>WixUIExtension</Name>
</WixExtension>
</ItemGroup>
<Import Project="$(WixTargetsPath)" />
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Wix.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 KiB

View file

@ -1,31 +1,3 @@
// Copyright (c) 2015, 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.
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
@ -42,7 +14,7 @@ using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyCompany("Outercurve Foundation")]
[assembly: AssemblyCopyright("Copyright © 2012 Outercurve Foundation.")]
[assembly: AssemblyCopyright("Copyright © 2014 Outercurve Foundation.")]
[assembly: AssemblyVersion("2.1.0.1")]
[assembly: AssemblyFileVersion("2.1.0.1")]
[assembly: AssemblyInformationalVersion("2.1.0")]

View file

@ -1,5 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2010
# Visual Studio 2013
VisualStudioVersion = 12.0.30723.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{129305D5-A9E6-4DCE-BFF6-41809E13EEEE}"
ProjectSection(SolutionItems) = preProject
..\..\WebsitePanel\build.xml = ..\..\WebsitePanel\build.xml

View file

@ -53,6 +53,8 @@ namespace WebsitePanel.SchedulerServiceInstaller
{
string testConnectionString = session["AUTHENTICATIONTYPE"].Equals("Windows Authentication") ? GetConnectionString(session["SERVERNAME"], "master") : GetConnectionString(session["SERVERNAME"], "master", session["LOGIN"], session["PASSWORD"]);
testConnectionString = testConnectionString.Replace(CustomDataDelimiter, ";");
if (CheckConnection(testConnectionString))
{
session["CORRECTCONNECTION"] = "1";

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<!--
Use supportedRuntime tags to explicitly specify the version(s) of the .NET Framework runtime that
the custom action should run on. If no versions are specified, the chosen version of the runtime
will be the "best" match to what Microsoft.Deployment.WindowsInstaller.dll was built against.
WARNING: leaving the version unspecified is dangerous as it introduces a risk of compatibility
problems with future versions of the .NET Framework runtime. It is highly recommended that you specify
only the version(s) of the .NET Framework runtime that you have tested against.
Note for .NET Framework v3.0 and v3.5, the runtime version is still v2.0.
In order to enable .NET Framework version 2.0 runtime activation policy, which is to load all assemblies
by using the latest supported runtime, @useLegacyV2RuntimeActivationPolicy="true".
For more information, see http://msdn.microsoft.com/en-us/library/bbx34a2h.aspx
-->
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727"/>
</startup>
<!--
Add additional configuration settings here. For more information on application config files,
see http://msdn.microsoft.com/en-us/library/kza1yk3a.aspx
-->
</configuration>

View file

@ -0,0 +1,274 @@
// Copyright (c) 2015, 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;
using System.Collections.Generic;
using System.Configuration.Install;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.ServiceProcess;
using System.Text.RegularExpressions;
using System.Threading;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;
using System.Xml;
using Microsoft.Deployment.WindowsInstaller;
using WebsitePanel.Setup;
namespace WebsitePanel.WIXInstaller
{
public class CustomActions
{
public const string CustomDataDelimiter = "-=del=-";
[CustomAction]
public static ActionResult CheckConnection(Session session)
{
string testConnectionString = session["AUTHENTICATIONTYPE"].Equals("Windows Authentication") ? GetConnectionString(session["SERVERNAME"], "master") : GetConnectionString(session["SERVERNAME"], "master", session["LOGIN"], session["PASSWORD"]);
if (CheckConnection(testConnectionString))
{
session["CORRECTCONNECTION"] = "1";
session["CONNECTIONSTRING"] = session["AUTHENTICATIONTYPE"].Equals("Windows Authentication") ? GetConnectionString(session["SERVERNAME"], session["DATABASENAME"]) : GetConnectionString(session["SERVERNAME"], session["DATABASENAME"], session["LOGIN"], session["PASSWORD"]);
}
else
{
session["CORRECTCONNECTION"] = "0";
}
return ActionResult.Success;
}
[CustomAction]
public static ActionResult FinalizeInstall(Session session)
{
var connectionString = GetCustomActionProperty(session, "ConnectionString").Replace(CustomDataDelimiter, ";");
var serviceFolder = GetCustomActionProperty(session, "ServiceFolder");
var previousConnectionString = GetCustomActionProperty(session, "PreviousConnectionString").Replace(CustomDataDelimiter, ";");
var previousCryptoKey = GetCustomActionProperty(session, "PreviousCryptoKey");
if (string.IsNullOrEmpty(serviceFolder))
{
return ActionResult.Success;
}
connectionString = string.IsNullOrEmpty(previousConnectionString)
? connectionString
: previousConnectionString;
ChangeConfigString("/configuration/connectionStrings/add[@name='EnterpriseServer']", "connectionString", connectionString, serviceFolder);
ChangeConfigString("/configuration/appSettings/add[@key='WebsitePanel.CryptoKey']", "value", previousCryptoKey, serviceFolder);
InstallService(serviceFolder);
return ActionResult.Success;
}
[CustomAction]
public static ActionResult FinalizeUnInstall(Session session)
{
UnInstallService();
return ActionResult.Success;
}
[CustomAction]
public static ActionResult PreInstallationAction(Session session)
{
session["SKIPCONNECTIONSTRINGSTEP"] = "0";
session["SERVICEFOLDER"] = session["INSTALLFOLDER"];
var servicePath = SecurityUtils.GetServicePath("WebsitePanel Scheduler");
if (!string.IsNullOrEmpty(servicePath))
{
string path = Path.Combine(servicePath, "WebsitePanel.SchedulerService.exe.config");
if (File.Exists(path))
{
using (var reader = new StreamReader(path))
{
string content = reader.ReadToEnd();
var pattern = new Regex(@"(?<=<add key=""WebsitePanel.CryptoKey"" .*?value\s*=\s*"")[^""]+(?="".*?>)");
Match match = pattern.Match(content);
session["PREVIOUSCRYPTOKEY"] = match.Value;
var connectionStringPattern = new Regex(@"(?<=<add name=""EnterpriseServer"" .*?connectionString\s*=\s*"")[^""]+(?="".*?>)");
match = connectionStringPattern.Match(content);
session["PREVIOUSCONNECTIONSTRING"] = match.Value.Replace(";", CustomDataDelimiter);
}
session["SKIPCONNECTIONSTRINGSTEP"] = "1";
if (string.IsNullOrEmpty(session["SERVICEFOLDER"]))
{
session["SERVICEFOLDER"] = servicePath;
}
}
}
return ActionResult.Success;
}
private static void InstallService(string installFolder)
{
try
{
var schedulerService =
ServiceController.GetServices().FirstOrDefault(
s => s.DisplayName.Equals("WebsitePanel Scheduler", StringComparison.CurrentCultureIgnoreCase));
if (schedulerService != null)
{
StopService(schedulerService.ServiceName);
SecurityUtils.DeleteService(schedulerService.ServiceName);
}
ManagedInstallerClass.InstallHelper(new[] { "/i", Path.Combine(installFolder, "WebsitePanel.SchedulerService.exe") });
StartService("WebsitePanel Scheduler");
}
catch (Exception)
{
}
}
private static void UnInstallService()
{
try
{
var schedulerService =
ServiceController.GetServices().FirstOrDefault(
s => s.DisplayName.Equals("WebsitePanel Scheduler", StringComparison.CurrentCultureIgnoreCase));
if (schedulerService != null)
{
StopService(schedulerService.ServiceName);
SecurityUtils.DeleteService(schedulerService.ServiceName);
}
}
catch (Exception)
{
}
}
private static void ChangeConfigString(string nodePath, string attrToChange, string value, string installFolder)
{
string path = Path.Combine(installFolder, "WebsitePanel.SchedulerService.exe.config");
if (!File.Exists(path))
{
return;
}
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(path);
XmlElement node = xmldoc.SelectSingleNode(nodePath) as XmlElement;
if (node != null)
{
node.SetAttribute(attrToChange, value);
xmldoc.Save(path);
}
}
private static void StopService(string serviceName)
{
var sc = new ServiceController(serviceName);
if (sc.Status == ServiceControllerStatus.Running)
{
sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped);
}
}
private static void StartService(string serviceName)
{
var sc = new ServiceController(serviceName);
if (sc.Status == ServiceControllerStatus.Stopped)
{
sc.Start();
sc.WaitForStatus(ServiceControllerStatus.Running);
}
}
private static string GetConnectionString(string serverName, string databaseName)
{
return string.Format("Server={0};database={1};Trusted_Connection=true;", serverName, databaseName).Replace(";", CustomDataDelimiter);
}
private static string GetConnectionString(string serverName, string databaseName, string login, string password)
{
return string.Format("Server={0};database={1};uid={2};password={3};", serverName, databaseName, login, password).Replace(";", CustomDataDelimiter);
}
private static bool CheckConnection(string connectionString)
{
var connection = new SqlConnection(connectionString);
bool result = true;
try
{
connection.Open();
}
catch (Exception)
{
result = false;
}
finally
{
if (connection != null && connection.State == ConnectionState.Open)
{
connection.Close();
}
}
return result;
}
private static string GetCustomActionProperty(Session session, string key)
{
if (session.CustomActionData.ContainsKey(key))
{
return session.CustomActionData[key].Replace("-=-", ";");
}
return string.Empty;
}
}
}

View file

@ -0,0 +1,63 @@
// Copyright (c) 2015, 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.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("WebsitePanel.WIXInstaller")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("WebsitePanel.WIXInstaller")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("CA494A4D-8D40-4A7D-8473-2F5E05605831")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View file

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{3343FFD8-7CCE-451B-95AE-3D97244313A2}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>WebsitePanel.WIXInstaller</RootNamespace>
<AssemblyName>WebsitePanel.WIXInstaller</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<WixCATargetsPath Condition=" '$(WixCATargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.CA.targets</WixCATargetsPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\Setup.WIXInstaller\bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\Setup.WIXInstaller\bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Core" />
<Reference Include="System.Data" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.Deployment.WindowsInstaller" />
</ItemGroup>
<ItemGroup>
<Compile Include="CustomAction.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Content Include="CustomAction.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\WebsitePanel.Setup\WebsitePanel.Setup.csproj">
<Project>{3951C0EC-BD98-450E-B228-CDBE5BD4AD49}</Project>
<Name>WebsitePanel.Setup</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(WixCATargetsPath)" />
</Project>

View file

@ -41836,7 +41836,7 @@ INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName]
GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (65, 4, N'SmarterMail', N'SmarterMail 9.x', N'WebsitePanel.Providers.Mail.SmarterMail9, WebsitePanel.Providers.Mail.SmarterMail9', N'SmarterMail60', NULL)
GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (66, 4, N'SmarterMail', N'SmarterMail 10.x +', N'WebsitePanel.Providers.Mail.SmarterMail10, WebsitePanel.Providers.Mail.SmarterMail10', N'SmarterMail60', NULL)
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (66, 4, N'SmarterMail', N'SmarterMail 10.x +', N'WebsitePanel.Providers.Mail.SmarterMail10, WebsitePanel.Providers.Mail.SmarterMail10', N'SmarterMail100', NULL)
GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (90, 12, N'Exchange2010SP2', N'Hosted Microsoft Exchange Server 2010 SP2', N'WebsitePanel.Providers.HostedSolution.Exchange2010SP2, WebsitePanel.Providers.HostedSolution', N'Exchange', NULL)
GO

View file

@ -8569,3 +8569,163 @@ RETURN
GO
IF OBJECTPROPERTY(object_id('dbo.GetExchangeAccountByAccountNameWithoutItemId'), N'IsProcedure') = 1
DROP PROCEDURE [dbo].[GetExchangeAccountByAccountNameWithoutItemId]
GO
CREATE PROCEDURE [dbo].[GetExchangeAccountByAccountNameWithoutItemId]
(
@UserPrincipalName nvarchar(300)
)
AS
SELECT
E.AccountID,
E.ItemID,
E.AccountType,
E.AccountName,
E.DisplayName,
E.PrimaryEmailAddress,
E.MailEnabledPublicFolder,
E.MailboxManagerActions,
E.SamAccountName,
E.AccountPassword,
E.MailboxPlanId,
P.MailboxPlan,
E.SubscriberNumber,
E.UserPrincipalName,
E.ArchivingMailboxPlanId,
AP.MailboxPlan as 'ArchivingMailboxPlan',
E.EnableArchiving
FROM
ExchangeAccounts AS E
LEFT OUTER JOIN ExchangeMailboxPlans AS P ON E.MailboxPlanId = P.MailboxPlanId
LEFT OUTER JOIN ExchangeMailboxPlans AS AP ON E.ArchivingMailboxPlanId = AP.MailboxPlanId
WHERE
E.UserPrincipalName = @UserPrincipalName
RETURN
GO
--Webdav portal users settings
IF NOT EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'WebDavPortalUsersSettings')
CREATE TABLE WebDavPortalUsersSettings
(
ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
AccountId INT NOT NULL,
Settings NVARCHAR(max)
)
GO
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS WHERE CONSTRAINT_NAME ='FK_WebDavPortalUsersSettings_UserId')
ALTER TABLE [dbo].[WebDavPortalUsersSettings]
DROP CONSTRAINT [FK_WebDavPortalUsersSettings_UserId]
GO
ALTER TABLE [dbo].[WebDavPortalUsersSettings] WITH CHECK ADD CONSTRAINT [FK_WebDavPortalUsersSettings_UserId] FOREIGN KEY([AccountID])
REFERENCES [dbo].[ExchangeAccounts] ([AccountID])
ON DELETE CASCADE
GO
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetWebDavPortalUsersSettingsByAccountId')
DROP PROCEDURE GetWebDavPortalUsersSettingsByAccountId
GO
CREATE PROCEDURE [dbo].[GetWebDavPortalUsersSettingsByAccountId]
(
@AccountId INT
)
AS
SELECT TOP 1
US.Id,
US.AccountId,
US.Settings
FROM WebDavPortalUsersSettings AS US
WHERE AccountId = @AccountId
GO
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddWebDavPortalUsersSettings')
DROP PROCEDURE AddWebDavPortalUsersSettings
GO
CREATE PROCEDURE [dbo].[AddWebDavPortalUsersSettings]
(
@WebDavPortalUsersSettingsId INT OUTPUT,
@AccountId INT,
@Settings NVARCHAR(max)
)
AS
INSERT INTO WebDavPortalUsersSettings
(
AccountId,
Settings
)
VALUES
(
@AccountId,
@Settings
)
SET @WebDavPortalUsersSettingsId = SCOPE_IDENTITY()
RETURN
GO
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'UpdateWebDavPortalUsersSettings')
DROP PROCEDURE UpdateWebDavPortalUsersSettings
GO
CREATE PROCEDURE [dbo].[UpdateWebDavPortalUsersSettings]
(
@AccountId INT,
@Settings NVARCHAR(max)
)
AS
UPDATE WebDavPortalUsersSettings
SET
Settings = @Settings
WHERE AccountId = @AccountId
GO
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'SmarterMail 10.x +')
BEGIN
INSERT [dbo].[Providers] ([ProviderId], [GroupId], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES(66, 4, N'SmarterMail', N'SmarterMail 10.x +', N'WebsitePanel.Providers.Mail.SmarterMail10, WebsitePanel.Providers.Mail.SmarterMail10', N'SmarterMail100', NULL)
END
ELSE
BEGIN
UPDATE [dbo].[Providers] SET [EditorControl] = 'SmarterMail100' WHERE [DisplayName] = 'SmarterMail 10.x +'
END
GO
-- Service items count by name and serviceid
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetServiceItemsCountByNameAndServiceId')
DROP PROCEDURE GetServiceItemsCountByNameAndServiceId
GO
CREATE PROCEDURE [dbo].[GetServiceItemsCountByNameAndServiceId]
(
@ActorID int,
@ServiceId int,
@ItemName nvarchar(500),
@GroupName nvarchar(100) = NULL,
@ItemTypeName nvarchar(200)
)
AS
SELECT Count(*)
FROM ServiceItems AS SI
INNER JOIN ServiceItemTypes AS SIT ON SI.ItemTypeID = SIT.ItemTypeID
INNER JOIN ResourceGroups AS RG ON SIT.GroupID = RG.GroupID
INNER JOIN Services AS S ON SI.ServiceID = S.ServiceID
WHERE S.ServiceID = @ServiceId
AND SIT.TypeName = @ItemTypeName
AND SI.ItemName = @ItemName
AND ((@GroupName IS NULL) OR (@GroupName IS NOT NULL AND RG.GroupName = @GroupName))
RETURN
GO

View file

@ -36,6 +36,7 @@
<Reference Include="Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Lib\Microsoft.Web.Services3.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />

View file

@ -2,6 +2,7 @@
<configuration>
<appSettings>
<add key="ES.WebService" value="http://localhost:9002"/>
<!-- Username and password for access to WebsitePanel. For example "serveradmin" -->
<add key="ES.Username" value="serveradmin"/>
<add key="ES.Password" value="serveradmin"/>
<add key="LogFile" value="WebsitePanel.FixDefaultPublicFolderMailbox.log"/>

View file

@ -659,7 +659,7 @@ namespace WebsitePanel.Import.CsvBulk
mailbox.JobTitle, mailbox.Company, mailbox.Department, mailbox.Office, null, mailbox.BusinessPhone,
mailbox.Fax, mailbox.HomePhone, mailbox.MobilePhone, mailbox.Pager, mailbox.WebPage, mailbox.Notes,
// these are new and not in csv ...
mailbox.ExternalEmail, mailbox.SubscriberNumber,mailbox.LevelId, mailbox.IsVIP);
mailbox.ExternalEmail, mailbox.SubscriberNumber,mailbox.LevelId, mailbox.IsVIP, false);
ret = true;
}
catch (Exception ex)
@ -803,7 +803,7 @@ namespace WebsitePanel.Import.CsvBulk
null, false, user.Disabled, user.Locked, user.FirstName, user.Initials,
user.LastName, user.Address, user.City, user.State, user.Zip, user.Country,
user.JobTitle, user.Company, user.Department, user.Office, null, user.BusinessPhone,
user.Fax, user.HomePhone, user.MobilePhone, user.Pager, user.WebPage, user.Notes, user.ExternalEmail, user.SubscriberNumber, user.LevelId, user.IsVIP);
user.Fax, user.HomePhone, user.MobilePhone, user.Pager, user.WebPage, user.Notes, user.ExternalEmail, user.SubscriberNumber, user.LevelId, user.IsVIP, false);
ret = true;
}
catch (Exception ex)

View file

@ -1,35 +1,7 @@
// Copyright (c) 2015, 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.
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18051
// Runtime Version:4.0.30319.34014
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.

View file

@ -151,6 +151,7 @@ namespace WebsitePanel.EnterpriseServer
public const int ERROR_MAIL_LICENSE_USERS_QUOTA = -724;
public const int ERROR_MAIL_ACCOUNT_MAX_MAILBOX_SIZE_LIMIT = -725;
public const int ERROR_MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY = -726;
#endregion
#region FTP

View file

@ -69,6 +69,12 @@ namespace WebsitePanel.EnterpriseServer {
private System.Threading.SendOrPostCallback CheckUsersDomainExistsOperationCompleted;
private System.Threading.SendOrPostCallback GetWebDavPortalUserSettingsByAccountIdOperationCompleted;
private System.Threading.SendOrPostCallback UpdateWebDavPortalUserSettingsOperationCompleted;
private System.Threading.SendOrPostCallback SearchFilesOperationCompleted;
private System.Threading.SendOrPostCallback GetDirectoryBrowseEnabledOperationCompleted;
private System.Threading.SendOrPostCallback SetDirectoryBrowseEnabledOperationCompleted;
@ -145,6 +151,15 @@ namespace WebsitePanel.EnterpriseServer {
/// <remarks/>
public event CheckUsersDomainExistsCompletedEventHandler CheckUsersDomainExistsCompleted;
/// <remarks/>
public event GetWebDavPortalUserSettingsByAccountIdCompletedEventHandler GetWebDavPortalUserSettingsByAccountIdCompleted;
/// <remarks/>
public event UpdateWebDavPortalUserSettingsCompletedEventHandler UpdateWebDavPortalUserSettingsCompleted;
/// <remarks/>
public event SearchFilesCompletedEventHandler SearchFilesCompleted;
/// <remarks/>
public event GetDirectoryBrowseEnabledCompletedEventHandler GetDirectoryBrowseEnabledCompleted;
@ -928,6 +943,143 @@ namespace WebsitePanel.EnterpriseServer {
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetWebDavPortalUserSettingsByAccount" +
"Id", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public string GetWebDavPortalUserSettingsByAccountId(int accountId) {
object[] results = this.Invoke("GetWebDavPortalUserSettingsByAccountId", new object[] {
accountId});
return ((string)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginGetWebDavPortalUserSettingsByAccountId(int accountId, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("GetWebDavPortalUserSettingsByAccountId", new object[] {
accountId}, callback, asyncState);
}
/// <remarks/>
public string EndGetWebDavPortalUserSettingsByAccountId(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((string)(results[0]));
}
/// <remarks/>
public void GetWebDavPortalUserSettingsByAccountIdAsync(int accountId) {
this.GetWebDavPortalUserSettingsByAccountIdAsync(accountId, null);
}
/// <remarks/>
public void GetWebDavPortalUserSettingsByAccountIdAsync(int accountId, object userState) {
if ((this.GetWebDavPortalUserSettingsByAccountIdOperationCompleted == null)) {
this.GetWebDavPortalUserSettingsByAccountIdOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetWebDavPortalUserSettingsByAccountIdOperationCompleted);
}
this.InvokeAsync("GetWebDavPortalUserSettingsByAccountId", new object[] {
accountId}, this.GetWebDavPortalUserSettingsByAccountIdOperationCompleted, userState);
}
private void OnGetWebDavPortalUserSettingsByAccountIdOperationCompleted(object arg) {
if ((this.GetWebDavPortalUserSettingsByAccountIdCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.GetWebDavPortalUserSettingsByAccountIdCompleted(this, new GetWebDavPortalUserSettingsByAccountIdCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/UpdateWebDavPortalUserSettings", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public void UpdateWebDavPortalUserSettings(int accountId, string settings) {
this.Invoke("UpdateWebDavPortalUserSettings", new object[] {
accountId,
settings});
}
/// <remarks/>
public System.IAsyncResult BeginUpdateWebDavPortalUserSettings(int accountId, string settings, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("UpdateWebDavPortalUserSettings", new object[] {
accountId,
settings}, callback, asyncState);
}
/// <remarks/>
public void EndUpdateWebDavPortalUserSettings(System.IAsyncResult asyncResult) {
this.EndInvoke(asyncResult);
}
/// <remarks/>
public void UpdateWebDavPortalUserSettingsAsync(int accountId, string settings) {
this.UpdateWebDavPortalUserSettingsAsync(accountId, settings, null);
}
/// <remarks/>
public void UpdateWebDavPortalUserSettingsAsync(int accountId, string settings, object userState) {
if ((this.UpdateWebDavPortalUserSettingsOperationCompleted == null)) {
this.UpdateWebDavPortalUserSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateWebDavPortalUserSettingsOperationCompleted);
}
this.InvokeAsync("UpdateWebDavPortalUserSettings", new object[] {
accountId,
settings}, this.UpdateWebDavPortalUserSettingsOperationCompleted, userState);
}
private void OnUpdateWebDavPortalUserSettingsOperationCompleted(object arg) {
if ((this.UpdateWebDavPortalUserSettingsCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.UpdateWebDavPortalUserSettingsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SearchFiles", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public SystemFile[] SearchFiles(int itemId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive) {
object[] results = this.Invoke("SearchFiles", new object[] {
itemId,
searchPaths,
searchText,
userPrincipalName,
recursive});
return ((SystemFile[])(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginSearchFiles(int itemId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("SearchFiles", new object[] {
itemId,
searchPaths,
searchText,
userPrincipalName,
recursive}, callback, asyncState);
}
/// <remarks/>
public SystemFile[] EndSearchFiles(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((SystemFile[])(results[0]));
}
/// <remarks/>
public void SearchFilesAsync(int itemId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive) {
this.SearchFilesAsync(itemId, searchPaths, searchText, userPrincipalName, recursive, null);
}
/// <remarks/>
public void SearchFilesAsync(int itemId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive, object userState) {
if ((this.SearchFilesOperationCompleted == null)) {
this.SearchFilesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSearchFilesOperationCompleted);
}
this.InvokeAsync("SearchFiles", new object[] {
itemId,
searchPaths,
searchText,
userPrincipalName,
recursive}, this.SearchFilesOperationCompleted, userState);
}
private void OnSearchFilesOperationCompleted(object arg) {
if ((this.SearchFilesCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.SearchFilesCompleted(this, new SearchFilesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetDirectoryBrowseEnabled", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public bool GetDirectoryBrowseEnabled(int itemId, string site) {
@ -1811,6 +1963,62 @@ namespace WebsitePanel.EnterpriseServer {
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void GetWebDavPortalUserSettingsByAccountIdCompletedEventHandler(object sender, GetWebDavPortalUserSettingsByAccountIdCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetWebDavPortalUserSettingsByAccountIdCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal GetWebDavPortalUserSettingsByAccountIdCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public string Result {
get {
this.RaiseExceptionIfNecessary();
return ((string)(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void UpdateWebDavPortalUserSettingsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void SearchFilesCompletedEventHandler(object sender, SearchFilesCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SearchFilesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal SearchFilesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public SystemFile[] Result {
get {
this.RaiseExceptionIfNecessary();
return ((SystemFile[])(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void GetDirectoryBrowseEnabledCompletedEventHandler(object sender, GetDirectoryBrowseEnabledCompletedEventArgs e);

View file

@ -1,7 +1,41 @@
// Copyright (c) 2015, 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 WebsitePanel.Providers;
using WebsitePanel.Providers.Common;
using WebsitePanel.Providers.ResultObjects;
using WebsitePanel.Providers.HostedSolution;
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.7905
// Runtime Version:2.0.50727.5466
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@ -9,7 +43,7 @@
//------------------------------------------------------------------------------
//
// This source code was auto-generated by wsdl, Version=2.0.50727.3038.
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
//
namespace WebsitePanel.EnterpriseServer.HostedSolution {
using System.Xml.Serialization;
@ -19,16 +53,10 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
using System;
using System.Diagnostics;
using System.Data;
using WebsitePanel.Providers.HostedSolution;
using WebsitePanel.Providers.Common;
using WebsitePanel.EnterpriseServer.Base.HostedSolution;
using WebsitePanel.Providers.ResultObjects;
using WebsitePanel.Providers;
using WebsitePanel.Providers.Common;
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="esOrganizationsSoap", Namespace="http://tempuri.org/")]
@ -1504,7 +1532,8 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
string externalEmail,
string subscriberNumber,
int levelId,
bool isVIP) {
bool isVIP,
bool userMustChangePassword) {
object[] results = this.Invoke("SetUserGeneralSettings", new object[] {
itemId,
accountId,
@ -1536,7 +1565,8 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
externalEmail,
subscriberNumber,
levelId,
isVIP});
isVIP,
userMustChangePassword});
return ((int)(results[0]));
}
@ -1573,6 +1603,7 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
string subscriberNumber,
int levelId,
bool isVIP,
bool userMustChangePassword,
System.AsyncCallback callback,
object asyncState) {
return this.BeginInvoke("SetUserGeneralSettings", new object[] {
@ -1606,7 +1637,8 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
externalEmail,
subscriberNumber,
levelId,
isVIP}, callback, asyncState);
isVIP,
userMustChangePassword}, callback, asyncState);
}
/// <remarks/>
@ -1647,8 +1679,9 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
string externalEmail,
string subscriberNumber,
int levelId,
bool isVIP) {
this.SetUserGeneralSettingsAsync(itemId, accountId, displayName, password, hideAddressBook, disabled, locked, firstName, initials, lastName, address, city, state, zip, country, jobTitle, company, department, office, managerAccountName, businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes, externalEmail, subscriberNumber, levelId, isVIP, null);
bool isVIP,
bool userMustChangePassword) {
this.SetUserGeneralSettingsAsync(itemId, accountId, displayName, password, hideAddressBook, disabled, locked, firstName, initials, lastName, address, city, state, zip, country, jobTitle, company, department, office, managerAccountName, businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes, externalEmail, subscriberNumber, levelId, isVIP, userMustChangePassword, null);
}
/// <remarks/>
@ -1684,6 +1717,7 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
string subscriberNumber,
int levelId,
bool isVIP,
bool userMustChangePassword,
object userState) {
if ((this.SetUserGeneralSettingsOperationCompleted == null)) {
this.SetUserGeneralSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetUserGeneralSettingsOperationCompleted);
@ -1719,7 +1753,8 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
externalEmail,
subscriberNumber,
levelId,
isVIP}, this.SetUserGeneralSettingsOperationCompleted, userState);
isVIP,
userMustChangePassword}, this.SetUserGeneralSettingsOperationCompleted, userState);
}
private void OnSetUserGeneralSettingsOperationCompleted(object arg) {
@ -2876,11 +2911,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void CheckOrgIdExistsCompletedEventHandler(object sender, CheckOrgIdExistsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CheckOrgIdExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -2902,11 +2937,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void CreateOrganizationCompletedEventHandler(object sender, CreateOrganizationCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CreateOrganizationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -2928,11 +2963,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetRawOrganizationsPagedCompletedEventHandler(object sender, GetRawOrganizationsPagedCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetRawOrganizationsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -2954,11 +2989,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationsCompletedEventHandler(object sender, GetOrganizationsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -2980,11 +3015,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationByIdCompletedEventHandler(object sender, GetOrganizationByIdCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationByIdCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3006,11 +3041,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationUserSummuryLetterCompletedEventHandler(object sender, GetOrganizationUserSummuryLetterCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationUserSummuryLetterCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3032,11 +3067,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SendOrganizationUserSummuryLetterCompletedEventHandler(object sender, SendOrganizationUserSummuryLetterCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SendOrganizationUserSummuryLetterCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3058,11 +3093,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void DeleteOrganizationCompletedEventHandler(object sender, DeleteOrganizationCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class DeleteOrganizationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3084,11 +3119,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationStatisticsCompletedEventHandler(object sender, GetOrganizationStatisticsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationStatisticsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3110,11 +3145,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationStatisticsByOrganizationCompletedEventHandler(object sender, GetOrganizationStatisticsByOrganizationCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationStatisticsByOrganizationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3136,11 +3171,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationCompletedEventHandler(object sender, GetOrganizationCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3162,11 +3197,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetAccountIdByUserPrincipalNameCompletedEventHandler(object sender, GetAccountIdByUserPrincipalNameCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetAccountIdByUserPrincipalNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3188,15 +3223,15 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetDefaultOrganizationCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void AddOrganizationDomainCompletedEventHandler(object sender, AddOrganizationDomainCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class AddOrganizationDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3218,11 +3253,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void ChangeOrganizationDomainTypeCompletedEventHandler(object sender, ChangeOrganizationDomainTypeCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class ChangeOrganizationDomainTypeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3244,11 +3279,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationDomainsCompletedEventHandler(object sender, GetOrganizationDomainsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationDomainsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3270,11 +3305,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void DeleteOrganizationDomainCompletedEventHandler(object sender, DeleteOrganizationDomainCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class DeleteOrganizationDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3296,11 +3331,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetOrganizationDefaultDomainCompletedEventHandler(object sender, SetOrganizationDefaultDomainCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SetOrganizationDefaultDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3322,11 +3357,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationObjectsByDomainCompletedEventHandler(object sender, GetOrganizationObjectsByDomainCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationObjectsByDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3348,11 +3383,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void CheckDomainUsedByHostedOrganizationCompletedEventHandler(object sender, CheckDomainUsedByHostedOrganizationCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CheckDomainUsedByHostedOrganizationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3374,11 +3409,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void CreateUserCompletedEventHandler(object sender, CreateUserCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CreateUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3400,11 +3435,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void ImportUserCompletedEventHandler(object sender, ImportUserCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class ImportUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3426,11 +3461,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationDeletedUsersPagedCompletedEventHandler(object sender, GetOrganizationDeletedUsersPagedCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationDeletedUsersPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3452,11 +3487,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationUsersPagedCompletedEventHandler(object sender, GetOrganizationUsersPagedCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationUsersPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3478,11 +3513,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetUserGeneralSettingsCompletedEventHandler(object sender, GetUserGeneralSettingsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetUserGeneralSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3504,11 +3539,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetUserGeneralSettingsCompletedEventHandler(object sender, SetUserGeneralSettingsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SetUserGeneralSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3530,11 +3565,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetUserPrincipalNameCompletedEventHandler(object sender, SetUserPrincipalNameCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SetUserPrincipalNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3556,11 +3591,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetUserPasswordCompletedEventHandler(object sender, SetUserPasswordCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SetUserPasswordCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3582,11 +3617,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SearchAccountsCompletedEventHandler(object sender, SearchAccountsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SearchAccountsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3608,11 +3643,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetDeletedUserCompletedEventHandler(object sender, SetDeletedUserCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SetDeletedUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3634,11 +3669,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetArchiveFileBinaryChunkCompletedEventHandler(object sender, GetArchiveFileBinaryChunkCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetArchiveFileBinaryChunkCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3660,11 +3695,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void DeleteUserCompletedEventHandler(object sender, DeleteUserCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class DeleteUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3686,11 +3721,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetPasswordPolicyCompletedEventHandler(object sender, GetPasswordPolicyCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetPasswordPolicyCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3712,11 +3747,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void CreateSecurityGroupCompletedEventHandler(object sender, CreateSecurityGroupCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CreateSecurityGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3738,11 +3773,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetSecurityGroupGeneralSettingsCompletedEventHandler(object sender, GetSecurityGroupGeneralSettingsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetSecurityGroupGeneralSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3764,11 +3799,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void DeleteSecurityGroupCompletedEventHandler(object sender, DeleteSecurityGroupCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class DeleteSecurityGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3790,11 +3825,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetSecurityGroupGeneralSettingsCompletedEventHandler(object sender, SetSecurityGroupGeneralSettingsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SetSecurityGroupGeneralSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3816,11 +3851,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationSecurityGroupsPagedCompletedEventHandler(object sender, GetOrganizationSecurityGroupsPagedCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationSecurityGroupsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3842,11 +3877,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void AddObjectToSecurityGroupCompletedEventHandler(object sender, AddObjectToSecurityGroupCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class AddObjectToSecurityGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3868,11 +3903,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void DeleteObjectFromSecurityGroupCompletedEventHandler(object sender, DeleteObjectFromSecurityGroupCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class DeleteObjectFromSecurityGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3894,11 +3929,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetSecurityGroupsByMemberCompletedEventHandler(object sender, GetSecurityGroupsByMemberCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetSecurityGroupsByMemberCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3920,11 +3955,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SearchOrganizationAccountsCompletedEventHandler(object sender, SearchOrganizationAccountsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SearchOrganizationAccountsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3946,11 +3981,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetAdditionalGroupsCompletedEventHandler(object sender, GetAdditionalGroupsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetAdditionalGroupsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -3972,19 +4007,19 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void UpdateAdditionalGroupCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void DeleteAdditionalGroupCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void AddAdditionalGroupCompletedEventHandler(object sender, AddAdditionalGroupCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class AddAdditionalGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -4006,11 +4041,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetSupportServiceLevelsCompletedEventHandler(object sender, GetSupportServiceLevelsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetSupportServiceLevelsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -4032,15 +4067,15 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void UpdateSupportServiceLevelCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void DeleteSupportServiceLevelCompletedEventHandler(object sender, DeleteSupportServiceLevelCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class DeleteSupportServiceLevelCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -4062,11 +4097,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void AddSupportServiceLevelCompletedEventHandler(object sender, AddSupportServiceLevelCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class AddSupportServiceLevelCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@ -4088,11 +4123,11 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetSupportServiceLevelCompletedEventHandler(object sender, GetSupportServiceLevelCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetSupportServiceLevelCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {

View file

@ -1197,6 +1197,24 @@ namespace WebsitePanel.EnterpriseServer
new SqlParameter("@itemName", itemName));
}
public static int GetServiceItemsCountByNameAndServiceId(int actorId, int serviceId, string groupName,
string itemName, string itemTypeName)
{
int res = 0;
object obj = SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "GetServiceItemsCountByNameAndServiceId",
new SqlParameter("@ActorID", actorId),
new SqlParameter("@ServiceId", serviceId),
new SqlParameter("@ItemName", itemName),
new SqlParameter("@GroupName", groupName),
new SqlParameter("@ItemTypeName", itemTypeName));
if (!int.TryParse(obj.ToString(), out res)) return -1;
return res;
}
public static int AddServiceItem(int actorId, int serviceId, int packageId, string itemName,
string itemTypeName, string xmlProperties)
{
@ -2684,13 +2702,13 @@ namespace WebsitePanel.EnterpriseServer
);
}
public static IDataReader GetExchangeAccountByAccountNameWithoutItemId(string primaryEmailAddress)
public static IDataReader GetExchangeAccountByAccountNameWithoutItemId(string userPrincipalName)
{
return SqlHelper.ExecuteReader(
ConnectionString,
CommandType.StoredProcedure,
"GetExchangeAccountByAccountNameWithoutItemId",
new SqlParameter("@PrimaryEmailAddress", primaryEmailAddress)
new SqlParameter("@UserPrincipalName", userPrincipalName)
);
}
@ -4486,6 +4504,45 @@ namespace WebsitePanel.EnterpriseServer
);
}
public static IDataReader GetWebDavPortalUserSettingsByAccountId(int accountId)
{
return SqlHelper.ExecuteReader(
ConnectionString,
CommandType.StoredProcedure,
"GetWebDavPortalUsersSettingsByAccountId",
new SqlParameter("@AccountId", accountId)
);
}
public static int AddWebDavPortalUsersSettings(int accountId, string settings)
{
SqlParameter settingsId = new SqlParameter("@WebDavPortalUsersSettingsId", SqlDbType.Int);
settingsId.Direction = ParameterDirection.Output;
SqlHelper.ExecuteNonQuery(
ConnectionString,
CommandType.StoredProcedure,
"AddWebDavPortalUsersSettings",
settingsId,
new SqlParameter("@AccountId", accountId),
new SqlParameter("@Settings", settings)
);
// read identity
return Convert.ToInt32(settingsId.Value);
}
public static void UpdateWebDavPortalUsersSettings(int accountId, string settings)
{
SqlHelper.ExecuteNonQuery(
ConnectionString,
CommandType.StoredProcedure,
"UpdateWebDavPortalUsersSettings",
new SqlParameter("@AccountId", accountId),
new SqlParameter("@Settings", settings)
);
}
#endregion
#region Support Service Levels

View file

@ -125,8 +125,8 @@ namespace WebsitePanel.EnterpriseServer
if (serviceId == 0)
return BusinessErrorCodes.ERROR_MSSQL_RESOURCE_UNAVAILABLE;
// check package items
if (PackageController.GetPackageItemByName(item.PackageId, groupName, item.Name, typeof(SqlDatabase)) != null)
// check service items
if (PackageController.GetServiceItemsCountByNameAndServiceId(serviceId, groupName, item.Name, typeof(SqlDatabase)) > 0)
return BusinessErrorCodes.ERROR_MSSQL_DATABASES_PACKAGE_ITEM_EXISTS;
// place log record

View file

@ -272,6 +272,14 @@ namespace WebsitePanel.EnterpriseServer
// delete service item
PackageController.DeletePackageItem(zoneItemId);
// Delete also all seconday service items
var zoneItems = PackageController.GetPackageItemsByType(zoneItem.PackageId, ResourceGroups.Dns, typeof (SecondaryDnsZone));
foreach (var item in zoneItems.Where(z => z.Name == zoneItem.Name))
{
PackageController.DeletePackageItem(item.Id);
}
}
catch (Exception ex)
{

View file

@ -172,6 +172,34 @@ namespace WebsitePanel.EnterpriseServer
return ObjectUtils.FillObjectFromDataReader<WebDavAccessToken>(DataProvider.GetWebDavAccessTokenByAccessToken(accessToken));
}
public static SystemFile[] SearchFiles(int itemId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive)
{
try
{
// load organization
Organization org = OrganizationController.GetOrganization(itemId);
if (org == null)
{
return new SystemFile[0];
}
int serviceId = GetEnterpriseStorageServiceID(org.PackageId);
if (serviceId == 0)
{
return new SystemFile[0];
}
EnterpriseStorage es = GetEnterpriseStorage(serviceId);
return es.Search(org.OrganizationId, searchPaths, searchText, userPrincipalName, recursive);
}
catch (Exception ex)
{
throw ex;
}
}
#region Directory Browsing
public static bool GetDirectoryBrowseEnabled(int itemId, string siteId)
@ -202,6 +230,33 @@ namespace WebsitePanel.EnterpriseServer
#endregion
private static IEnumerable<SystemFile> GetRootFolders(string userPrincipalName)
{
var rootFolders = new List<SystemFile>();
var account = ExchangeServerController.GetAccountByAccountName(userPrincipalName);
var userGroups = OrganizationController.GetSecurityGroupsByMember(account.ItemId, account.AccountId);
foreach (var folder in GetFolders(account.ItemId))
{
var permissions = GetFolderPermission(account.ItemId, folder.Name);
foreach (var permission in permissions)
{
if ((!permission.IsGroup
&& (permission.DisplayName == account.UserPrincipalName || permission.DisplayName == account.DisplayName))
|| (permission.IsGroup && userGroups.Any(x => x.DisplayName == permission.DisplayName)))
{
rootFolders.Add(folder);
break;
}
}
}
return rootFolders;
}
protected static void StartESBackgroundTaskInternal(string taskName, int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota, QuotaType quotaType)
{
// load organization
@ -1210,6 +1265,37 @@ namespace WebsitePanel.EnterpriseServer
return null;
}
#region WebDav portal
public static string GetWebDavPortalUserSettingsByAccountId(int accountId)
{
var dataReader = DataProvider.GetWebDavPortalUserSettingsByAccountId(accountId);
while (dataReader.Read())
{
return (string)dataReader["Settings"];
}
return null;
}
public static void UpdateUserSettings(int accountId, string settings)
{
var oldSettings = GetWebDavPortalUserSettingsByAccountId(accountId);
if (string.IsNullOrEmpty(oldSettings))
{
DataProvider.AddWebDavPortalUsersSettings(accountId, settings);
}
else
{
DataProvider.UpdateWebDavPortalUsersSettings(accountId, settings);
}
}
#endregion
#region Statistics
public static OrganizationStatistics GetStatistics(int itemId)

View file

@ -31,6 +31,7 @@ using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Data;
using System.Linq;
using System.Net.Mail;
using System.Threading;
using WebsitePanel.EnterpriseServer.Code.HostedSolution;
@ -1216,10 +1217,10 @@ namespace WebsitePanel.EnterpriseServer
return account;
}
public static ExchangeAccount GetAccountByAccountName(string primaryEmailAddress)
public static ExchangeAccount GetAccountByAccountName(string userPrincipalName)
{
ExchangeAccount account = ObjectUtils.FillObjectFromDataReader<ExchangeAccount>(
DataProvider.GetExchangeAccountByAccountNameWithoutItemId(primaryEmailAddress));
DataProvider.GetExchangeAccountByAccountNameWithoutItemId(userPrincipalName));
if (account == null)
return null;
@ -2919,23 +2920,18 @@ namespace WebsitePanel.EnterpriseServer
try
{
List<ExchangeMailboxPlan> mailboxPlans = new List<ExchangeMailboxPlan>();
int? defaultPlanId = null;
UserInfo user = ObjectUtils.FillObjectFromDataReader<UserInfo>(DataProvider.GetUserByExchangeOrganizationIdInternally(itemId));
if (user.Role == UserRole.User)
ExchangeServerController.GetExchangeMailboxPlansByUser(itemId, user, ref mailboxPlans, archiving);
GetExchangeMailboxPlansByUser(itemId, user, ref mailboxPlans, ref defaultPlanId, archiving);
else
ExchangeServerController.GetExchangeMailboxPlansByUser(0, user, ref mailboxPlans, archiving);
GetExchangeMailboxPlansByUser(0, user, ref mailboxPlans, ref defaultPlanId, archiving);
ExchangeOrganization ExchangeOrg = ObjectUtils.FillObjectFromDataReader<ExchangeOrganization>(DataProvider.GetExchangeOrganization(itemId));
if (ExchangeOrg != null)
if (defaultPlanId.HasValue)
{
foreach (ExchangeMailboxPlan p in mailboxPlans)
{
p.IsDefault = (p.MailboxPlanId == ExchangeOrg.ExchangeMailboxPlanID);
}
mailboxPlans.ForEach(p => p.IsDefault = (p.MailboxPlanId == defaultPlanId.Value));
}
return mailboxPlans;
@ -2950,7 +2946,7 @@ namespace WebsitePanel.EnterpriseServer
}
}
private static void GetExchangeMailboxPlansByUser(int itemId, UserInfo user, ref List<ExchangeMailboxPlan> mailboxPlans, bool archiving)
private static void GetExchangeMailboxPlansByUser(int itemId, UserInfo user, ref List<ExchangeMailboxPlan> mailboxPlans, ref int? defaultPlanId, bool archiving)
{
if ((user != null))
{
@ -2983,11 +2979,20 @@ namespace WebsitePanel.EnterpriseServer
{
mailboxPlans.Add(p);
}
// Set default plan
ExchangeOrganization exchangeOrg = ObjectUtils.FillObjectFromDataReader<ExchangeOrganization>(DataProvider.GetExchangeOrganization(OrgId));
// If the default plan has not been set by the setting of higher priority
if (!defaultPlanId.HasValue && exchangeOrg != null && exchangeOrg.ExchangeMailboxPlanID > 0)
{
defaultPlanId = exchangeOrg.ExchangeMailboxPlanID;
}
}
UserInfo owner = UserController.GetUserInternally(user.OwnerId);
GetExchangeMailboxPlansByUser(0, owner, ref mailboxPlans, archiving);
GetExchangeMailboxPlansByUser(0, owner, ref mailboxPlans, ref defaultPlanId, archiving);
}
}
@ -5532,7 +5537,7 @@ namespace WebsitePanel.EnterpriseServer
res += id + " has a value \"" + defaultPublicFoldes[0] + "\"" + Environment.NewLine;
if (defaultPublicFoldes.Length == 2)
res += id + " changed from \"" + defaultPublicFoldes[0] + "\" to \"" + defaultPublicFoldes[1] + "\"" + Environment.NewLine;
res += id + " changed \"" + defaultPublicFoldes[0] + "\" to \"" + defaultPublicFoldes[1] + "\"" + Environment.NewLine;
}

View file

@ -2284,7 +2284,8 @@ namespace WebsitePanel.EnterpriseServer
string lastName, string address, string city, string state, string zip, string country,
string jobTitle, string company, string department, string office, string managerAccountName,
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
string webPage, string notes, string externalEmail, string subscriberNumber, int levelId, bool isVIP)
string webPage, string notes, string externalEmail, string subscriberNumber, int levelId, bool isVIP,
bool userMustChangePassword)
{
// check account
@ -2346,7 +2347,8 @@ namespace WebsitePanel.EnterpriseServer
pager,
webPage,
notes,
externalEmailAddress);
externalEmailAddress,
userMustChangePassword);
// update account
account.DisplayName = displayName;

View file

@ -137,7 +137,6 @@ namespace WebsitePanel.EnterpriseServer
return domainResult;
// create service item
item.Enabled = true;
item.MaxMailboxSize = GetMaxMailBoxSize(item.PackageId, item);
// add service item
@ -159,7 +158,11 @@ namespace WebsitePanel.EnterpriseServer
{
return BusinessErrorCodes.ERROR_MAIL_LICENSE_DOMAIN_QUOTA;
}
if (ex.Message != null && ex.Message.Contains("The maximum number of users for the server has been reached"))
if (ex.Message.Contains("Password doesn't meet complexity"))
{
return BusinessErrorCodes.ERROR_MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY;
}
if (ex.Message.Contains("The maximum number of users for the server has been reached"))
{
return BusinessErrorCodes.ERROR_MAIL_LICENSE_USERS_QUOTA;
}
@ -203,7 +206,6 @@ namespace WebsitePanel.EnterpriseServer
MailServer mail = new MailServer();
ServiceProviderProxy.Init(mail, origItem.ServiceId);
item.Name = origItem.Name;
item.Enabled = true;
item.MaxMailboxSize = GetMaxMailBoxSize(origItem.PackageId, item);
@ -224,6 +226,11 @@ namespace WebsitePanel.EnterpriseServer
}
catch (Exception ex)
{
if (ex.Message.Contains("Password doesn't meet complexity"))
{
return BusinessErrorCodes.ERROR_MAIL_ACCOUNT_PASSWORD_NOT_COMPLEXITY;
}
throw TaskManager.WriteError(ex);
}
finally

View file

@ -1380,6 +1380,14 @@ namespace WebsitePanel.EnterpriseServer
return CreateServiceItem(dvItem[0], dsItem.Tables[1].DefaultView);
}
public static int GetServiceItemsCountByNameAndServiceId(int serviceId, string groupName, string itemName, Type itemType)
{
string itemTypeName = ObjectUtils.GetTypeFullName(itemType);
return DataProvider.GetServiceItemsCountByNameAndServiceId(SecurityContext.User.UserId,
serviceId, groupName, itemName, itemTypeName);
}
public static bool CheckServiceItemExists(string itemName, Type itemType)
{
return CheckServiceItemExists(itemName, null, itemType);

View file

@ -381,7 +381,10 @@ namespace WebsitePanel.EnterpriseServer
site.PerlInstalled = Utils.ParseBool(webPolicy["PerlInstalled"], false);
site.PythonInstalled = Utils.ParseBool(webPolicy["PythonInstalled"], false);
site.CgiBinInstalled = Utils.ParseBool(webPolicy["CgiBinInstalled"], false);
site.ColdFusionInstalled = false;
QuotaValueInfo quotaInfoCF = PackageController.GetPackageQuota(packageId, Quotas.WEB_COLDFUSION);
site.ColdFusionInstalled = (quotaInfoCF.QuotaAllocatedValue > 0) && Utils.ParseBool(webPolicy["ColdFusionInstalled"], false);
QuotaValueInfo quotaInfoCFV = PackageController.GetPackageQuota(packageId, Quotas.WEB_CFVIRTUALDIRS);
site.CreateCFVirtualDirectoriesPol = (quotaInfoCFV.QuotaAllocatedValue > 0) && Utils.ParseBool(webPolicy["CreateCFVirtualDirectoriesPol"], false);
}
else
@ -404,6 +407,7 @@ namespace WebsitePanel.EnterpriseServer
site.PythonInstalled = false;
site.CgiBinInstalled = false;
site.ColdFusionInstalled = false;
site.CreateCFVirtualDirectoriesPol = false;
}
site.HttpRedirect = "";
@ -3633,6 +3637,17 @@ namespace WebsitePanel.EnterpriseServer
WebServer server = GetWebServer(item.ServiceId);
//
server.RevokeWebManagementAccess(item.SiteId, accountName);
// Cleanup web site properties if the web management and web deploy user are the same
if (GetNonQualifiedAccountName(accountName) == item.WebDeployPublishingAccount)
{
item.WebDeployPublishingAccount = String.Empty;
item.WebDeploySitePublishingEnabled = false;
item.WebDeploySitePublishingProfile = String.Empty;
item.WebDeployPublishingPassword = String.Empty;
// Put changes into effect
PackageController.UpdatePackageItem(item);
}
}
catch (Exception ex)
{
@ -3644,6 +3659,12 @@ namespace WebsitePanel.EnterpriseServer
}
}
protected static string GetNonQualifiedAccountName(string accountName)
{
int idx = accountName.LastIndexOf("\\");
return (idx != -1) ? accountName.Substring(idx + 1) : accountName;
}
public static ResultObject ChangeWebManagementAccessPassword(int siteItemId, string accountPassword)
{
ResultObject result = new ResultObject { IsSuccess = true };

View file

@ -380,7 +380,10 @@ namespace WebsitePanel.EnterpriseServer
site.PerlInstalled = Utils.ParseBool(webPolicy["PerlInstalled"], false);
site.PythonInstalled = Utils.ParseBool(webPolicy["PythonInstalled"], false);
site.CgiBinInstalled = Utils.ParseBool(webPolicy["CgiBinInstalled"], false);
site.ColdFusionInstalled = false;
QuotaValueInfo quotaInfoCF = PackageController.GetPackageQuota(packageId, Quotas.WEB_COLDFUSION);
site.ColdFusionInstalled = (quotaInfoCF.QuotaAllocatedValue > 0) && Utils.ParseBool(webPolicy["ColdFusionInstalled"], false);
QuotaValueInfo quotaInfoCFV = PackageController.GetPackageQuota(packageId, Quotas.WEB_CFVIRTUALDIRS);
site.CreateCFVirtualDirectoriesPol = (quotaInfoCFV.QuotaAllocatedValue > 0) && Utils.ParseBool(webPolicy["CreateCFVirtualDirectoriesPol"], false);
}
else
@ -403,6 +406,7 @@ namespace WebsitePanel.EnterpriseServer
site.PythonInstalled = false;
site.CgiBinInstalled = false;
site.ColdFusionInstalled = false;
site.CreateCFVirtualDirectoriesPol = false;
}
site.HttpRedirect = "";

View file

@ -158,6 +158,24 @@ namespace WebsitePanel.EnterpriseServer
return EnterpriseStorageController.CheckUsersDomainExists(itemId);
}
[WebMethod]
public string GetWebDavPortalUserSettingsByAccountId(int accountId)
{
return EnterpriseStorageController.GetWebDavPortalUserSettingsByAccountId(accountId);
}
[WebMethod]
public void UpdateWebDavPortalUserSettings(int accountId, string settings)
{
EnterpriseStorageController.UpdateUserSettings(accountId,settings);
}
[WebMethod]
public SystemFile[] SearchFiles(int itemId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive)
{
return EnterpriseStorageController.SearchFiles(itemId, searchPaths, searchText, userPrincipalName, recursive);
}
#region Directory Browsing
[WebMethod]

View file

@ -219,14 +219,15 @@ namespace WebsitePanel.EnterpriseServer
string lastName, string address, string city, string state, string zip, string country,
string jobTitle, string company, string department, string office, string managerAccountName,
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
string webPage, string notes, string externalEmail, string subscriberNumber, int levelId, bool isVIP)
string webPage, string notes, string externalEmail, string subscriberNumber, int levelId, bool isVIP,
bool userMustChangePassword)
{
return OrganizationController.SetUserGeneralSettings(itemId, accountId, displayName,
password, hideAddressBook, disabled, locked, firstName, initials,
lastName, address, city, state, zip, country,
jobTitle, company, department, office, managerAccountName,
businessPhone, fax, homePhone, mobilePhone, pager,
webPage, notes, externalEmail, subscriberNumber, levelId, isVIP);
webPage, notes, externalEmail, subscriberNumber, levelId, isVIP, userMustChangePassword);
}

View file

@ -46,6 +46,6 @@ namespace WebsitePanel.Providers.EnterpriseStorage
bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules);
WebDavFolderRule[] GetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting);
bool CheckFileServicesInstallation();
SystemFile[] Search(string organizationId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive);
}
}

View file

@ -62,6 +62,7 @@ namespace WebsitePanel.Providers.HostedSolution
public const string CustomAttribute2 = "extensionAttribute2";
public const string DistinguishedName = "distinguishedName";
public const string SID = "objectSid";
public const string PwdLastSet = "pwdLastSet";
public const string UserAccountControl = "UserAccountControl";
}
}

View file

@ -64,7 +64,8 @@ namespace WebsitePanel.Providers.HostedSolution
string jobTitle,
string company, string department, string office, string managerAccountName,
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
string webPage, string notes, string externalEmail);
string webPage, string notes, string externalEmail,
bool userMustChangePassword);
void SetUserPassword(string organizationId, string accountName, string password);

View file

@ -327,5 +327,12 @@ namespace WebsitePanel.Providers.HostedSolution
set { isVip = value; }
}
private bool userMustChangePassword;
public bool UserMustChangePassword
{
get { return userMustChangePassword; }
set { userMustChangePassword = value; }
}
}
}

View file

@ -33,7 +33,7 @@ namespace WebsitePanel.Providers.Mail
[Serializable]
public class MailAccount : ServiceProviderItem
{
private bool enabled;
private bool enabled = true;
private string password;
private string replyTo;
private bool responderEnabled;

View file

@ -144,6 +144,8 @@ namespace WebsitePanel.Providers.OS
set { this.url = value; }
}
public string RelativeUrl { get; set; }
public string DriveLetter
{
get { return this.driveLetter; }

View file

@ -55,6 +55,7 @@ namespace WebsitePanel.Providers.Web
private bool frontPageInstalled;
private bool coldFusionAvailable;
private bool createCFVirtualDirectories;
private bool createCFVirtualDirectoriesPol;
private string frontPageAccount;
private string frontPagePassword;
private string coldFusionVersion;
@ -158,6 +159,12 @@ namespace WebsitePanel.Providers.Web
set { this.createCFVirtualDirectories = value; }
}
public bool CreateCFVirtualDirectoriesPol
{
get { return this.createCFVirtualDirectoriesPol; }
set { this.createCFVirtualDirectoriesPol = value; }
}
public ServerState SiteState
{
get { return this.siteState; }

View file

@ -27,9 +27,12 @@
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
using System.Data.OleDb;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Security.Principal;
using System.Text;
using Microsoft.Win32;
@ -62,6 +65,7 @@ namespace WebsitePanel.Providers.EnterpriseStorage
#endregion
#region Folders
public SystemFile[] GetFolders(string organizationId, WebDavSetting[] settings)
{
ArrayList items = new ArrayList();
@ -70,7 +74,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
foreach (var setting in webDavSettings)
{
string rootPath = string.Format("{0}:\\{1}\\{2}", setting.LocationDrive, setting.HomeFolder, organizationId);
string rootPath = string.Format("{0}:\\{1}\\{2}", setting.LocationDrive, setting.HomeFolder,
organizationId);
var windows = new WebsitePanel.Providers.OS.Windows2012();
@ -114,14 +119,15 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
}
return (SystemFile[])items.ToArray(typeof(SystemFile));
return (SystemFile[]) items.ToArray(typeof (SystemFile));
}
public SystemFile GetFolder(string organizationId, string folderName, WebDavSetting setting)
{
var webDavSetting = GetWebDavSetting(setting);
string fullName = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, folderName);
string fullName = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
organizationId, folderName);
SystemFile folder = null;
var windows = new WebsitePanel.Providers.OS.Windows2012();
@ -159,17 +165,21 @@ namespace WebsitePanel.Providers.EnterpriseStorage
{
var webDavSetting = GetWebDavSetting(setting);
FileUtils.CreateDirectory(string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, folder));
FileUtils.CreateDirectory(string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive,
webDavSetting.HomeFolder, organizationId, folder));
}
public SystemFile RenameFolder(string organizationId, string originalFolder, string newFolder, WebDavSetting setting)
public SystemFile RenameFolder(string organizationId, string originalFolder, string newFolder,
WebDavSetting setting)
{
var webDavSetting = GetWebDavSetting(setting);
var oldPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, originalFolder);
var newPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, newFolder);
var oldPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
organizationId, originalFolder);
var newPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
organizationId, newFolder);
FileUtils.MoveFile(oldPath,newPath);
FileUtils.MoveFile(oldPath, newPath);
IWebDav webdav = new WebDav(webDavSetting);
@ -183,7 +193,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
{
var webDavSetting = GetWebDavSetting(setting);
string rootPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, folder);
string rootPath = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
organizationId, folder);
DirectoryInfo treeRoot = new DirectoryInfo(rootPath);
@ -193,7 +204,9 @@ namespace WebsitePanel.Providers.EnterpriseStorage
while (dirs.Length > 0)
{
foreach (DirectoryInfo dir in dirs)
DeleteFolder(organizationId, folder != string.Empty ? string.Format("{0}\\{1}", folder, dir.Name) : dir.Name, webDavSetting);
DeleteFolder(organizationId,
folder != string.Empty ? string.Format("{0}\\{1}", folder, dir.Name) : dir.Name,
webDavSetting);
dirs = treeRoot.GetDirectories();
}
@ -214,7 +227,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
}
public bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules)
public bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting,
WebDavFolderRule[] rules)
{
var users = new List<UserPermission>();
@ -243,7 +257,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
var webDavSetting = GetWebDavSetting(setting);
string path = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, folder);
string path = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder,
organizationId, folder);
SecurityUtils.ResetNtfsPermissions(path);
@ -270,6 +285,73 @@ namespace WebsitePanel.Providers.EnterpriseStorage
#endregion
public SystemFile[] Search(string organizationId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive)
{
var settings = GetWebDavSetting(null);
var result = new List<SystemFile>();
var isRootSearch = false;
if (searchPaths.Any(string.IsNullOrEmpty))
{
isRootSearch = true;
searchPaths = searchPaths.Where(x => !string.IsNullOrEmpty(x)).ToArray();
}
//using (new WindowsIdentity(userPrincipalName).Impersonate())
{
using (var conn = new OleDbConnection("Provider=Search.CollatorDSO;Extended Properties='Application=Windows';"))
{
var rootFolder = Path.Combine(settings.LocationDrive + ":\\", settings.HomeFolder);
rootFolder = Path.Combine(rootFolder, organizationId);
var wsSql = string.Format(@"SELECT System.FileName, System.DateModified, System.Size, System.Kind, System.ItemPathDisplay, System.ItemType FROM SYSTEMINDEX WHERE System.FileName LIKE '%{0}%' AND ({1})",
searchText, string.Join(" OR ", searchPaths.Select(x => string.Format("{0} = '{1}'", recursive ? "SCOPE" : "DIRECTORY", Path.Combine(rootFolder, x))).ToArray()));
conn.Open();
var cmd = new OleDbCommand(wsSql, conn);
using (OleDbDataReader reader = cmd.ExecuteReader())
{
while (reader!= null && reader.Read())
{
var file = new SystemFile {Name = reader[0] as string};
file.Changed = file.CreatedDate = reader[1] is DateTime ? (DateTime)reader[1] : new DateTime();
file.Size = reader[2] is long ? (long) reader[2] : 0;
var kind = reader[3] is IEnumerable ? ((IEnumerable)reader[3]).Cast<string>().ToList() : null;
var itemType = reader[5] as string ?? string.Empty;
if (kind != null && kind.Any() && itemType.ToLowerInvariant() != ".zip")
{
file.IsDirectory = kind.Any(x => x == "folder");
}
file.FullName = (reader[4] as string ?? string.Empty);
if (isRootSearch)
{
file.RelativeUrl = file.FullName.Replace(rootFolder, "").Trim('\\');
}
else
{
foreach (var searchPath in searchPaths)
{
file.RelativeUrl = file.FullName.Replace(Path.Combine(rootFolder, searchPath), "").Trim('\\');
}
}
result.Add(file);
}
}
}
}
return result.ToArray();
}
#region HostingServiceProvider methods
public override string[] Install()

View file

@ -5334,8 +5334,6 @@ namespace WebsitePanel.Providers.HostedSolution
string newValue = orgCanonicalName + "/" + GetPublicFolderMailboxName(organizationId);
if (newValue != oldValue)
{
cmd = new Command("Set-Mailbox");
cmd.Parameters.Add("Identity", id);
cmd.Parameters.Add("DefaultPublicFolderMailbox", newValue);
@ -5343,7 +5341,6 @@ namespace WebsitePanel.Providers.HostedSolution
ExecuteShellCommand(runSpace, cmd);
res.Add(newValue);
}
}
finally

View file

@ -603,6 +603,53 @@ namespace WebsitePanel.Providers.HostedSolution
return retUser;
}
private static Int64 ConvertADSLargeIntegerToInt64(object adsLargeInteger)
{
var highPart = (Int32)adsLargeInteger.GetType().InvokeMember("HighPart", System.Reflection.BindingFlags.GetProperty, null, adsLargeInteger, null);
var lowPart = (Int32)adsLargeInteger.GetType().InvokeMember("LowPart", System.Reflection.BindingFlags.GetProperty, null, adsLargeInteger, null);
return highPart * ((Int64)UInt32.MaxValue + 1) + lowPart;
}
private bool GetUserMustChangePassword(DirectoryEntry user)
{
Int64 pls;
int uac;
if (user.Properties[ADAttributes.PwdLastSet] != null && user.Properties[ADAttributes.PwdLastSet].Value != null)
pls = ConvertADSLargeIntegerToInt64(user.Properties[ADAttributes.PwdLastSet].Value);
else
return false;
if (user.Properties[ADAttributes.UserAccountControl] != null && user.Properties[ADAttributes.UserAccountControl].Value != null)
uac = (int)user.Properties[ADAttributes.UserAccountControl].Value;
else
return false;
return (pls == 0) && ((uac & 0x00010000) == 0);
}
private void SetUserMustChangePassword(DirectoryEntry user, bool userMustChangePassword)
{
Int64 pls;
int uac;
if (user.Properties[ADAttributes.PwdLastSet] != null && user.Properties[ADAttributes.PwdLastSet].Value != null)
pls = ConvertADSLargeIntegerToInt64(user.Properties[ADAttributes.PwdLastSet].Value);
else
return;
if (user.Properties[ADAttributes.UserAccountControl] != null && user.Properties[ADAttributes.UserAccountControl].Value != null)
uac = (int)user.Properties[ADAttributes.UserAccountControl].Value;
else
return;
if ((uac & 0x00010000) != 0) return;
if ((pls == 0) == userMustChangePassword) return;
user.Properties[ADAttributes.PwdLastSet].Value = userMustChangePassword ? 0 : -1;
}
private OrganizationUser GetUser(string path)
{
OrganizationUser retUser = new OrganizationUser();
@ -637,6 +684,7 @@ namespace WebsitePanel.Providers.HostedSolution
retUser.DistinguishedName = ActiveDirectoryUtils.GetADObjectStringProperty(entry, ADAttributes.DistinguishedName);
retUser.Locked = (bool)entry.InvokeGet(ADAttributes.AccountLocked);
retUser.UserPrincipalName = (string)entry.InvokeGet(ADAttributes.UserPrincipalName);
retUser.UserMustChangePassword = GetUserMustChangePassword(entry);
return retUser;
}
@ -673,12 +721,12 @@ namespace WebsitePanel.Providers.HostedSolution
string address, string city, string state, string zip, string country, string jobTitle,
string company, string department, string office, string managerAccountName,
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
string webPage, string notes, string externalEmail)
string webPage, string notes, string externalEmail, bool userMustChangePassword)
{
SetUserGeneralSettingsInternal(organizationId, accountName, displayName, password, hideFromAddressBook,
disabled, locked, firstName, initials, lastName, address, city, state, zip, country, jobTitle,
company, department, office, managerAccountName, businessPhone, fax, homePhone,
mobilePhone, pager, webPage, notes, externalEmail);
mobilePhone, pager, webPage, notes, externalEmail, userMustChangePassword);
}
internal void SetUserGeneralSettingsInternal(string organizationId, string accountName, string displayName, string password,
@ -686,7 +734,7 @@ namespace WebsitePanel.Providers.HostedSolution
string address, string city, string state, string zip, string country, string jobTitle,
string company, string department, string office, string managerAccountName,
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
string webPage, string notes, string externalEmail)
string webPage, string notes, string externalEmail, bool userMustChangePassword)
{
string path = GetUserPath(organizationId, accountName);
DirectoryEntry entry = ActiveDirectoryUtils.GetADObject(path);
@ -738,6 +786,7 @@ namespace WebsitePanel.Providers.HostedSolution
}
SetUserMustChangePassword(entry, userMustChangePassword);
entry.CommitChanges();
}

View file

@ -836,7 +836,7 @@ namespace WebsitePanel.Providers.Mail
Enabled = Convert.ToInt32((object) accountObject.GetProperty("U_AccountDisabled")) == 0,
ForwardingEnabled = !string.IsNullOrWhiteSpace(accountObject.GetProperty("U_ForwardTo")) || string.IsNullOrWhiteSpace(accountObject.GetProperty("U_RemoteAddress")) && Convert.ToBoolean((object) accountObject.GetProperty("U_UseRemoteAddress")),
IsDomainAdmin = Convert.ToBoolean((object) accountObject.GetProperty("U_DomainAdmin")),
MaxMailboxSize = Convert.ToInt32((object) accountObject.GetProperty("U_MaxBoxSize"))/1024,
MaxMailboxSize = Convert.ToBoolean((object) accountObject.GetProperty("U_MaxBox")) ? Convert.ToInt32((object) accountObject.GetProperty("U_MaxBoxSize"))/1024 : 0,
Password = accountObject.GetProperty("U_Password"),
ResponderEnabled = Convert.ToInt32((object) accountObject.GetProperty("U_Respond")) > 0,
QuotaUsed = Convert.ToInt64((object) accountObject.GetProperty("U_MailBoxSize")),
@ -923,7 +923,8 @@ namespace WebsitePanel.Providers.Mail
accountObject.SetProperty("U_AccountDisabled", mailbox.IceWarpAccountState);
accountObject.SetProperty("U_DomainAdmin", mailbox.IsDomainAdmin);
accountObject.SetProperty("U_Password", mailbox.Password);
accountObject.SetProperty("U_MaxBoxSize", mailbox.MaxMailboxSize);
accountObject.SetProperty("U_MaxBoxSize", mailbox.MaxMailboxSize*1024);
accountObject.SetProperty("U_MaxBox", mailbox.MaxMailboxSize > 0 ? "1" : "0");
accountObject.SetProperty("U_MaxMessageSize", mailbox.MaxMessageSizeMegaByte*1024);
accountObject.SetProperty("U_MegabyteSendLimit", mailbox.MegaByteSendLimit);
accountObject.SetProperty("U_NumberSendLimit", mailbox.NumberSendLimit);

View file

@ -1172,7 +1172,12 @@ namespace WebsitePanel.Providers.Mail
);
if (!result.Result)
{
if (result.ResultCode == -21)
throw new Exception("Password doesn't meet complexity", new Exception(result.Message));
throw new Exception(result.Message);
}
// set forwarding settings
result = users.UpdateUserForwardingInfo(AdminUsername, AdminPassword,
@ -1233,7 +1238,12 @@ namespace WebsitePanel.Providers.Mail
AdminUsername, AdminPassword, mailbox.Name, strPassword, mailbox.FirstName, mailbox.LastName, mailbox.IsDomainAdmin);
if (!result.Result)
{
if (result.ResultCode == -21)
throw new Exception("Password doesn't meet complexity", new Exception(result.Message));
throw new Exception(result.Message);
}
// set forwarding settings
result = users.UpdateUserForwardingInfo(AdminUsername, AdminPassword,

View file

@ -377,7 +377,7 @@ Public Class hMailServer5
objAccount.Password = mailbox.Password
objAccount.MaxSize = mailbox.MaxMailboxSize
objAccount.PersonFirstName = mailbox.FirstName
objAccount.PersonLastName = mailbox.FirstName
objAccount.PersonLastName = mailbox.LastName
objAccount.SignatureEnabled = mailbox.SignatureEnabled
objAccount.SignaturePlainText = mailbox.Signature
objAccount.SignatureHTML = mailbox.SignatureHTML
@ -397,10 +397,13 @@ Public Class hMailServer5
'set forwarding address
If mailbox.ForwardingEnabled Then
If Not String.IsNullOrEmpty(mailbox.ForwardingAddresses(0)) Then
'Log.WriteInfo("forwarding enabled on creation of email account")
objAccount.ForwardAddress = mailbox.ForwardingAddresses(0)
objAccount.ForwardEnabled = True
objAccount.ForwardKeepOriginal = mailbox.RetainLocalCopy
End If
End If
objAccount.Save()

View file

@ -881,7 +881,7 @@ namespace WebsitePanel.Providers.Web
#endregion
#region PHP 5 script mappings
if (virtualDir.PhpInstalled.StartsWith(PHP_5))
if (!string.IsNullOrEmpty(virtualDir.PhpInstalled) && virtualDir.PhpInstalled.StartsWith(PHP_5))
{
if (PhpMode == Constants.PhpMode.FastCGI && virtualDir.PhpInstalled.Contains('|'))
{
@ -1207,6 +1207,25 @@ namespace WebsitePanel.Providers.Web
site.ColdFusionVersion = "9";
site.ColdFusionAvailable = true;
}
if (IsColdFusion10Installed())
{
site.ColdFusionVersion = "10";
site.ColdFusionAvailable = true;
}
if (IsColdFusion11Installed())
{
site.ColdFusionVersion = "11";
site.ColdFusionAvailable = true;
}
if (IsColdFusion12Installed())
{
site.ColdFusionVersion = "12";
site.ColdFusionAvailable = true;
}
}
else
{
@ -1330,6 +1349,11 @@ namespace WebsitePanel.Providers.Web
//
UpdateCgiBinFolder(site);
//
if (site.CreateCFVirtualDirectoriesPol)
{
//Create CFVirtDirs if enabled in hosting plan, this allows for CF to be enbled via Web Policy
CreateCFVirtualDirectories(site.SiteId);
}
try
{
webObjectsSvc.ChangeSiteState(site.SiteId, ServerState.Started);
@ -1429,6 +1453,7 @@ namespace WebsitePanel.Providers.Web
{
DeleteCFVirtualDirectories(site.SiteId);
site.CreateCFVirtualDirectories = false;
site.CreateCFVirtualDirectoriesPol = false;
}
else
{
@ -1438,6 +1463,7 @@ namespace WebsitePanel.Providers.Web
{
DeleteCFVirtualDirectories(site.SiteId);
site.CreateCFVirtualDirectories = false;
site.CreateCFVirtualDirectoriesPol = false;
}
}
else
@ -1446,6 +1472,7 @@ namespace WebsitePanel.Providers.Web
{
CreateCFVirtualDirectories(site.SiteId);
site.CreateCFVirtualDirectories = true;
site.CreateCFVirtualDirectoriesPol = true;
}
}
}
@ -1477,6 +1504,8 @@ namespace WebsitePanel.Providers.Web
if (site.ColdFusionInstalled)
{
if (IsColdFusion7Installed() || IsColdFusion8Installed() || IsColdFusion9Installed())
{
var cfElement = handlersCollection.CreateElement("add");
cfElement["name"] = "coldfusion";
@ -1488,6 +1517,7 @@ namespace WebsitePanel.Providers.Web
cfElement["requireAccess"] = "None";
cfElement["preCondition"] = "bitness64";
handlersCollection.AddAt(0, cfElement);
}
}
@ -3336,7 +3366,14 @@ namespace WebsitePanel.Providers.Web
}
WebVirtualDirectory flashRemotingDir = new WebVirtualDirectory();
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
{
flashRemotingDir.Name = "jakarta";
}
else
{
flashRemotingDir.Name = "JRunScripts";
}
flashRemotingDir.ContentPath = CFFlashRemotingDirPath;
flashRemotingDir.EnableAnonymousAccess = true;
flashRemotingDir.EnableWindowsAuthentication = true;
@ -3353,9 +3390,18 @@ namespace WebsitePanel.Providers.Web
}
public override void DeleteCFVirtualDirectories(string siteId)
{
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
{
DeleteVirtualDirectory(siteId, "CFIDE");
DeleteVirtualDirectory(siteId, "jakarta");
}
else
{
DeleteVirtualDirectory(siteId, "CFIDE");
DeleteVirtualDirectory(siteId, "JRunScripts");
}
}
@ -3366,10 +3412,18 @@ namespace WebsitePanel.Providers.Web
WebVirtualDirectory[] dirs = GetVirtualDirectories(srvman, siteId);
foreach (WebVirtualDirectory dir in dirs)
{
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
{
if (dir.FullQualifiedPath.Equals("CFIDE") || dir.FullQualifiedPath.Equals("jakarta"))
identifier++;
}
else
{
if (dir.FullQualifiedPath.Equals("CFIDE") || dir.FullQualifiedPath.Equals("JRunScripts"))
identifier++;
}
}
return identifier.Equals(2);
}
@ -4133,6 +4187,9 @@ namespace WebsitePanel.Providers.Web
// Restore setting back
ServerSettings.ADEnabled = adEnabled;
}
//
RemoveDelegationRulesRestrictions(siteName, accountName);
}
private void ReadWebDeployPublishingAccessDetails(WebVirtualDirectory iisObject)

View file

@ -145,6 +145,12 @@ namespace WebsitePanel.Providers.Web
public const string FRONTPAGE_ALLPORTS_REGLOC_X64 = @"SOFTWARE\Wow6432Node\Microsoft\Shared Tools\Web Server Extensions\All Ports\";
//ColdFusion related constants
public const string COLDFUSION_12_REGLOC = @"SOFTWARE\Adobe\Install Data\Adobe ColdFusion 12";
public const string COLDFUSION_12_REGLOC_X64 = @"SOFTWARE\Wow6432Node\Adobe\Install Data\Adobe ColdFusion 12";
public const string COLDFUSION_11_REGLOC = @"SOFTWARE\Adobe\Install Data\Adobe ColdFusion 11";
public const string COLDFUSION_11_REGLOC_X64 = @"SOFTWARE\Wow6432Node\Adobe\Install Data\Adobe ColdFusion 11";
public const string COLDFUSION_10_REGLOC = @"SOFTWARE\Adobe\Install Data\Adobe ColdFusion 10";
public const string COLDFUSION_10_REGLOC_X64 = @"SOFTWARE\Wow6432Node\Adobe\Install Data\Adobe ColdFusion 10";
public const string COLDFUSION_9_REGLOC = @"SOFTWARE\Adobe\Install Data\Adobe ColdFusion 9";
public const string COLDFUSION_9_REGLOC_X64 = @"SOFTWARE\Wow6432Node\Adobe\Install Data\Adobe ColdFusion 9";
public const string COLDFUSION_8_REGLOC = @"SOFTWARE\Adobe\Install Data\Adobe ColdFusion 8";
@ -422,6 +428,25 @@ namespace WebsitePanel.Providers.Web
site.ColdFusionVersion = "9";
site.ColdFusionAvailable = true;
}
if (IsColdFusion10Installed())
{
site.ColdFusionVersion = "10";
site.ColdFusionAvailable = true;
}
if (IsColdFusion11Installed())
{
site.ColdFusionVersion = "11";
site.ColdFusionAvailable = true;
}
if (IsColdFusion12Installed())
{
site.ColdFusionVersion = "12";
site.ColdFusionAvailable = true;
}
}
else
{
@ -430,11 +455,16 @@ namespace WebsitePanel.Providers.Web
WebVirtualDirectory[] virtdirs = GetVirtualDirectories(siteId);
if (VirtualDirectoryExists(siteId, "CFIDE") && VirtualDirectoryExists(siteId, "JRunScripts"))
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
{
if (VirtualDirectoryExists(siteId, "CFIDE") && VirtualDirectoryExists(siteId, "jakarta"));
site.CreateCFVirtualDirectories = true;
}
else
{
if (VirtualDirectoryExists(siteId, "CFIDE") && VirtualDirectoryExists(siteId, "JRunScripts"));
site.CreateCFVirtualDirectories = true;
}
{
site.CreateCFVirtualDirectories = false;
}
@ -808,7 +838,14 @@ namespace WebsitePanel.Providers.Web
WebVirtualDirectory[] virtdirs = GetVirtualDirectories(site.SiteId);
bool cfDirsinstalled = false;
if (VirtualDirectoryExists(site.SiteId, "CFIDE") && VirtualDirectoryExists(site.SiteId, "JRunScripts"))
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
{
if (VirtualDirectoryExists(site.SiteId, "CFIDE") && VirtualDirectoryExists(site.SiteId, "jakarta"));
}
else
{
if (VirtualDirectoryExists(site.SiteId, "CFIDE") && VirtualDirectoryExists(site.SiteId, "JRunScripts"));
}
{
cfDirsinstalled = true;
}
@ -1077,7 +1114,14 @@ namespace WebsitePanel.Providers.Web
}
WebVirtualDirectory flashRemotingDir = new WebVirtualDirectory();
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
{
flashRemotingDir.Name = "jakarta";
}
else
{
flashRemotingDir.Name = "JRunScripts";
}
flashRemotingDir.ContentPath = CFFlashRemotingDirPath;
flashRemotingDir.EnableAnonymousAccess = true;
flashRemotingDir.EnableWindowsAuthentication = true;
@ -1094,9 +1138,17 @@ namespace WebsitePanel.Providers.Web
}
public virtual void DeleteCFVirtualDirectories(string siteId)
{
if (IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed())
{
DeleteVirtualDirectory(siteId, "CFIDE");
DeleteVirtualDirectory(siteId, "jakarta");
}
else
{
DeleteVirtualDirectory(siteId, "CFIDE");
DeleteVirtualDirectory(siteId, "JRunScripts");
}
}
@ -1307,7 +1359,58 @@ namespace WebsitePanel.Providers.Web
public virtual bool IsColdFusionSystemInstalled()
{
return (IsColdFusion8Installed() || IsColdFusion7Installed() || IsColdFusion9Installed());
return (IsColdFusion8Installed() || IsColdFusion7Installed() || IsColdFusion10Installed() || IsColdFusion11Installed() || IsColdFusion12Installed() || IsColdFusion9Installed());
}
protected bool IsColdFusion12Installed()
{
RegistryKey keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_12_REGLOC);
if (keyColdFusion == null)
{
keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_12_REGLOC_X64);
if (keyColdFusion == null)
return false;
}
if (!String.IsNullOrEmpty((string)keyColdFusion.GetValue(COLDFUSION_ROOT_PATH)))
{
return true;
}
return false;
}
protected bool IsColdFusion11Installed()
{
RegistryKey keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_11_REGLOC);
if (keyColdFusion == null)
{
keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_11_REGLOC_X64);
if (keyColdFusion == null)
return false;
}
if (!String.IsNullOrEmpty((string)keyColdFusion.GetValue(COLDFUSION_ROOT_PATH)))
{
return true;
}
return false;
}
protected bool IsColdFusion10Installed()
{
RegistryKey keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_10_REGLOC);
if (keyColdFusion == null)
{
keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_10_REGLOC_X64);
if (keyColdFusion == null)
return false;
}
if (!String.IsNullOrEmpty((string)keyColdFusion.GetValue(COLDFUSION_ROOT_PATH)))
{
return true;
}
return false;
}
protected bool IsColdFusion9Installed()
@ -1399,6 +1502,49 @@ namespace WebsitePanel.Providers.Web
}
return String.Empty;
if (IsColdFusion10Installed())
{
RegistryKey keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_10_REGLOC);
if (keyColdFusion == null)
{
keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_10_REGLOC_X64);
if (keyColdFusion == null)
return String.Empty;
}
return (string)keyColdFusion.GetValue(COLDFUSION_ROOT_PATH);
}
return String.Empty;
if (IsColdFusion11Installed())
{
RegistryKey keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_11_REGLOC);
if (keyColdFusion == null)
{
keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_11_REGLOC_X64);
if (keyColdFusion == null)
return String.Empty;
}
return (string)keyColdFusion.GetValue(COLDFUSION_ROOT_PATH);
}
return String.Empty;
if (IsColdFusion12Installed())
{
RegistryKey keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_12_REGLOC);
if (keyColdFusion == null)
{
keyColdFusion = Registry.LocalMachine.OpenSubKey(COLDFUSION_12_REGLOC_X64);
if (keyColdFusion == null)
return String.Empty;
}
return (string)keyColdFusion.GetValue(COLDFUSION_ROOT_PATH);
}
return String.Empty;
}
protected void EnableColdFusionScripting(string siteName)

View file

@ -1,40 +1,21 @@
// Copyright (c) 2015, Outercurve Foundation.
// All rights reserved.
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.7905
//
// 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.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
//
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
// This source code was auto-generated by wsdl, Version=2.0.50727.3038.
//
using WebsitePanel.Providers.OS;
using WebsitePanel.Providers.Web;
namespace WebsitePanel.Providers.EnterpriseStorage
{
namespace WebsitePanel.Providers.EnterpriseStorage {
using System.Xml.Serialization;
using System.Web.Services;
using System.ComponentModel;
@ -44,13 +25,12 @@ namespace WebsitePanel.Providers.EnterpriseStorage
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name = "EnterpriseStorageSoap", Namespace = "http://smbsaas/websitepanel/server/")]
[System.Web.Services.WebServiceBindingAttribute(Name="EnterpriseStorageSoap", Namespace="http://smbsaas/websitepanel/server/")]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(ServiceProviderItem))]
public partial class EnterpriseStorage : Microsoft.Web.Services3.WebServicesClientProtocol
{
public partial class EnterpriseStorage : Microsoft.Web.Services3.WebServicesClientProtocol {
public ServiceProviderSettingsSoapHeader ServiceProviderSettingsSoapHeaderValue;
@ -68,12 +48,13 @@ namespace WebsitePanel.Providers.EnterpriseStorage
private System.Threading.SendOrPostCallback CheckFileServicesInstallationOperationCompleted;
private System.Threading.SendOrPostCallback SearchOperationCompleted;
private System.Threading.SendOrPostCallback RenameFolderOperationCompleted;
/// <remarks/>
public EnterpriseStorage()
{
this.Url = "http://localhost:9004/EnterpriseStorage.asmx";
public EnterpriseStorage() {
this.Url = "http://localhost:9003/EnterpriseStorage.asmx";
}
/// <remarks/>
@ -97,14 +78,16 @@ namespace WebsitePanel.Providers.EnterpriseStorage
/// <remarks/>
public event CheckFileServicesInstallationCompletedEventHandler CheckFileServicesInstallationCompleted;
/// <remarks/>
public event SearchCompletedEventHandler SearchCompleted;
/// <remarks/>
public event RenameFolderCompletedEventHandler RenameFolderCompleted;
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFolders", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public SystemFile[] GetFolders(string organizationId, WebDavSetting[] settings)
{
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFolders", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public SystemFile[] GetFolders(string organizationId, WebDavSetting[] settings) {
object[] results = this.Invoke("GetFolders", new object[] {
organizationId,
settings});
@ -112,31 +95,26 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
public System.IAsyncResult BeginGetFolders(string organizationId, WebDavSetting[] settings, System.AsyncCallback callback, object asyncState)
{
public System.IAsyncResult BeginGetFolders(string organizationId, WebDavSetting[] settings, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("GetFolders", new object[] {
organizationId,
settings}, callback, asyncState);
}
/// <remarks/>
public SystemFile[] EndGetFolders(System.IAsyncResult asyncResult)
{
public SystemFile[] EndGetFolders(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((SystemFile[])(results[0]));
}
/// <remarks/>
public void GetFoldersAsync(string organizationId, WebDavSetting[] settings)
{
public void GetFoldersAsync(string organizationId, WebDavSetting[] settings) {
this.GetFoldersAsync(organizationId, settings, null);
}
/// <remarks/>
public void GetFoldersAsync(string organizationId, WebDavSetting[] settings, object userState)
{
if ((this.GetFoldersOperationCompleted == null))
{
public void GetFoldersAsync(string organizationId, WebDavSetting[] settings, object userState) {
if ((this.GetFoldersOperationCompleted == null)) {
this.GetFoldersOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFoldersOperationCompleted);
}
this.InvokeAsync("GetFolders", new object[] {
@ -144,10 +122,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
settings}, this.GetFoldersOperationCompleted, userState);
}
private void OnGetFoldersOperationCompleted(object arg)
{
if ((this.GetFoldersCompleted != null))
{
private void OnGetFoldersOperationCompleted(object arg) {
if ((this.GetFoldersCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.GetFoldersCompleted(this, new GetFoldersCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
@ -155,9 +131,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFolder", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public SystemFile GetFolder(string organizationId, string folder, WebDavSetting setting)
{
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFolder", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public SystemFile GetFolder(string organizationId, string folder, WebDavSetting setting) {
object[] results = this.Invoke("GetFolder", new object[] {
organizationId,
folder,
@ -166,8 +141,7 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
public System.IAsyncResult BeginGetFolder(string organizationId, string folder, WebDavSetting setting, System.AsyncCallback callback, object asyncState)
{
public System.IAsyncResult BeginGetFolder(string organizationId, string folder, WebDavSetting setting, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("GetFolder", new object[] {
organizationId,
folder,
@ -175,23 +149,19 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
public SystemFile EndGetFolder(System.IAsyncResult asyncResult)
{
public SystemFile EndGetFolder(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((SystemFile)(results[0]));
}
/// <remarks/>
public void GetFolderAsync(string organizationId, string folder, WebDavSetting setting)
{
public void GetFolderAsync(string organizationId, string folder, WebDavSetting setting) {
this.GetFolderAsync(organizationId, folder, setting, null);
}
/// <remarks/>
public void GetFolderAsync(string organizationId, string folder, WebDavSetting setting, object userState)
{
if ((this.GetFolderOperationCompleted == null))
{
public void GetFolderAsync(string organizationId, string folder, WebDavSetting setting, object userState) {
if ((this.GetFolderOperationCompleted == null)) {
this.GetFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFolderOperationCompleted);
}
this.InvokeAsync("GetFolder", new object[] {
@ -200,10 +170,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
setting}, this.GetFolderOperationCompleted, userState);
}
private void OnGetFolderOperationCompleted(object arg)
{
if ((this.GetFolderCompleted != null))
{
private void OnGetFolderOperationCompleted(object arg) {
if ((this.GetFolderCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.GetFolderCompleted(this, new GetFolderCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
@ -211,9 +179,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateFolder", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public void CreateFolder(string organizationId, string folder, WebDavSetting setting)
{
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateFolder", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public void CreateFolder(string organizationId, string folder, WebDavSetting setting) {
this.Invoke("CreateFolder", new object[] {
organizationId,
folder,
@ -221,8 +188,7 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
public System.IAsyncResult BeginCreateFolder(string organizationId, string folder, WebDavSetting setting, System.AsyncCallback callback, object asyncState)
{
public System.IAsyncResult BeginCreateFolder(string organizationId, string folder, WebDavSetting setting, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("CreateFolder", new object[] {
organizationId,
folder,
@ -230,22 +196,18 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
public void EndCreateFolder(System.IAsyncResult asyncResult)
{
public void EndCreateFolder(System.IAsyncResult asyncResult) {
this.EndInvoke(asyncResult);
}
/// <remarks/>
public void CreateFolderAsync(string organizationId, string folder, WebDavSetting setting)
{
public void CreateFolderAsync(string organizationId, string folder, WebDavSetting setting) {
this.CreateFolderAsync(organizationId, folder, setting, null);
}
/// <remarks/>
public void CreateFolderAsync(string organizationId, string folder, WebDavSetting setting, object userState)
{
if ((this.CreateFolderOperationCompleted == null))
{
public void CreateFolderAsync(string organizationId, string folder, WebDavSetting setting, object userState) {
if ((this.CreateFolderOperationCompleted == null)) {
this.CreateFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateFolderOperationCompleted);
}
this.InvokeAsync("CreateFolder", new object[] {
@ -254,10 +216,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
setting}, this.CreateFolderOperationCompleted, userState);
}
private void OnCreateFolderOperationCompleted(object arg)
{
if ((this.CreateFolderCompleted != null))
{
private void OnCreateFolderOperationCompleted(object arg) {
if ((this.CreateFolderCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.CreateFolderCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
@ -265,9 +225,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/DeleteFolder", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public void DeleteFolder(string organizationId, string folder, WebDavSetting setting)
{
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/DeleteFolder", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public void DeleteFolder(string organizationId, string folder, WebDavSetting setting) {
this.Invoke("DeleteFolder", new object[] {
organizationId,
folder,
@ -275,8 +234,7 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
public System.IAsyncResult BeginDeleteFolder(string organizationId, string folder, WebDavSetting setting, System.AsyncCallback callback, object asyncState)
{
public System.IAsyncResult BeginDeleteFolder(string organizationId, string folder, WebDavSetting setting, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("DeleteFolder", new object[] {
organizationId,
folder,
@ -284,22 +242,18 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
public void EndDeleteFolder(System.IAsyncResult asyncResult)
{
public void EndDeleteFolder(System.IAsyncResult asyncResult) {
this.EndInvoke(asyncResult);
}
/// <remarks/>
public void DeleteFolderAsync(string organizationId, string folder, WebDavSetting setting)
{
public void DeleteFolderAsync(string organizationId, string folder, WebDavSetting setting) {
this.DeleteFolderAsync(organizationId, folder, setting, null);
}
/// <remarks/>
public void DeleteFolderAsync(string organizationId, string folder, WebDavSetting setting, object userState)
{
if ((this.DeleteFolderOperationCompleted == null))
{
public void DeleteFolderAsync(string organizationId, string folder, WebDavSetting setting, object userState) {
if ((this.DeleteFolderOperationCompleted == null)) {
this.DeleteFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteFolderOperationCompleted);
}
this.InvokeAsync("DeleteFolder", new object[] {
@ -308,10 +262,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
setting}, this.DeleteFolderOperationCompleted, userState);
}
private void OnDeleteFolderOperationCompleted(object arg)
{
if ((this.DeleteFolderCompleted != null))
{
private void OnDeleteFolderOperationCompleted(object arg) {
if ((this.DeleteFolderCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.DeleteFolderCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
@ -319,9 +271,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/SetFolderWebDavRules", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules)
{
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/SetFolderWebDavRules", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules) {
object[] results = this.Invoke("SetFolderWebDavRules", new object[] {
organizationId,
folder,
@ -331,8 +282,7 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
public System.IAsyncResult BeginSetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules, System.AsyncCallback callback, object asyncState)
{
public System.IAsyncResult BeginSetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("SetFolderWebDavRules", new object[] {
organizationId,
folder,
@ -341,23 +291,19 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
public bool EndSetFolderWebDavRules(System.IAsyncResult asyncResult)
{
public bool EndSetFolderWebDavRules(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((bool)(results[0]));
}
/// <remarks/>
public void SetFolderWebDavRulesAsync(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules)
{
public void SetFolderWebDavRulesAsync(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules) {
this.SetFolderWebDavRulesAsync(organizationId, folder, setting, rules, null);
}
/// <remarks/>
public void SetFolderWebDavRulesAsync(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules, object userState)
{
if ((this.SetFolderWebDavRulesOperationCompleted == null))
{
public void SetFolderWebDavRulesAsync(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules, object userState) {
if ((this.SetFolderWebDavRulesOperationCompleted == null)) {
this.SetFolderWebDavRulesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetFolderWebDavRulesOperationCompleted);
}
this.InvokeAsync("SetFolderWebDavRules", new object[] {
@ -367,10 +313,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
rules}, this.SetFolderWebDavRulesOperationCompleted, userState);
}
private void OnSetFolderWebDavRulesOperationCompleted(object arg)
{
if ((this.SetFolderWebDavRulesCompleted != null))
{
private void OnSetFolderWebDavRulesOperationCompleted(object arg) {
if ((this.SetFolderWebDavRulesCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.SetFolderWebDavRulesCompleted(this, new SetFolderWebDavRulesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
@ -378,9 +322,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFolderWebDavRules", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public WebDavFolderRule[] GetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting)
{
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFolderWebDavRules", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public WebDavFolderRule[] GetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting) {
object[] results = this.Invoke("GetFolderWebDavRules", new object[] {
organizationId,
folder,
@ -389,8 +332,7 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
public System.IAsyncResult BeginGetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, System.AsyncCallback callback, object asyncState)
{
public System.IAsyncResult BeginGetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("GetFolderWebDavRules", new object[] {
organizationId,
folder,
@ -398,23 +340,19 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
public WebDavFolderRule[] EndGetFolderWebDavRules(System.IAsyncResult asyncResult)
{
public WebDavFolderRule[] EndGetFolderWebDavRules(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((WebDavFolderRule[])(results[0]));
}
/// <remarks/>
public void GetFolderWebDavRulesAsync(string organizationId, string folder, WebDavSetting setting)
{
public void GetFolderWebDavRulesAsync(string organizationId, string folder, WebDavSetting setting) {
this.GetFolderWebDavRulesAsync(organizationId, folder, setting, null);
}
/// <remarks/>
public void GetFolderWebDavRulesAsync(string organizationId, string folder, WebDavSetting setting, object userState)
{
if ((this.GetFolderWebDavRulesOperationCompleted == null))
{
public void GetFolderWebDavRulesAsync(string organizationId, string folder, WebDavSetting setting, object userState) {
if ((this.GetFolderWebDavRulesOperationCompleted == null)) {
this.GetFolderWebDavRulesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFolderWebDavRulesOperationCompleted);
}
this.InvokeAsync("GetFolderWebDavRules", new object[] {
@ -423,10 +361,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage
setting}, this.GetFolderWebDavRulesOperationCompleted, userState);
}
private void OnGetFolderWebDavRulesOperationCompleted(object arg)
{
if ((this.GetFolderWebDavRulesCompleted != null))
{
private void OnGetFolderWebDavRulesOperationCompleted(object arg) {
if ((this.GetFolderWebDavRulesCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.GetFolderWebDavRulesCompleted(this, new GetFolderWebDavRulesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
@ -434,46 +370,38 @@ namespace WebsitePanel.Providers.EnterpriseStorage
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CheckFileServicesInstallation", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public bool CheckFileServicesInstallation()
{
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CheckFileServicesInstallation", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public bool CheckFileServicesInstallation() {
object[] results = this.Invoke("CheckFileServicesInstallation", new object[0]);
return ((bool)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginCheckFileServicesInstallation(System.AsyncCallback callback, object asyncState)
{
public System.IAsyncResult BeginCheckFileServicesInstallation(System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("CheckFileServicesInstallation", new object[0], callback, asyncState);
}
/// <remarks/>
public bool EndCheckFileServicesInstallation(System.IAsyncResult asyncResult)
{
public bool EndCheckFileServicesInstallation(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((bool)(results[0]));
}
/// <remarks/>
public void CheckFileServicesInstallationAsync()
{
public void CheckFileServicesInstallationAsync() {
this.CheckFileServicesInstallationAsync(null);
}
/// <remarks/>
public void CheckFileServicesInstallationAsync(object userState)
{
if ((this.CheckFileServicesInstallationOperationCompleted == null))
{
public void CheckFileServicesInstallationAsync(object userState) {
if ((this.CheckFileServicesInstallationOperationCompleted == null)) {
this.CheckFileServicesInstallationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckFileServicesInstallationOperationCompleted);
}
this.InvokeAsync("CheckFileServicesInstallation", new object[0], this.CheckFileServicesInstallationOperationCompleted, userState);
}
private void OnCheckFileServicesInstallationOperationCompleted(object arg)
{
if ((this.CheckFileServicesInstallationCompleted != null))
{
private void OnCheckFileServicesInstallationOperationCompleted(object arg) {
if ((this.CheckFileServicesInstallationCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.CheckFileServicesInstallationCompleted(this, new CheckFileServicesInstallationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
@ -481,9 +409,62 @@ namespace WebsitePanel.Providers.EnterpriseStorage
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/RenameFolder", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public SystemFile RenameFolder(string organizationId, string originalFolder, string newFolder, WebDavSetting setting)
{
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/Search", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public SystemFile[] Search(string organizationId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive) {
object[] results = this.Invoke("Search", new object[] {
organizationId,
searchPaths,
searchText,
userPrincipalName,
recursive});
return ((SystemFile[])(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginSearch(string organizationId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("Search", new object[] {
organizationId,
searchPaths,
searchText,
userPrincipalName,
recursive}, callback, asyncState);
}
/// <remarks/>
public SystemFile[] EndSearch(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((SystemFile[])(results[0]));
}
/// <remarks/>
public void SearchAsync(string organizationId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive) {
this.SearchAsync(organizationId, searchPaths, searchText, userPrincipalName, recursive, null);
}
/// <remarks/>
public void SearchAsync(string organizationId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive, object userState) {
if ((this.SearchOperationCompleted == null)) {
this.SearchOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSearchOperationCompleted);
}
this.InvokeAsync("Search", new object[] {
organizationId,
searchPaths,
searchText,
userPrincipalName,
recursive}, this.SearchOperationCompleted, userState);
}
private void OnSearchOperationCompleted(object arg) {
if ((this.SearchCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.SearchCompleted(this, new SearchCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/RenameFolder", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public SystemFile RenameFolder(string organizationId, string originalFolder, string newFolder, WebDavSetting setting) {
object[] results = this.Invoke("RenameFolder", new object[] {
organizationId,
originalFolder,
@ -493,8 +474,7 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
public System.IAsyncResult BeginRenameFolder(string organizationId, string originalFolder, string newFolder, WebDavSetting setting, System.AsyncCallback callback, object asyncState)
{
public System.IAsyncResult BeginRenameFolder(string organizationId, string originalFolder, string newFolder, WebDavSetting setting, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("RenameFolder", new object[] {
organizationId,
originalFolder,
@ -503,23 +483,19 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
public SystemFile EndRenameFolder(System.IAsyncResult asyncResult)
{
public SystemFile EndRenameFolder(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((SystemFile)(results[0]));
}
/// <remarks/>
public void RenameFolderAsync(string organizationId, string originalFolder, string newFolder, WebDavSetting setting)
{
public void RenameFolderAsync(string organizationId, string originalFolder, string newFolder, WebDavSetting setting) {
this.RenameFolderAsync(organizationId, originalFolder, newFolder, setting, null);
}
/// <remarks/>
public void RenameFolderAsync(string organizationId, string originalFolder, string newFolder, WebDavSetting setting, object userState)
{
if ((this.RenameFolderOperationCompleted == null))
{
public void RenameFolderAsync(string organizationId, string originalFolder, string newFolder, WebDavSetting setting, object userState) {
if ((this.RenameFolderOperationCompleted == null)) {
this.RenameFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRenameFolderOperationCompleted);
}
this.InvokeAsync("RenameFolder", new object[] {
@ -529,46 +505,39 @@ namespace WebsitePanel.Providers.EnterpriseStorage
setting}, this.RenameFolderOperationCompleted, userState);
}
private void OnRenameFolderOperationCompleted(object arg)
{
if ((this.RenameFolderCompleted != null))
{
private void OnRenameFolderOperationCompleted(object arg) {
if ((this.RenameFolderCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.RenameFolderCompleted(this, new RenameFolderCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
public new void CancelAsync(object userState)
{
public new void CancelAsync(object userState) {
base.CancelAsync(userState);
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void GetFoldersCompletedEventHandler(object sender, GetFoldersCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetFoldersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
{
public partial class GetFoldersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal GetFoldersCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState)
{
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public SystemFile[] Result
{
get
{
public SystemFile[] Result {
get {
this.RaiseExceptionIfNecessary();
return ((SystemFile[])(this.results[0]));
}
@ -576,29 +545,25 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void GetFolderCompletedEventHandler(object sender, GetFolderCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
{
public partial class GetFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal GetFolderCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState)
{
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public SystemFile Result
{
get
{
public SystemFile Result {
get {
this.RaiseExceptionIfNecessary();
return ((SystemFile)(this.results[0]));
}
@ -606,37 +571,33 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void CreateFolderCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void DeleteFolderCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void SetFolderWebDavRulesCompletedEventHandler(object sender, SetFolderWebDavRulesCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SetFolderWebDavRulesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
{
public partial class SetFolderWebDavRulesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal SetFolderWebDavRulesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState)
{
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public bool Result
{
get
{
public bool Result {
get {
this.RaiseExceptionIfNecessary();
return ((bool)(this.results[0]));
}
@ -644,29 +605,25 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void GetFolderWebDavRulesCompletedEventHandler(object sender, GetFolderWebDavRulesCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetFolderWebDavRulesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
{
public partial class GetFolderWebDavRulesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal GetFolderWebDavRulesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState)
{
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public WebDavFolderRule[] Result
{
get
{
public WebDavFolderRule[] Result {
get {
this.RaiseExceptionIfNecessary();
return ((WebDavFolderRule[])(this.results[0]));
}
@ -674,29 +631,25 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void CheckFileServicesInstallationCompletedEventHandler(object sender, CheckFileServicesInstallationCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CheckFileServicesInstallationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
{
public partial class CheckFileServicesInstallationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal CheckFileServicesInstallationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState)
{
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public bool Result
{
get
{
public bool Result {
get {
this.RaiseExceptionIfNecessary();
return ((bool)(this.results[0]));
}
@ -704,29 +657,51 @@ namespace WebsitePanel.Providers.EnterpriseStorage
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void RenameFolderCompletedEventHandler(object sender, RenameFolderCompletedEventArgs e);
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void SearchCompletedEventHandler(object sender, SearchCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class RenameFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
{
public partial class SearchCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal RenameFolderCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState)
{
internal SearchCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public SystemFile Result
{
get
{
public SystemFile[] Result {
get {
this.RaiseExceptionIfNecessary();
return ((SystemFile[])(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void RenameFolderCompletedEventHandler(object sender, RenameFolderCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class RenameFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal RenameFolderCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public SystemFile Result {
get {
this.RaiseExceptionIfNecessary();
return ((SystemFile)(this.results[0]));
}

View file

@ -175,6 +175,23 @@ namespace WebsitePanel.Server
}
}
[WebMethod, SoapHeader("settings")]
public SystemFile[] Search(string organizationId, string[] searchPaths, string searchText, string userPrincipalName, bool recursive)
{
try
{
Log.WriteStart("'{0}' Search", ProviderSettings.ProviderName);
var searchResults = EnterpriseStorageProvider.Search(organizationId, searchPaths, searchText, userPrincipalName, recursive);
Log.WriteEnd("'{0}' Search", ProviderSettings.ProviderName);
return searchResults;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' Search", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public SystemFile RenameFolder(string organizationId, string originalFolder, string newFolder, WebDavSetting setting)
{

View file

@ -159,12 +159,13 @@ namespace WebsitePanel.Server
string address, string city, string state, string zip, string country, string jobTitle,
string company, string department, string office, string managerAccountName,
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
string webPage, string notes, string externalEmail)
string webPage, string notes, string externalEmail,
bool userMustChangePassword)
{
Organization.SetUserGeneralSettings(organizationId, accountName, displayName, password, hideFromAddressBook,
disabled, locked, firstName, initials, lastName, address, city, state, zip, country, jobTitle,
company, department, office, managerAccountName, businessPhone, fax, homePhone,
mobilePhone, pager, webPage, notes, externalEmail);
mobilePhone, pager, webPage, notes, externalEmail, userMustChangePassword);
}

View file

@ -0,0 +1,29 @@
using System;
using System.ComponentModel;
using System.Resources;
namespace WebsitePanel.WebDav.Core.Attributes.Resources
{
public class LocalizedDescriptionAttribute : DescriptionAttribute
{
private readonly string _resourceKey;
private readonly ResourceManager _resource;
public LocalizedDescriptionAttribute(Type resourceType, string resourceKey)
{
_resource = new ResourceManager(resourceType);
_resourceKey = resourceKey;
}
public override string Description
{
get
{
string displayName = _resource.GetString(_resourceKey);
return string.IsNullOrEmpty(displayName)
? string.Format("[[{0}]]", _resourceKey)
: displayName;
}
}
}
}

View file

@ -7,13 +7,11 @@ namespace WebsitePanel.WebDav.Core.Config.Entities
{
public int DefaultCount { get; private set; }
public int AddElementsCount { get; private set; }
public List<string> ElementsToIgnore { get; private set; }
public ElementsRendering()
{
DefaultCount = ConfigSection.ElementsRendering.DefaultCount;
AddElementsCount = ConfigSection.ElementsRendering.AddElementsCount;
ElementsToIgnore = ConfigSection.ElementsRendering.ElementsToIgnore.Split(',').ToList();
}
}
}

View file

@ -12,10 +12,12 @@ namespace WebsitePanel.WebDav.Core.Config.Entities
public FileIconsDictionary()
{
DefaultPath = ConfigSection.FileIcons.DefaultPath;
FolderPath = ConfigSection.FileIcons.FolderPath;
_fileIcons = ConfigSection.FileIcons.Cast<FileIconsElement>().ToDictionary(x => x.Extension, y => y.Path);
}
public string DefaultPath { get; private set; }
public string FolderPath { get; private set; }
public IEnumerator<KeyValuePair<string, string>> GetEnumerator()
{

View file

@ -0,0 +1,38 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using WebsitePanel.WebDav.Core.Config.WebConfigSections;
using WebsitePanel.WebDavPortal.WebConfigSections;
namespace WebsitePanel.WebDav.Core.Config.Entities
{
public class FilesToIgnoreCollection : AbstractConfigCollection, IReadOnlyCollection<FilesToIgnoreElement>
{
private readonly IList<FilesToIgnoreElement> _filesToIgnore;
public FilesToIgnoreCollection()
{
_filesToIgnore = ConfigSection.FilesToIgnore.Cast<FilesToIgnoreElement>().ToList();
}
public IEnumerator<FilesToIgnoreElement> GetEnumerator()
{
return _filesToIgnore.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
public int Count
{
get { return _filesToIgnore.Count; }
}
public bool Contains(string name)
{
return _filesToIgnore.Any(x => x.Name == name);
}
}
}

View file

@ -13,11 +13,13 @@ namespace WebsitePanel.WebDav.Core.Config.Entities
{
IsEnabled = ConfigSection.OfficeOnline.IsEnabled;
Url = ConfigSection.OfficeOnline.Url;
CobaltFileTtl = ConfigSection.OfficeOnline.CobaltFileTtl;
_officeExtensions = ConfigSection.OfficeOnline.Cast<OfficeOnlineElement>().ToList();
}
public bool IsEnabled { get; private set; }
public string Url { get; private set; }
public int CobaltFileTtl { get; private set; }
public IEnumerator<OfficeOnlineElement> GetEnumerator()
{

View file

@ -0,0 +1,38 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using WebsitePanel.WebDav.Core.Config.WebConfigSections;
using WebsitePanel.WebDavPortal.WebConfigSections;
namespace WebsitePanel.WebDav.Core.Config.Entities
{
public class OpenerCollection : AbstractConfigCollection, IReadOnlyCollection<OpenerElement>
{
private readonly IList<OpenerElement> _targetBlankMimeTypeExtensions;
public OpenerCollection()
{
_targetBlankMimeTypeExtensions = ConfigSection.TypeOpener.Cast<OpenerElement>().ToList();
}
public IEnumerator<OpenerElement> GetEnumerator()
{
return _targetBlankMimeTypeExtensions.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
public int Count
{
get { return _targetBlankMimeTypeExtensions.Count; }
}
public bool Contains(string extension)
{
return _targetBlankMimeTypeExtensions.Any(x => x.Extension == extension);
}
}
}

View file

@ -0,0 +1,57 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using WebsitePanel.WebDav.Core.Config.WebConfigSections;
namespace WebsitePanel.WebDav.Core.Config.Entities
{
public class OwaSupportedBrowsersCollection : AbstractConfigCollection, IReadOnlyDictionary<string, int>
{
private readonly IDictionary<string, int> _browsers;
public OwaSupportedBrowsersCollection()
{
_browsers = ConfigSection.OwaSupportedBrowsers.Cast<OwaSupportedBrowsersElement>().ToDictionary(x => x.Browser, y => y.Version);
}
public IEnumerator<KeyValuePair<string, int>> GetEnumerator()
{
return _browsers.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
public int Count
{
get { return _browsers.Count; }
}
public bool ContainsKey(string browser)
{
return _browsers.ContainsKey(browser);
}
public bool TryGetValue(string browser, out int version)
{
return _browsers.TryGetValue(browser, out version);
}
public int this[string browser]
{
get { return ContainsKey(browser) ? _browsers[browser] : 0; }
}
public IEnumerable<string> Keys
{
get { return _browsers.Keys; }
}
public IEnumerable<int> Values
{
get { return _browsers.Values; }
}
}
}

View file

@ -12,5 +12,8 @@ namespace WebsitePanel.WebDav.Core.Config
FileIconsDictionary FileIcons { get; }
HttpErrorsCollection HttpErrors { get; }
OfficeOnlineCollection OfficeOnline { get; }
OwaSupportedBrowsersCollection OwaSupportedBrowsers { get; }
FilesToIgnoreCollection FilesToIgnore { get; }
OpenerCollection FileOpener { get; }
}
}

View file

@ -6,7 +6,6 @@ namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
{
private const string DefaultCountKey = "defaultCount";
private const string AddElementsCountKey = "addElementsCount";
private const string ElementsToIgnoreKey = "elementsToIgnoreKey";
[ConfigurationProperty(DefaultCountKey, IsKey = true, IsRequired = true, DefaultValue = 30)]
public int DefaultCount
@ -21,12 +20,5 @@ namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
get { return (int)this[AddElementsCountKey]; }
set { this[AddElementsCountKey] = value; }
}
[ConfigurationProperty(ElementsToIgnoreKey, IsKey = true, IsRequired = true, DefaultValue = "")]
public string ElementsToIgnore
{
get { return (string)this[ElementsToIgnoreKey]; }
set { this[ElementsToIgnoreKey] = value; }
}
}
}

View file

@ -0,0 +1,16 @@
using System.Configuration;
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
{
public class EnterpriseServerElement : ConfigurationElement
{
private const string ValueKey = "url";
[ConfigurationProperty(ValueKey, IsKey = true, IsRequired = true)]
public string Value
{
get { return (string)this[ValueKey]; }
set { this[ValueKey] = value; }
}
}
}

View file

@ -6,6 +6,7 @@ namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
public class FileIconsElementCollection : ConfigurationElementCollection
{
private const string DefaultPathKey = "defaultPath";
private const string FolderPathKey = "folderPath";
[ConfigurationProperty(DefaultPathKey, IsRequired = false, DefaultValue = "/")]
public string DefaultPath
@ -14,6 +15,13 @@ namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
set { this[DefaultPathKey] = value; }
}
[ConfigurationProperty(FolderPathKey, IsRequired = false)]
public string FolderPath
{
get { return (string)this[FolderPathKey]; }
set { this[FolderPathKey] = value; }
}
protected override ConfigurationElement CreateNewElement()
{
return new FileIconsElement();

View file

@ -0,0 +1,24 @@
using System.Configuration;
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
{
public class FilesToIgnoreElement : ConfigurationElement
{
private const string NameKey = "name";
private const string RegexKey = "regex";
[ConfigurationProperty(NameKey, IsKey = true, IsRequired = true)]
public string Name
{
get { return this[NameKey].ToString(); }
set { this[NameKey] = value; }
}
[ConfigurationProperty(RegexKey, IsKey = true, IsRequired = true)]
public string Regex
{
get { return this[RegexKey].ToString(); }
set { this[RegexKey] = value; }
}
}
}

View file

@ -0,0 +1,19 @@
using System;
using System.Configuration;
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
{
[ConfigurationCollection(typeof(FilesToIgnoreElement))]
public class FilesToIgnoreElementCollection : ConfigurationElementCollection
{
protected override ConfigurationElement CreateNewElement()
{
return new FilesToIgnoreElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((FilesToIgnoreElement)element).Name;
}
}
}

View file

@ -5,7 +5,9 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
public class OfficeOnlineElement : ConfigurationElement
{
private const string ExtensionKey = "extension";
private const string OwaOpenerKey = "owaOpener";
private const string OwaViewKey = "OwaView";
private const string OwaEditorKey = "OwaEditor";
private const string OwaMobileViewKey = "OwaMobileView";
[ConfigurationProperty(ExtensionKey, IsKey = true, IsRequired = true)]
public string Extension
@ -14,11 +16,26 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
set { this[ExtensionKey] = value; }
}
[ConfigurationProperty(OwaOpenerKey, IsKey = true, IsRequired = true)]
public string OwaOpener
[ConfigurationProperty(OwaViewKey, IsKey = true, IsRequired = true)]
public string OwaView
{
get { return this[OwaOpenerKey].ToString(); }
set { this[OwaOpenerKey] = value; }
get { return this[OwaViewKey].ToString(); }
set { this[OwaViewKey] = value; }
}
[ConfigurationProperty(OwaEditorKey, IsKey = true, IsRequired = true)]
public string OwaEditor
{
get { return this[OwaEditorKey].ToString(); }
set { this[OwaEditorKey] = value; }
}
[ConfigurationProperty(OwaMobileViewKey, IsKey = true, IsRequired = true)]
public string OwaMobileViev
{
get { return this[OwaMobileViewKey].ToString(); }
set { this[OwaMobileViewKey] = value; }
}
}
}

View file

@ -8,6 +8,7 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
{
private const string UrlKey = "url";
private const string IsEnabledKey = "isEnabled";
private const string CobaltFileTtlKey = "cobaltFileTtl";
[ConfigurationProperty(UrlKey, IsKey = true, IsRequired = true)]
public string Url
@ -23,6 +24,13 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
set { this[IsEnabledKey] = value; }
}
[ConfigurationProperty(CobaltFileTtlKey, IsKey = true, IsRequired = true)]
public int CobaltFileTtl
{
get { return int.Parse(this[CobaltFileTtlKey].ToString()); }
set { this[CobaltFileTtlKey] = value; }
}
protected override ConfigurationElement CreateNewElement()
{
return new OfficeOnlineElement();

View file

@ -0,0 +1,33 @@
using System;
using System.Configuration;
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
{
public class OpenerElement : ConfigurationElement
{
private const string ExtensionKey = "extension";
private const string MemeTypeKey = "mimeType";
private const string TargetBlankKey = "isTargetBlank";
[ConfigurationProperty(ExtensionKey, IsKey = true, IsRequired = true)]
public string Extension
{
get { return this[ExtensionKey].ToString(); }
set { this[ExtensionKey] = value; }
}
[ConfigurationProperty(MemeTypeKey, IsKey = true, IsRequired = true)]
public string MimeType
{
get { return this[MemeTypeKey].ToString(); }
set { this[MemeTypeKey] = value; }
}
[ConfigurationProperty(TargetBlankKey, IsKey = true, IsRequired = true)]
public bool IstargetBlank
{
get { return Convert.ToBoolean(this[TargetBlankKey]); }
set { this[TargetBlankKey] = value; }
}
}
}

View file

@ -0,0 +1,19 @@
using System;
using System.Configuration;
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
{
[ConfigurationCollection(typeof(OpenerElement))]
public class OpenerElementCollection : ConfigurationElementCollection
{
protected override ConfigurationElement CreateNewElement()
{
return new OpenerElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((OpenerElement)element).Extension;
}
}
}

View file

@ -0,0 +1,24 @@
using System.Configuration;
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
{
public class OwaSupportedBrowsersElement : ConfigurationElement
{
private const string BrowserKey = "browser";
private const string VersionKey = "version";
[ConfigurationProperty(BrowserKey, IsKey = true, IsRequired = true)]
public string Browser
{
get { return (string)this[BrowserKey]; }
set { this[BrowserKey] = value; }
}
[ConfigurationProperty(VersionKey, IsKey = true, IsRequired = true)]
public int Version
{
get { return (int)this[VersionKey]; }
set { this[VersionKey] = value; }
}
}
}

View file

@ -0,0 +1,18 @@
using System.Configuration;
namespace WebsitePanel.WebDav.Core.Config.WebConfigSections
{
[ConfigurationCollection(typeof(OwaSupportedBrowsersElement))]
public class OwaSupportedBrowsersElementCollection : ConfigurationElementCollection
{
protected override ConfigurationElement CreateNewElement()
{
return new OwaSupportedBrowsersElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((OwaSupportedBrowsersElement)element).Browser;
}
}
}

View file

@ -9,13 +9,17 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
private const string WebdavRootKey = "webdavRoot";
private const string AuthTimeoutCookieNameKey = "authTimeoutCookieName";
private const string AppName = "applicationName";
private const string EnterpriseServerUrlNameKey = "enterpriseServer";
private const string WebsitePanelConstantUserKey = "websitePanelConstantUser";
private const string ElementsRenderingKey = "elementsRendering";
private const string Rfc2898CryptographyKey = "rfc2898Cryptography";
private const string ConnectionStringsKey = "appConnectionStrings";
private const string SessionKeysKey = "sessionKeys";
private const string FileIconsKey = "fileIcons";
private const string OwaSupportedBrowsersKey = "owaSupportedBrowsers";
private const string OfficeOnlineKey = "officeOnline";
private const string FilesToIgnoreKey = "filesToIgnore";
private const string TypeOpenerKey = "typeOpener";
public const string SectionName = "webDavExplorerConfigurationSettings";
@ -26,6 +30,13 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
set { this[AuthTimeoutCookieNameKey] = value; }
}
[ConfigurationProperty(EnterpriseServerUrlNameKey, IsRequired = true)]
public EnterpriseServerElement EnterpriseServerUrl
{
get { return (EnterpriseServerElement)this[EnterpriseServerUrlNameKey]; }
set { this[EnterpriseServerUrlNameKey] = value; }
}
[ConfigurationProperty(WebdavRootKey, IsRequired = true)]
public WebdavRootElement WebdavRoot
{
@ -75,11 +86,32 @@ namespace WebsitePanel.WebDavPortal.WebConfigSections
set { this[FileIconsKey] = value; }
}
[ConfigurationProperty(OwaSupportedBrowsersKey, IsDefaultCollection = false)]
public OwaSupportedBrowsersElementCollection OwaSupportedBrowsers
{
get { return (OwaSupportedBrowsersElementCollection)this[OwaSupportedBrowsersKey]; }
set { this[OwaSupportedBrowsersKey] = value; }
}
[ConfigurationProperty(OfficeOnlineKey, IsDefaultCollection = false)]
public OfficeOnlineElementCollection OfficeOnline
{
get { return (OfficeOnlineElementCollection)this[OfficeOnlineKey]; }
set { this[OfficeOnlineKey] = value; }
}
[ConfigurationProperty(TypeOpenerKey, IsDefaultCollection = false)]
public OpenerElementCollection TypeOpener
{
get { return (OpenerElementCollection)this[TypeOpenerKey]; }
set { this[TypeOpenerKey] = value; }
}
[ConfigurationProperty(FilesToIgnoreKey, IsDefaultCollection = false)]
public FilesToIgnoreElementCollection FilesToIgnore
{
get { return (FilesToIgnoreElementCollection)this[FilesToIgnoreKey]; }
set { this[FilesToIgnoreKey] = value; }
}
}
}

View file

@ -18,6 +18,9 @@ namespace WebsitePanel.WebDav.Core.Config
FileIcons = new FileIconsDictionary();
HttpErrors = new HttpErrorsCollection();
OfficeOnline = new OfficeOnlineCollection();
OwaSupportedBrowsers = new OwaSupportedBrowsersCollection();
FilesToIgnore = new FilesToIgnoreCollection();
FileOpener = new OpenerCollection();
}
public static WebDavAppConfigManager Instance
@ -45,11 +48,19 @@ namespace WebsitePanel.WebDav.Core.Config
get { return _configSection.AuthTimeoutCookieName.Value; }
}
public string EnterpriseServerUrl
{
get { return _configSection.EnterpriseServerUrl.Value; }
}
public ElementsRendering ElementsRendering { get; private set; }
public WebsitePanelConstantUserParameters WebsitePanelConstantUserParameters { get; private set; }
public SessionKeysCollection SessionKeys { get; private set; }
public FileIconsDictionary FileIcons { get; private set; }
public HttpErrorsCollection HttpErrors { get; private set; }
public OfficeOnlineCollection OfficeOnline { get; private set; }
public OwaSupportedBrowsersCollection OwaSupportedBrowsers { get; private set; }
public FilesToIgnoreCollection FilesToIgnore { get; private set; }
public OpenerCollection FileOpener { get; private set; }
}
}

View file

@ -0,0 +1,8 @@
namespace WebsitePanel.WebDav.Core.Entities.Account.Enums
{
public enum FolderViewTypes
{
BigIcons,
Table
}
}

View file

@ -0,0 +1,9 @@
using WebsitePanel.WebDav.Core.Entities.Account.Enums;
namespace WebsitePanel.WebDav.Core.Entities.Account
{
public class UserPortalSettings
{
public FolderViewTypes WebDavViewType { get; set; }
}
}

View file

@ -13,6 +13,33 @@ namespace WebsitePanel.WebDav.Core.Entities.Owa
public long Size { get; set; }
[DataMember]
public string Version { get; set; }
[DataMember]
public bool SupportsCoauth { get; set; }
[DataMember]
public bool SupportsCobalt { get; set; }
[DataMember]
public bool SupportsFolders { get; set; }
[DataMember]
public bool SupportsLocks { get; set; }
[DataMember]
public bool SupportsScenarioLinks { get; set; }
[DataMember]
public bool SupportsSecureStore { get; set; }
[DataMember]
public bool SupportsUpdate { get; set; }
[DataMember]
public bool UserCanWrite { get; set; }
[DataMember]
public string DownloadUrl { get; set; }
[DataMember]
public bool ReadOnly { get; set; }
[DataMember]
public bool RestrictedWebViewOnly { get; set; }
[DataMember]
public string ClientUrl { get; set; }
//[DataMember]
//public bool UserCanNotWriteRelative { get; set; }
//[DataMember]
//public string SHA256 { get; set; }
@ -43,8 +70,6 @@ namespace WebsitePanel.WebDav.Core.Entities.Owa
//[DataMember]
//public bool DisableTranslation { get; set; }
//[DataMember]
//public string DownloadUrl { get; set; }
//[DataMember]
//public string FileSharingUrl { get; set; }
//[DataMember]
//public string FileUrl { get; set; }
@ -79,26 +104,12 @@ namespace WebsitePanel.WebDav.Core.Entities.Owa
//public bool ProtectInClient { get; set; }
//[DataMember]
//public bool ReadOnly { get; set; }
//[DataMember]
//public bool RestrictedWebViewOnly { get; set; }
//[DataMember]
//public string SignoutUrl { get; set; }
//[DataMember]
//public bool SupportsCoauth { get; set; }
//[DataMember]
//public bool SupportsCobalt { get; set; }
//[DataMember]
//public bool SupportsFolders { get; set; }
//[DataMember]
//public bool SupportsLocks { get; set; }
//[DataMember]
//public bool SupportsScenarioLinks { get; set; }
//[DataMember]
//public bool SupportsSecureStore { get; set; }
//[DataMember]
//public bool SupportsUpdate { get; set; }
//[DataMember]
//public string TenantId { get; set; }
//[DataMember]
@ -107,8 +118,7 @@ namespace WebsitePanel.WebDav.Core.Entities.Owa
//public string TimeZone { get; set; }
//[DataMember]
//public bool UserCanAttend { get; set; }
//[DataMember]
//public bool UserCanNotWriteRelative { get; set; }
//[DataMember]
//public bool UserCanPresent { get; set; }
//[DataMember]

View file

@ -0,0 +1,10 @@
namespace WebsitePanel.WebDav.Core.Entities.Owa
{
public class PutRelativeFile
{
public string Name { get; set; }
public string Url { get; set; }
public string HostViewUrl { get; set; }
public string HostEditUrl { get; set; }
}
}

View file

@ -0,0 +1,23 @@
using System;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Resources;
using WebsitePanel.WebDav.Core.Attributes.Resources;
namespace WebsitePanel.WebDav.Core.Extensions
{
public static class EnumExtensions
{
public static string GetDescription(this Enum value)
{
FieldInfo field = value.GetType().GetField(value.ToString());
DescriptionAttribute attribute
= Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute))
as DescriptionAttribute;
return attribute == null ? value.ToString() : attribute.Description;
}
}
}

View file

@ -0,0 +1,12 @@
namespace WebsitePanel.WebDav.Core.Extensions
{
public static class StringExtensions
{
public static string ReplaceLast(this string source, string target, string newValue)
{
int index = source.LastIndexOf(target);
string result = source.Remove(index, target.Length).Insert(index, newValue);
return result;
}
}
}

View file

@ -0,0 +1,41 @@
using System.IO;
using System.Xml;
using System.Xml.Serialization;
namespace WebsitePanel.WebDav.Core.Helper
{
public class SerializeHelper
{
public static TResult Deserialize<TResult>(string inputString)
{
TResult result;
var serializer = new XmlSerializer(typeof(TResult));
using (TextReader reader = new StringReader(inputString))
{
result = (TResult)serializer.Deserialize(reader);
}
return result;
}
public static string Serialize<TEntity>(TEntity entity)
{
string result = string.Empty;
var xmlSerializer = new XmlSerializer(typeof(TEntity));
using (var stringWriter = new StringWriter())
{
using (XmlWriter writer = XmlWriter.Create(stringWriter))
{
xmlSerializer.Serialize(writer, entity);
result = stringWriter.ToString();
}
}
return result;
}
}
}

View file

@ -218,6 +218,68 @@ namespace WebsitePanel.WebDav.Core
Open();
}
public void OpenPaged(string path)
{
_path = new Uri(path);
OpenPaged();
}
public void OpenPaged()
{
var request = (HttpWebRequest)WebRequest.Create(_path);
//request.PreAuthenticate = true;
request.Method = "SEARCH";
//TODO Disable SSL
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return true; });
var credentials = (NetworkCredential)_credentials;
if (credentials != null && credentials.UserName != null)
{
request.Credentials = _credentials;
string auth = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(credentials.UserName + ":" + credentials.Password));
request.Headers.Add("Authorization", auth);
}
var strQuery = "<?xml version=\"1.0\"?><D:searchrequest xmlns:D = \"DAV:\" >"
+ "<D:sql>SELECT \"DAV:displayname\" FROM \"" + _path + "\""
+ "WHERE \"DAV:ishidden\" = false"
+ "</D:sql></D:searchrequest>";
try
{
var bytes = Encoding.UTF8.GetBytes(strQuery);
request.ContentLength = bytes.Length;
using (var requestStream = request.GetRequestStream())
{
// Write the SQL query to the request stream.
requestStream.Write(bytes, 0, bytes.Length);
}
request.ContentType = "text/xml";
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var responseStream = new StreamReader(response.GetResponseStream()))
{
string responseString = responseStream.ReadToEnd();
ProcessResponse(responseString);
}
}
}
catch (WebException e)
{
if (e.Status == WebExceptionStatus.ProtocolError)
{
throw new UnauthorizedException();
}
throw e;
}
}
/// <summary>
/// Processes the response from the server.
/// </summary>
@ -301,6 +363,36 @@ namespace WebsitePanel.WebDav.Core
XmlCurrentPropNode.NamespaceURI),
XmlCurrentPropNode.InnerXml));
break;
//case "lockdiscovery":
//{
// if (XmlCurrentPropNode.HasChildNodes == false)
// {
// break;
// }
// foreach (XmlNode activeLockNode in XmlCurrentPropNode.FirstChild)
// {
// switch (activeLockNode.LocalName)
// {
// case "owner":
// item.SetProperty(
// new Property(
// new PropertyName("owner",
// activeLockNode.NamespaceURI),
// activeLockNode.InnerXml));
// break;
// case "locktoken":
// var lockTokenNode = activeLockNode.FirstChild;
// item.SetProperty(
// new Property(
// new PropertyName("locktoken",
// lockTokenNode.NamespaceURI),
// lockTokenNode.InnerXml));
// break;
// }
// }
// break;
//}
}
}
break;
@ -326,6 +418,7 @@ namespace WebsitePanel.WebDav.Core
SetComment(item.Comment);
SetCreatorDisplayName(item.CreatorDisplayName);
SetLastModified(item.LastModified);
foreach (Property property in item.Properties)
{
SetProperty(property);

View file

@ -2,8 +2,10 @@
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Mime;
using System.Net.Security;
using System.Net.Sockets;
using System.Reflection;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
@ -27,7 +29,6 @@ namespace WebsitePanel.WebDav.Core
private bool _checkedOut = false;
private string _comment = "";
private long _contentLength;
private string _contentType = "";
private DateTime _creationDate = new DateTime(0);
private string _creatorDisplayName = "";
private ICredentials _credentials = new NetworkCredential();
@ -44,6 +45,15 @@ namespace WebsitePanel.WebDav.Core
AllowWriteStreamBuffering = false;
}
public WebDavResource(ICredentials credentials, IHierarchyItem item)
{
SendChunked = false;
AllowWriteStreamBuffering = false;
SetCredentials(credentials);
SetHierarchyItem(item);
}
public Uri BaseUri
{
get { return _baseUri; }
@ -69,7 +79,13 @@ namespace WebsitePanel.WebDav.Core
public string ContentType
{
get { return _contentType; }
get
{
{
var property = _properties.FirstOrDefault(x => x.Name.Name == "getcontenttype");
return property == null ? MediaTypeNames.Application.Octet : property.StringValue;
}
}
}
/// <summary>
@ -124,7 +140,7 @@ namespace WebsitePanel.WebDav.Core
var webClient = new WebClient();
webClient.Credentials = credentials;
webClient.Headers.Add("Authorization", auth);
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
webClient.UploadData(Href, "PUT", data);
}
@ -143,6 +159,7 @@ namespace WebsitePanel.WebDav.Core
webClient.Headers.Add("Authorization", auth);
//TODO Disable SSL
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate{ return true; });
return webClient.OpenRead(_href);
}
@ -240,14 +257,14 @@ namespace WebsitePanel.WebDav.Core
{
get
{
string displayName = _href.AbsoluteUri.Replace(_baseUri.AbsoluteUri, "");
string displayName = _href.AbsoluteUri.Trim('/').Replace(_baseUri.AbsoluteUri.Trim('/'), "");
displayName = Regex.Replace(displayName, "\\/$", "");
Match displayNameMatch = Regex.Match(displayName, "([\\/]+)$");
if (displayNameMatch.Success)
{
displayName = displayNameMatch.Groups[1].Value;
}
return HttpUtility.UrlDecode(displayName);
return HttpUtility.UrlDecode(displayName.Trim('/'));
}
}
@ -337,6 +354,69 @@ namespace WebsitePanel.WebDav.Core
}
}
/// <summary>
/// Lock this item.
/// </summary>
public string Lock()
{
var credentials = (NetworkCredential)_credentials;
string lockToken = string.Empty;
string lockXml =string.Format( "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" +
"<D:lockinfo xmlns:D='DAV:'>" +
"<D:lockscope><D:exclusive/></D:lockscope>" +
"<D:locktype><D:write/></D:locktype>" +
"<D:owner>{0}</D:owner>" +
"</D:lockinfo>", WspContext.User.Login);
string auth = "Basic " +
Convert.ToBase64String(
Encoding.Default.GetBytes(credentials.UserName + ":" + credentials.Password));
WebRequest webRequest = WebRequest.Create(Href);
webRequest.Method = "LOCK";
webRequest.Credentials = credentials;
webRequest.Headers.Add("Authorization", auth);
webRequest.PreAuthenticate = true;
webRequest.ContentType = "application/xml";
// Retrieve the request stream.
using (Stream requestStream = webRequest.GetRequestStream())
{
// Write the lock XML to the destination.
requestStream.Write(Encoding.UTF8.GetBytes(lockXml), 0, lockXml.Length);
}
using (WebResponse webResponse = webRequest.GetResponse())
{
lockToken = webResponse.Headers["Lock-Token"];
}
return lockToken;
}
/// <summary>
/// Lock this item.
/// </summary>
public void UnLock()
{
WebRequest webRequest = WebRequest.Create(Href);
webRequest.Method = "UNLOCK";
webRequest.Credentials = _credentials;
webRequest.PreAuthenticate = true;
webRequest.Headers.Add(@"Lock-Token", Properties.First(x => x.Name.Name == "locktoken").StringValue);
using (WebResponse webResponse = webRequest.GetResponse())
{
//TODO unlock
}
}
public bool AllowWriteStreamBuffering { get; set; }
public bool SendChunked { get; set; }
@ -399,15 +479,10 @@ namespace WebsitePanel.WebDav.Core
public void SetHref(Uri href)
{
_href = href;
string baseUri = _href.Scheme + "://" + _href.Host;
for (int i = 0; i < _href.Segments.Length - 1; i++)
{
if (_href.Segments[i] != "/")
{
baseUri += "/" + _href.Segments[i];
}
}
_baseUri = new Uri(baseUri);
var baseUrl = href.AbsoluteUri.Remove(href.AbsoluteUri.Length - href.Segments.Last().Length);
_baseUri = new Uri(baseUrl);
}
/// <summary>

View file

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.IO;
using System.Web;
using WebsitePanel.WebDav.Core.Client;
@ -8,10 +9,15 @@ namespace WebsitePanel.WebDav.Core.Interfaces.Managers
{
IEnumerable<IHierarchyItem> OpenFolder(string path);
bool IsFile(string path);
bool FileExist(string path);
byte[] GetFileBytes(string path);
void UploadFile(string path, HttpPostedFileBase file);
void UploadFile(string path, byte[] bytes);
void UploadFile(string path, Stream stream);
IEnumerable<IHierarchyItem> SearchFiles(int itemId, string pathPart, string searchValue, string uesrPrincipalName, bool recursive);
IResource GetResource(string path);
string GetFileUrl(string path);
void DeleteResource(string path);
void LockFile(string path);
}
}

View file

@ -0,0 +1,12 @@
using WebsitePanel.WebDav.Core.Entities.Account;
using WebsitePanel.WebDav.Core.Entities.Account.Enums;
namespace WebsitePanel.WebDav.Core.Interfaces.Managers.Users
{
public interface IUserSettingsManager
{
UserPortalSettings GetUserSettings(int accountId);
void UpdateSettings(int accountId, UserPortalSettings settings);
void ChangeWebDavViewType(int accountId, FolderViewTypes type);
}
}

View file

@ -0,0 +1,10 @@
using System.IO;
using Cobalt;
namespace WebsitePanel.WebDav.Core.Interfaces.Owa
{
public interface ICobaltManager
{
Atom ProcessRequest(int accessTokenId, Stream requestStream);
}
}

View file

@ -0,0 +1,12 @@
using Cobalt;
namespace WebsitePanel.WebDav.Core.Interfaces.Owa
{
public interface IWopiFileManager
{
CobaltFile Create(int accessTokenId);
CobaltFile Get(string filePath);
bool Add(string filePath, CobaltFile file);
bool Delete(string filePath);
}
}

View file

@ -0,0 +1,9 @@
namespace WebsitePanel.WebDav.Core.Interfaces.Storages
{
public interface IKeyValueStorage
{
TV Get<TV>(string id);
bool Add<TV>(string id, TV value);
bool Delete(string id);
}
}

View file

@ -0,0 +1,7 @@
namespace WebsitePanel.WebDav.Core.Interfaces.Storages
{
public interface ITtlStorage : IKeyValueStorage
{
void SetTtl<TV>(string id, TV value);
}
}

View file

@ -1,10 +1,15 @@
using WebsitePanel.WebDav.Core.Attributes.Resources;
using WebsitePanel.WebDav.Core.Resources;
namespace WebsitePanel.WebDav.Core
{
namespace Client
{
public enum ItemType
{
[LocalizedDescription(typeof(WebDavResources), "ItemTypeResource")]
Resource,
[LocalizedDescription(typeof(WebDavResources), "ItemTypeFolder")]
Folder,
Version,
VersionHistory

View file

@ -0,0 +1,39 @@
using WebsitePanel.WebDav.Core.Entities.Account;
using WebsitePanel.WebDav.Core.Entities.Account.Enums;
using WebsitePanel.WebDav.Core.Helper;
using WebsitePanel.WebDav.Core.Interfaces.Managers.Users;
using WebsitePanel.WebDav.Core.Wsp.Framework;
namespace WebsitePanel.WebDav.Core.Managers.Users
{
public class UserSettingsManager : IUserSettingsManager
{
public UserPortalSettings GetUserSettings(int accountId)
{
string xml = WSP.Services.EnterpriseStorage.GetWebDavPortalUserSettingsByAccountId(accountId);
if (string.IsNullOrEmpty(xml))
{
return new UserPortalSettings();
}
return SerializeHelper.Deserialize<UserPortalSettings>(xml);
}
public void UpdateSettings(int accountId, UserPortalSettings settings)
{
var xml = SerializeHelper.Serialize(settings);
WSP.Services.EnterpriseStorage.UpdateWebDavPortalUserSettings(accountId, xml);
}
public void ChangeWebDavViewType(int accountId, FolderViewTypes type)
{
var settings = GetUserSettings(accountId);
settings.WebDavViewType = type;
UpdateSettings(accountId, settings);
}
}
}

View file

@ -4,6 +4,7 @@ using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Xml.Serialization;
using log4net;
@ -13,6 +14,7 @@ using WebsitePanel.WebDav.Core.Config;
using WebsitePanel.WebDav.Core.Exceptions;
using WebsitePanel.WebDav.Core.Extensions;
using WebsitePanel.WebDav.Core.Interfaces.Managers;
using WebsitePanel.WebDav.Core.Interfaces.Security;
using WebsitePanel.WebDav.Core.Resources;
using WebsitePanel.WebDav.Core.Security.Cryptography;
using WebsitePanel.WebDav.Core.Wsp.Framework;
@ -23,15 +25,17 @@ namespace WebsitePanel.WebDav.Core.Managers
{
private readonly ICryptography _cryptography;
private readonly WebDavSession _webDavSession;
private readonly IWebDavAuthorizationService _webDavAuthorizationService;
private readonly ILog Log;
private bool _isRoot = true;
private IFolder _currentFolder;
public WebDavManager(ICryptography cryptography)
public WebDavManager(ICryptography cryptography, IWebDavAuthorizationService webDavAuthorizationService)
{
_cryptography = cryptography;
_webDavAuthorizationService = webDavAuthorizationService;
Log = LogManager.GetLogger(this.GetType());
_webDavSession = new WebDavSession();
@ -43,25 +47,14 @@ namespace WebsitePanel.WebDav.Core.Managers
if (string.IsNullOrWhiteSpace(pathPart))
{
var resources = ConnectToWebDavServer().Select(x => new WebDavResource { Href = new Uri(x.Url), ItemType = ItemType.Folder }).ToArray();
var items = WSP.Services.EnterpriseStorage.GetEnterpriseFolders(WspContext.User.ItemId);
foreach (var resource in resources)
children = ConnectToWebDavServer().Select(x => new WebDavResource
{
var folder = items.FirstOrDefault(x => x.Name == resource.DisplayName);
if (folder == null)
{
continue;
}
resource.ContentLength = folder.Size;
resource.AllocatedSpace = folder.FRSMQuotaMB;
resource.IsRootItem = true;
}
children = resources;
Href = new Uri(x.Url),
ItemType = ItemType.Folder,
ContentLength = x.Size,
AllocatedSpace = x.FRSMQuotaMB,
IsRootItem = true
}).ToArray();
}
else
{
@ -74,7 +67,7 @@ namespace WebsitePanel.WebDav.Core.Managers
_currentFolder = _webDavSession.OpenFolder(string.Format("{0}{1}/{2}", WebDavAppConfigManager.Instance.WebdavRoot, WspContext.User.OrganizationId, pathPart.TrimStart('/')));
}
children = _currentFolder.GetChildren().Where(x => !WebDavAppConfigManager.Instance.ElementsRendering.ElementsToIgnore.Contains(x.DisplayName.Trim('/'))).ToArray();
children = FilterResult(_currentFolder.GetChildren()).ToArray();
}
List<IHierarchyItem> sortedChildren = children.Where(x => x.ItemType == ItemType.Folder).OrderBy(x => x.DisplayName).ToList();
@ -83,6 +76,31 @@ namespace WebsitePanel.WebDav.Core.Managers
return sortedChildren;
}
public IEnumerable<IHierarchyItem> SearchFiles(int itemId, string pathPart, string searchValue, string uesrPrincipalName, bool recursive)
{
pathPart = (pathPart ?? string.Empty).Replace("/","\\");
SystemFile[] items;
if (string.IsNullOrWhiteSpace(pathPart))
{
var rootItems = ConnectToWebDavServer().Select(x => x.Name).ToList();
rootItems.Insert(0, string.Empty);
items = WspContext.Services.EnterpriseStorage.SearchFiles(itemId, rootItems.ToArray(), searchValue, uesrPrincipalName, recursive);
}
else
{
items = WspContext.Services.EnterpriseStorage.SearchFiles(itemId, new []{pathPart}, searchValue, uesrPrincipalName, recursive);
}
var resources = Convert(items, new Uri(WebDavAppConfigManager.Instance.WebdavRoot).Append(WspContext.User.OrganizationId, pathPart));
return FilterResult(resources);
}
public bool IsFile(string path)
{
string folder = GetFileFolder(path);
@ -143,9 +161,55 @@ namespace WebsitePanel.WebDav.Core.Managers
resource.Upload(bytes);
}
public void UploadFile(string path, byte[] bytes)
{
var resource = new WebDavResource();
var fileUrl = new Uri(WebDavAppConfigManager.Instance.WebdavRoot)
.Append(WspContext.User.OrganizationId)
.Append(path);
resource.SetHref(fileUrl);
resource.SetCredentials(new NetworkCredential(WspContext.User.Login, _cryptography.Decrypt(WspContext.User.EncryptedPassword)));
resource.Upload(bytes);
}
public void UploadFile(string path, Stream stream)
{
var resource = new WebDavResource();
var fileUrl = new Uri(WebDavAppConfigManager.Instance.WebdavRoot)
.Append(WspContext.User.OrganizationId)
.Append(path);
resource.SetHref(fileUrl);
resource.SetCredentials(new NetworkCredential(WspContext.User.Login, _cryptography.Decrypt(WspContext.User.EncryptedPassword)));
var bytes = ReadFully(stream);
resource.Upload(bytes);
}
public void LockFile(string path)
{
var resource = new WebDavResource();
var fileUrl = new Uri(WebDavAppConfigManager.Instance.WebdavRoot)
.Append(WspContext.User.OrganizationId)
.Append(path);
resource.SetHref(fileUrl);
resource.SetCredentials(new NetworkCredential(WspContext.User.Login, _cryptography.Decrypt(WspContext.User.EncryptedPassword)));
resource.Lock();
}
public void DeleteResource(string path)
{
path = RemoveLeadingFromPath(path, "office365");
path = RemoveLeadingFromPath(path, "view");
path = RemoveLeadingFromPath(path, "edit");
path = RemoveLeadingFromPath(path, WspContext.User.OrganizationId);
string folderPath = GetFileFolder(path);
@ -182,6 +246,26 @@ namespace WebsitePanel.WebDav.Core.Managers
}
}
public bool FileExist(string path)
{
try
{
string folder = GetFileFolder(path);
var resourceName = GetResourceName(path);
OpenFolder(folder);
var resource = _currentFolder.GetResource(resourceName);
return resource != null;
}
catch (InvalidOperationException exception)
{
return false;
}
}
public string GetFileUrl(string path)
{
try
@ -223,6 +307,7 @@ namespace WebsitePanel.WebDav.Core.Managers
}
}
}
return rootFolders;
}
@ -240,6 +325,33 @@ namespace WebsitePanel.WebDav.Core.Managers
return pathPart.StartsWith('/' + toRemove) ? pathPart.Substring(toRemove.Length + 1) : pathPart;
}
private IEnumerable<WebDavResource> Convert(IEnumerable<SystemFile> files, Uri baseUri)
{
var convertResult = new List<WebDavResource>();
var credentials = new NetworkCredential(WspContext.User.Login,
_cryptography.Decrypt(WspContext.User.EncryptedPassword),
WebDavAppConfigManager.Instance.UserDomain);
foreach (var file in files)
{
var webDavitem = new WebDavResource();
webDavitem.SetCredentials(credentials);
webDavitem.SetHref(baseUri.Append(file.RelativeUrl.Replace("\\","/")));
webDavitem.SetItemType(file.IsDirectory? ItemType.Folder : ItemType.Resource);
webDavitem.SetLastModified(file.Changed);
webDavitem.ContentLength = file.Size;
webDavitem.AllocatedSpace = file.FRSMQuotaMB;
convertResult.Add(webDavitem);
}
return convertResult;
}
private byte[] ReadFully(Stream input)
{
var buffer = new byte[16 * 1024];
@ -288,6 +400,30 @@ namespace WebsitePanel.WebDav.Core.Managers
return path.Split('/').Last(); ;
}
private IEnumerable<IHierarchyItem> FilterResult(IEnumerable<IHierarchyItem> items)
{
var result = items.ToList();
foreach (var item in items)
{
foreach (var itemToIgnore in WebDavAppConfigManager.Instance.FilesToIgnore)
{
var regex = new Regex(itemToIgnore.Regex);
Match match = regex.Match(item.DisplayName.Trim('/'));
if (match.Success && result.Contains(item))
{
result.Remove(item);
break;
}
}
}
return result;
}
#endregion
}
}

View file

@ -0,0 +1,245 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Cobalt;
using WebsitePanel.WebDav.Core;
namespace WebsitePanel.WebDav.Core.Owa
{
public class CobaltHostLockingStore : HostLockingStore
{
public override WhoAmIRequest.OutputType HandleWhoAmI(WhoAmIRequest.InputType input)
{
WhoAmIRequest.OutputType result = new WhoAmIRequest.OutputType();
result.UserIsAnonymous = WspContext.User == null;
if (WspContext.User != null)
{
result.UserEmailAddress = WspContext.User.Login;
result.UserLogin = WspContext.User.Login;
result.UserName = WspContext.User.DisplayName;
}
return result;
}
public override ServerTimeRequest.OutputType HandleServerTime(ServerTimeRequest.InputType input)
{
ServerTimeRequest.OutputType result = new ServerTimeRequest.OutputType();
result.ServerTime = DateTime.UtcNow;
return result;
}
public override LockAndCheckOutStatusRequest.OutputType HandleLockAndCheckOutStatus(LockAndCheckOutStatusRequest.InputType input)
{
LockAndCheckOutStatusRequest.OutputType result = new LockAndCheckOutStatusRequest.OutputType();
result.LockType = 1U;
result.CheckOutType = 0U;
return result;
}
public override GetExclusiveLockRequest.OutputType HandleGetExclusiveLock(GetExclusiveLockRequest.InputType input)
{
GetExclusiveLockRequest.OutputType result = new GetExclusiveLockRequest.OutputType();
return result;
}
public override RefreshExclusiveLockRequest.OutputType HandleRefreshExclusiveLock(RefreshExclusiveLockRequest.InputType input)
{
RefreshExclusiveLockRequest.OutputType result = new RefreshExclusiveLockRequest.OutputType();
return result;
}
public override CheckExclusiveLockAvailabilityRequest.OutputType HandleCheckExclusiveLockAvailability(CheckExclusiveLockAvailabilityRequest.InputType input)
{
CheckExclusiveLockAvailabilityRequest.OutputType result = new CheckExclusiveLockAvailabilityRequest.OutputType();
return result;
}
public override ConvertExclusiveLockToSchemaLockRequest.OutputType HandleConvertExclusiveLockToSchemaLock(ConvertExclusiveLockToSchemaLockRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
{
ConvertExclusiveLockToSchemaLockRequest.OutputType result = new ConvertExclusiveLockToSchemaLockRequest.OutputType();
return result;
}
public override ConvertExclusiveLockWithCoauthTransitionRequest.OutputType HandleConvertExclusiveLockWithCoauthTransition(ConvertExclusiveLockWithCoauthTransitionRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
{
ConvertExclusiveLockWithCoauthTransitionRequest.OutputType result = new ConvertExclusiveLockWithCoauthTransitionRequest.OutputType();
return result;
}
public override GetSchemaLockRequest.OutputType HandleGetSchemaLock(GetSchemaLockRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
{
GetSchemaLockRequest.OutputType result = new GetSchemaLockRequest.OutputType();
return result;
}
public override ReleaseExclusiveLockRequest.OutputType HandleReleaseExclusiveLock(ReleaseExclusiveLockRequest.InputType input)
{
ReleaseExclusiveLockRequest.OutputType result = new ReleaseExclusiveLockRequest.OutputType();
return result;
}
public override ReleaseSchemaLockRequest.OutputType HandleReleaseSchemaLock(ReleaseSchemaLockRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
{
ReleaseSchemaLockRequest.OutputType result = new ReleaseSchemaLockRequest.OutputType();
return result;
}
public override RefreshSchemaLockRequest.OutputType HandleRefreshSchemaLock(RefreshSchemaLockRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
{
RefreshSchemaLockRequest.OutputType result = new RefreshSchemaLockRequest.OutputType();
result.Lock = LockType.SchemaLock;
return result;
}
public override ConvertSchemaLockToExclusiveLockRequest.OutputType HandleConvertSchemaLockToExclusiveLock(ConvertSchemaLockToExclusiveLockRequest.InputType input)
{
ConvertSchemaLockToExclusiveLockRequest.OutputType result = new ConvertSchemaLockToExclusiveLockRequest.OutputType();
return result;
}
public override CheckSchemaLockAvailabilityRequest.OutputType HandleCheckSchemaLockAvailability(CheckSchemaLockAvailabilityRequest.InputType input)
{
CheckSchemaLockAvailabilityRequest.OutputType result = new CheckSchemaLockAvailabilityRequest.OutputType();
return result;
}
public override JoinCoauthoringRequest.OutputType HandleJoinCoauthoring(JoinCoauthoringRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
{
JoinCoauthoringRequest.OutputType result = new JoinCoauthoringRequest.OutputType();
result.Lock = LockType.SchemaLock;
result.CoauthStatus = CoauthStatusType.Alone;
result.TransitionId = Guid.NewGuid();
return result;
}
public override ExitCoauthoringRequest.OutputType HandleExitCoauthoring(ExitCoauthoringRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
{
ExitCoauthoringRequest.OutputType result = new ExitCoauthoringRequest.OutputType();
return result;
}
public override RefreshCoauthoringSessionRequest.OutputType HandleRefreshCoauthoring(RefreshCoauthoringSessionRequest.InputType input, int protocolMajorVersion, int protocolMinorVersion)
{
RefreshCoauthoringSessionRequest.OutputType result = new RefreshCoauthoringSessionRequest.OutputType();
result.Lock = LockType.SchemaLock;
result.CoauthStatus = CoauthStatusType.Alone;
return result;
}
public override ConvertCoauthLockToExclusiveLockRequest.OutputType HandleConvertCoauthLockToExclusiveLock(ConvertCoauthLockToExclusiveLockRequest.InputType input)
{
ConvertCoauthLockToExclusiveLockRequest.OutputType result = new ConvertCoauthLockToExclusiveLockRequest.OutputType();
return result;
}
public override CheckCoauthLockAvailabilityRequest.OutputType HandleCheckCoauthLockAvailability(CheckCoauthLockAvailabilityRequest.InputType input)
{
CheckCoauthLockAvailabilityRequest.OutputType result = new CheckCoauthLockAvailabilityRequest.OutputType();
return result;
}
public override MarkCoauthTransitionCompleteRequest.OutputType HandleMarkCoauthTransitionComplete(MarkCoauthTransitionCompleteRequest.InputType input)
{
MarkCoauthTransitionCompleteRequest.OutputType result = new MarkCoauthTransitionCompleteRequest.OutputType();
return result;
}
public override GetCoauthoringStatusRequest.OutputType HandleGetCoauthoringStatus(GetCoauthoringStatusRequest.InputType input)
{
GetCoauthoringStatusRequest.OutputType result = new GetCoauthoringStatusRequest.OutputType();
result.CoauthStatus = CoauthStatusType.Alone;
return result;
}
public override Dictionary<string, EditorsTableEntry> QueryEditorsTable()
{
return new Dictionary<string, EditorsTableEntry>();
}
public override JoinEditingSessionRequest.OutputType HandleJoinEditingSession(JoinEditingSessionRequest.InputType input)
{
JoinEditingSessionRequest.OutputType result = new JoinEditingSessionRequest.OutputType();
return result;
}
public override RefreshEditingSessionRequest.OutputType HandleRefreshEditingSession(RefreshEditingSessionRequest.InputType input)
{
RefreshEditingSessionRequest.OutputType result = new RefreshEditingSessionRequest.OutputType();
return result;
}
public override LeaveEditingSessionRequest.OutputType HandleLeaveEditingSession(LeaveEditingSessionRequest.InputType input)
{
LeaveEditingSessionRequest.OutputType result = new LeaveEditingSessionRequest.OutputType();
return result;
}
public override UpdateEditorMetadataRequest.OutputType HandleUpdateEditorMetadata(UpdateEditorMetadataRequest.InputType input)
{
UpdateEditorMetadataRequest.OutputType result = new UpdateEditorMetadataRequest.OutputType();
return result;
}
public override RemoveEditorMetadataRequest.OutputType HandleRemoveEditorMetadata(RemoveEditorMetadataRequest.InputType input)
{
RemoveEditorMetadataRequest.OutputType result = new RemoveEditorMetadataRequest.OutputType();
return result;
}
public override ulong GetEditorsTableWaterline()
{
return 0;
}
public override AmIAloneRequest.OutputType HandleAmIAlone(AmIAloneRequest.InputType input)
{
AmIAloneRequest.OutputType result = new AmIAloneRequest.OutputType();
result.AmIAlone = true;
return result;
}
public override DocMetaInfoRequest.OutputType HandleDocMetaInfo(DocMetaInfoRequest.InputType input)
{
DocMetaInfoRequest.OutputType result = new DocMetaInfoRequest.OutputType();
return result;
}
public override VersionsRequest.OutputType HandleVersions(VersionsRequest.InputType input)
{
VersionsRequest.OutputType result = new VersionsRequest.OutputType();
result.Enabled = false;
return result;
}
}
}

Some files were not shown because too many files have changed in this diff Show more