Compare commits

...

13 Commits

Author SHA1 Message Date
Kenn Jacobsen 7393d9c372 V7: Change the priority of the tree node annotations for contai… (#6083) 2019-08-09 16:44:43 +02:00
Kenn Jacobsen 79c4d7797c Fix the disabled upload button in media picker 2019-08-09 16:40:08 +02:00
Peter Keating 01a895bbf7 Fix notifications not sending when user has multiple of same type
When a user has multiple notifications of the same type, the user may
not receive the notification depending on the order which the
notification was setup. To fix this the notification logic has changed
from looping over users to looping over notifications.

Fixes #4713.
2019-08-08 19:48:39 +02:00
Shannon 4fa523db43 Merge branch 'v7/7.15' into v7/dev 2019-07-24 19:23:58 +10:00
Shannon 186460ac08 removes refs from old packages.umbraco.org 2019-07-24 19:23:05 +10:00
Bjarke Berg 2ec8281163 Merge pull request #5865 from skttl/5848-media-folders-not-showing
5848: changes innerjoin to left join, to allow folders in sql query
2019-07-16 07:24:46 +02:00
Shannon Deminick 2ac5e61e44 Merge pull request #5881 from bjarnef/dev-v7-link-picker-url-anchors
v7: Fix link picker url and anchors
2019-07-15 13:02:47 +10:00
Bjarne Fyrstenborg c47a08b553 Add overload for NiceUrl 2019-07-13 16:40:01 +02:00
Bjarne Fyrstenborg de9241bcf5 Add UmbracoHelper overload methods to get url by guid 2019-07-13 14:50:25 +02:00
Bjarne Fyrstenborg 7c03fe3c1f Adjust parameter 2019-07-13 14:49:35 +02:00
Bjarne Fyrstenborg 82eb241119 Add overload method for Udi 2019-07-13 14:49:05 +02:00
Bjarne Fyrstenborg 1073e6257c Adjust comments 2019-07-13 14:48:35 +02:00
skttl d31e71a838 changes innerjoin to left join, to allow folders in sql query 2019-07-12 07:33:17 +02:00
14 changed files with 117 additions and 2151 deletions
@@ -124,40 +124,52 @@ namespace Umbraco.Core.Services
var notifications = GetUsersNotifications(users.Select(x => x.Id), action, Enumerable.Empty<int>(), Constants.ObjectTypes.DocumentGuid).ToList();
if (notifications.Count == 0) break;
var i = 0;
foreach (var user in users)
{
// continue if there's no notification for this user
if (notifications[i].UserId != user.Id) continue; // next user
for (var j = 0; j < entitiesL.Count; j++)
{
var content = entitiesL[j];
var path = paths[j];
// test if the notification applies to the path ie to this entity
if (path.Contains(notifications[i].EntityId) == false) continue; // next entity
if (prevVersionDictionary.ContainsKey(content.Id) == false)
{
prevVersionDictionary[content.Id] = GetPreviousVersion(content.Id);
}
// queue notification
var req = CreateNotificationRequest(operatingUser, user, content, prevVersionDictionary[content.Id], actionName, http, createSubject, createBody);
Enqueue(req);
}
// skip other notifications for this user, essentially this means moving i to the next index of notifications
// for the next user.
do
{
i++;
} while (i < notifications.Count && notifications[i].UserId == user.Id);
if (i >= notifications.Count) break; // break if no more notifications
}
while (notifications.Count > 0)
{
var notification = notifications[0];
var isMatched = false;
// grab user whose associated to the notification
var user = users.Where(x => x.Id == notification.UserId).FirstOrDefault();
if (user == null)
{
notifications.RemoveAll(x => x.UserId == notification.UserId);
}
for (var j = 0; j < entitiesL.Count; j++)
{
var content = entitiesL[j];
var path = paths[j];
// test if the notification applies to the path ie to this entity
if (path.Contains(notification.EntityId) == false) continue; // next entity
isMatched = true;
if (prevVersionDictionary.ContainsKey(content.Id) == false)
{
prevVersionDictionary[content.Id] = GetPreviousVersion(content.Id);
}
// queue notification
var req = CreateNotificationRequest(operatingUser, user, content, prevVersionDictionary[content.Id], actionName, http, createSubject, createBody);
Enqueue(req);
// don't process any further entities as a notification has been sent
break;
}
// when a match has been found, skip other notifications for user.
if (isMatched)
{
notifications.RemoveAll(x => x.UserId == notification.UserId);
continue;
}
notifications.Remove(notification);
}
// load more users if any
id = users.Count == pagesz ? users.Last().Id + 1 : -1;
@@ -172,7 +172,7 @@ function entityResource($q, $http, umbRequestHelper) {
umbRequestHelper.getApiUrl(
"entityApiBaseUrl",
"GetUrlAndAnchors",
{ id: id })),
[{ id: id }])),
'Failed to retrieve url and anchors data for id ' + id);
},
+23 -21
View File
@@ -327,27 +327,6 @@ li.root > div > a.umb-options {
div.not-published > i.icon,div.not-published > a{
opacity: 0.6;
}
div.protected:before{
content:"\e256";
font-family: 'icomoon';
color: @red;
position: absolute;
font-size: 20px;
padding-left: 7px;
padding-top: 7px;
bottom: 0;
}
div.has-unpublished-version:before{
content:"\e25a";
font-family: 'icomoon';
color: @green;
position: absolute;
font-size: 20px;
padding-left: 7px;
padding-top: 7px;
bottom: 0;
}
div.not-allowed > i.icon,div.not-allowed > a{
cursor: not-allowed;
@@ -380,6 +359,29 @@ div.locked:before{
bottom: 0;
}
div.has-unpublished-version:before {
content: "\e25a";
font-family: 'icomoon';
color: @green;
position: absolute;
font-size: 20px;
padding-left: 7px;
padding-top: 7px;
bottom: 0;
}
div.protected:before {
content: "\e256";
font-family: 'icomoon';
color: @red;
position: absolute;
font-size: 20px;
padding-left: 7px;
padding-top: 7px;
bottom: 0;
}
.umb-tree li div.no-access .umb-tree-icon,
.umb-tree li div.no-access .root-link,
.umb-tree li div.no-access .umb-tree-item__label {
@@ -33,24 +33,23 @@ angular.module("umbraco").controller("Umbraco.Overlays.LinkPickerController",
if (dialogOptions.currentTarget) {
// clone the current target so we don't accidentally update the caller's model while manipulating $scope.model.target
$scope.model.target = angular.copy(dialogOptions.currentTarget);
//if we have a node ID, we fetch the current node to build the form data
// if we have a node ID, we fetch the current node to build the form data
if ($scope.model.target.id || $scope.model.target.udi) {
//will be either a udi or an int
// will be either a udi or an int
var id = $scope.model.target.udi ? $scope.model.target.udi : $scope.model.target.id;
// is it a content link?
if (!$scope.model.target.isMedia) {
// get the content path
entityResource.getPath(id, "Document").then(function (path) {
//now sync the tree to this path
// now sync the tree to this path
$scope.dialogTreeEventHandler.syncTree({
path: path,
tree: "content"
});
});
entityResource.getUrlAndAnchors(id).then(function(resp){
$scope.anchorValues = resp.anchorValues;
$scope.model.target.url = resp.url;
@@ -267,7 +267,7 @@ angular.module("umbraco")
// also make sure the node is not trashed
if (nodePath.indexOf($scope.startNodeId.toString()) !== -1 && node.trashed === false) {
$scope.gotoFolder({ id: $scope.lastOpenedNode, name: "Media", icon: "icon-folder" });
$scope.gotoFolder({ id: $scope.lastOpenedNode, name: "Media", icon: "icon-folder", path: node.path });
return true;
} else {
$scope.gotoFolder({ id: $scope.startNodeId, name: "Media", icon: "icon-folder" });
+10 -1
View File
@@ -56,6 +56,7 @@ namespace Umbraco.Web.Editors
//id is passed in eventually we'll probably want to support GUID + Udi too
new ParameterSwapControllerActionSelector.ParameterSwapInfo("GetPagedChildren", "id", typeof(int), typeof(string)),
new ParameterSwapControllerActionSelector.ParameterSwapInfo("GetPath", "id", typeof(int), typeof(Guid), typeof(Udi)),
new ParameterSwapControllerActionSelector.ParameterSwapInfo("GetUrlAndAnchors", "id", typeof(int), typeof(Guid), typeof(Udi)),
new ParameterSwapControllerActionSelector.ParameterSwapInfo("GetById", "id", typeof(int), typeof(Guid), typeof(Udi)),
new ParameterSwapControllerActionSelector.ParameterSwapInfo("GetByIds", "ids", typeof(int[]), typeof(Guid[]), typeof(Udi[]))));
}
@@ -281,9 +282,17 @@ namespace Umbraco.Web.Editors
publishedContentExists: i => Umbraco.TypedContent(i) != null);
}
[HttpGet]
public UrlAndAnchors GetUrlAndAnchors(Udi id)
{
var nodeId = Umbraco.GetIdForUdi(id);
var url = Umbraco.Url(nodeId);
var anchorValues = Services.ContentService.GetAnchorValuesFromRTEs(nodeId);
return new UrlAndAnchors(url, anchorValues);
}
[HttpGet]
public UrlAndAnchors GetUrlAndAnchors([FromUri]int id)
public UrlAndAnchors GetUrlAndAnchors(int id)
{
var url = Umbraco.Url(id);
var anchorValues = Services.ContentService.GetAnchorValuesFromRTEs(id);
@@ -11,8 +11,5 @@
<Setting Name="test" Type="System.String" Scope="Application">
<Value Profile="(Default)">Somthing</Value>
</Setting>
<Setting Name="umbraco_org_umbraco_our_Repository" Type="(Web Service URL)" Scope="Application">
<Value Profile="(Default)">https://our.umbraco.com/umbraco/webservices/api/repository.asmx</Value>
</Setting>
</Settings>
</SettingsFile>
+1 -11
View File
@@ -12,7 +12,7 @@ namespace Umbraco.Web.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.2.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@@ -50,15 +50,5 @@ namespace Umbraco.Web.Properties {
return ((string)(this["test"]));
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)]
[global::System.Configuration.DefaultSettingValueAttribute("https://our.umbraco.com/umbraco/webservices/api/repository.asmx")]
public string umbraco_org_umbraco_our_Repository {
get {
return ((string)(this["umbraco_org_umbraco_our_Repository"]));
}
}
}
}
-22
View File
@@ -814,11 +814,6 @@
<Compile Include="umbraco.presentation\umbraco\Trees\loadPackager.cs" />
<Compile Include="PublishedCache\XmlPublishedCache\XmlCacheFilePersister.cs" />
<Compile Include="UmbracoComponentRenderer.cs" />
<Compile Include="Web References\org.umbraco.our\Reference.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Reference.map</DependentUpon>
</Compile>
<Compile Include="WebApi\AngularJsonMediaTypeFormatter.cs" />
<Compile Include="WebApi\AngularJsonOnlyConfigurationAttribute.cs" />
<Compile Include="WebApi\Binders\BlueprintItemBinder.cs" />
@@ -1830,11 +1825,6 @@
<Link>Mvc\web.config</Link>
</None>
<None Include="packages.config" />
<None Include="Web References\org.umbraco.our\Reference.map">
<Generator>MSDiscoCodeGenerator</Generator>
<LastGenOutput>Reference.cs</LastGenOutput>
</None>
<None Include="Web References\org.umbraco.our\repository.disco" />
<EmbeddedResource Include="UI\JavaScript\Main.js" />
<EmbeddedResource Include="UI\JavaScript\JsInitialize.js" />
<EmbeddedResource Include="UI\JavaScript\ServerVariables.js" />
@@ -1885,7 +1875,6 @@
<Content Include="umbraco.presentation\umbraco\members\ViewMembers.aspx" />
<Content Include="umbraco.presentation\umbraco\plugins\tinymce3\tinymce3tinymceCompress.aspx" />
<None Include="app.config" />
<None Include="Web References\org.umbraco.our\repository.wsdl" />
<None Include="Web References\org.umbraco.update\UpgradeResult.datasource">
<DependentUpon>Reference.map</DependentUpon>
</None>
@@ -1979,17 +1968,6 @@
<WebReferences Include="Web References\" />
</ItemGroup>
<ItemGroup>
<WebReferenceUrl Include="https://our.umbraco.com/umbraco/webservices/api/repository.asmx">
<UrlBehavior>Dynamic</UrlBehavior>
<RelPath>Web References\org.umbraco.our\</RelPath>
<UpdateFromURL>https://our.umbraco.com/umbraco/webservices/api/repository.asmx</UpdateFromURL>
<ServiceLocationURL>
</ServiceLocationURL>
<CachedDynamicPropName>
</CachedDynamicPropName>
<CachedAppSettingsObjectName>Settings</CachedAppSettingsObjectName>
<CachedSettingsPropName>umbraco_org_umbraco_our_Repository</CachedSettingsPropName>
</WebReferenceUrl>
<WebReferenceUrl Include="http://update.umbraco.org/checkforupgrade.asmx">
<UrlBehavior>Dynamic</UrlBehavior>
<RelPath>Web References\org.umbraco.update\</RelPath>
+33
View File
@@ -492,6 +492,18 @@ namespace Umbraco.Web
return Url(nodeId);
}
/// <summary>
/// Returns a string with a friendly url from a node.
/// IE.: Instead of having /482 (id) as an url, you can have
/// /screenshots/developer/macros (spoken url)
/// </summary>
/// <param name="guid">Identifier for the node that should be returned</param>
/// <returns>String with a friendly url from a node</returns>
public string NiceUrl(Guid guid)
{
return Url(guid);
}
/// <summary>
/// Gets the url of a content identified by its identifier.
/// </summary>
@@ -502,6 +514,16 @@ namespace Umbraco.Web
return UrlProvider.GetUrl(contentId);
}
/// <summary>
/// Gets the url of a content identified by its identifier.
/// </summary>
/// <param name="contentGuid">The content identifier.</param>
/// <returns>The url for the content.</returns>
public string Url(Guid contentGuid)
{
return UrlProvider.GetUrl(contentGuid);
}
/// <summary>
/// Gets the url of a content identified by its identifier, in a specified mode.
/// </summary>
@@ -513,6 +535,17 @@ namespace Umbraco.Web
return UrlProvider.GetUrl(contentId, mode);
}
/// <summary>
/// Gets the url of a content identified by its identifier, in a specified mode.
/// </summary>
/// <param name="contentGuid">The content identifier.</param>
/// <param name="mode">The mode.</param>
/// <returns>The url for the content.</returns>
public string Url(Guid contentGuid, UrlProviderMode mode)
{
return UrlProvider.GetUrl(contentGuid, mode);
}
/// <summary>
/// This method will always add the domain to the path if the hostnames are set up correctly.
/// </summary>
File diff suppressed because it is too large Load Diff
@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Results>
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="https://our.umbraco.com/umbraco/webservices/api/repository.asmx?wsdl" filename="repository.wsdl" />
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.DiscoveryDocumentReference" url="https://our.umbraco.com/umbraco/webservices/api/repository.asmx?disco" filename="repository.disco" />
</Results>
</DiscoveryClientResultsFile>
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
<contractRef ref="https://our.umbraco.com/umbraco/webservices/api/repository.asmx?wsdl" docRef="https://our.umbraco.com/umbraco/webservices/api/repository.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
<soap address="https://our.umbraco.com/umbraco/webservices/api/repository.asmx" xmlns:q1="http://packages.umbraco.org/webservices/" binding="q1:RepositorySoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
<soap address="https://our.umbraco.com/umbraco/webservices/api/repository.asmx" xmlns:q2="http://packages.umbraco.org/webservices/" binding="q2:RepositorySoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
</discovery>
@@ -1,995 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://packages.umbraco.org/webservices/" xmlns:s1="http://microsoft.com/wsdl/types/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s2="http://packages.umbraco.org/webservices/AbstractTypes" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://packages.umbraco.org/webservices/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://packages.umbraco.org/webservices/">
<s:import namespace="http://microsoft.com/wsdl/types/" />
<s:element name="Categories">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="repositoryGuid" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="CategoriesResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="CategoriesResult" type="tns:ArrayOfCategory" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfCategory">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Category" nillable="true" type="tns:Category" />
</s:sequence>
</s:complexType>
<s:complexType name="Category">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Text" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Description" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Url" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="Id" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="Packages" type="tns:ArrayOfPackage" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfPackage">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Package" nillable="true" type="tns:Package" />
</s:sequence>
</s:complexType>
<s:complexType name="Package">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="RepoGuid" type="s1:guid" />
<s:element minOccurs="0" maxOccurs="1" name="Text" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Description" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Icon" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Thumbnail" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Documentation" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Demo" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="Accepted" type="s:boolean" />
<s:element minOccurs="1" maxOccurs="1" name="IsModule" type="s:boolean" />
<s:element minOccurs="1" maxOccurs="1" name="EditorsPick" type="s:boolean" />
<s:element minOccurs="1" maxOccurs="1" name="Protected" type="s:boolean" />
<s:element minOccurs="1" maxOccurs="1" name="HasUpgrade" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="UpgradeVersion" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="UpgradeReadMe" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Url" type="s:string" />
</s:sequence>
</s:complexType>
<s:element name="Modules">
<s:complexType />
</s:element>
<s:element name="ModulesResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ModulesResult" type="tns:ArrayOfPackage" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ModulesCategorized">
<s:complexType />
</s:element>
<s:element name="ModulesCategorizedResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ModulesCategorizedResult" type="tns:ArrayOfCategory" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="Nitros">
<s:complexType />
</s:element>
<s:element name="NitrosResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="NitrosResult" type="tns:ArrayOfPackage" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="NitrosCategorized">
<s:complexType />
</s:element>
<s:element name="NitrosCategorizedResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="NitrosCategorizedResult" type="tns:ArrayOfCategory" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="authenticate">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="email" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="md5Password" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="authenticateResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="authenticateResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="fetchPackage">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="packageGuid" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="fetchPackageResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="fetchPackageResult" type="s:base64Binary" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="fetchPackageByVersion">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="packageGuid" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="repoVersion" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="fetchPackageByVersionResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="fetchPackageByVersionResult" type="s:base64Binary" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="fetchProtectedPackage">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="packageGuid" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="memberKey" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="fetchProtectedPackageResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="fetchProtectedPackageResult" type="s:base64Binary" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="SubmitPackage">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="repositoryGuid" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="authorGuid" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="packageGuid" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="packageFile" type="s:base64Binary" />
<s:element minOccurs="0" maxOccurs="1" name="packageDoc" type="s:base64Binary" />
<s:element minOccurs="0" maxOccurs="1" name="packageThumbnail" type="s:base64Binary" />
<s:element minOccurs="0" maxOccurs="1" name="name" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="author" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="authorUrl" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="description" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="SubmitPackageResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="SubmitPackageResult" type="tns:SubmitStatus" />
</s:sequence>
</s:complexType>
</s:element>
<s:simpleType name="SubmitStatus">
<s:restriction base="s:string">
<s:enumeration value="Complete" />
<s:enumeration value="Exists" />
<s:enumeration value="NoAccess" />
<s:enumeration value="Error" />
</s:restriction>
</s:simpleType>
<s:element name="PackageByGuid">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="packageGuid" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="PackageByGuidResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PackageByGuidResult" type="tns:Package" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ArrayOfCategory" nillable="true" type="tns:ArrayOfCategory" />
<s:element name="ArrayOfPackage" nillable="true" type="tns:ArrayOfPackage" />
<s:element name="string" nillable="true" type="s:string" />
<s:element name="base64Binary" nillable="true" type="s:base64Binary" />
<s:element name="SubmitStatus" type="tns:SubmitStatus" />
<s:element name="Package" nillable="true" type="tns:Package" />
</s:schema>
<s:schema elementFormDefault="qualified" targetNamespace="http://microsoft.com/wsdl/types/">
<s:simpleType name="guid">
<s:restriction base="s:string">
<s:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" />
</s:restriction>
</s:simpleType>
</s:schema>
<s:schema targetNamespace="http://packages.umbraco.org/webservices/AbstractTypes">
<s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<s:complexType name="StringArray">
<s:complexContent mixed="false">
<s:restriction base="soapenc:Array">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="String" type="s:string" />
</s:sequence>
</s:restriction>
</s:complexContent>
</s:complexType>
</s:schema>
</wsdl:types>
<wsdl:message name="CategoriesSoapIn">
<wsdl:part name="parameters" element="tns:Categories" />
</wsdl:message>
<wsdl:message name="CategoriesSoapOut">
<wsdl:part name="parameters" element="tns:CategoriesResponse" />
</wsdl:message>
<wsdl:message name="ModulesSoapIn">
<wsdl:part name="parameters" element="tns:Modules" />
</wsdl:message>
<wsdl:message name="ModulesSoapOut">
<wsdl:part name="parameters" element="tns:ModulesResponse" />
</wsdl:message>
<wsdl:message name="ModulesCategorizedSoapIn">
<wsdl:part name="parameters" element="tns:ModulesCategorized" />
</wsdl:message>
<wsdl:message name="ModulesCategorizedSoapOut">
<wsdl:part name="parameters" element="tns:ModulesCategorizedResponse" />
</wsdl:message>
<wsdl:message name="NitrosSoapIn">
<wsdl:part name="parameters" element="tns:Nitros" />
</wsdl:message>
<wsdl:message name="NitrosSoapOut">
<wsdl:part name="parameters" element="tns:NitrosResponse" />
</wsdl:message>
<wsdl:message name="NitrosCategorizedSoapIn">
<wsdl:part name="parameters" element="tns:NitrosCategorized" />
</wsdl:message>
<wsdl:message name="NitrosCategorizedSoapOut">
<wsdl:part name="parameters" element="tns:NitrosCategorizedResponse" />
</wsdl:message>
<wsdl:message name="authenticateSoapIn">
<wsdl:part name="parameters" element="tns:authenticate" />
</wsdl:message>
<wsdl:message name="authenticateSoapOut">
<wsdl:part name="parameters" element="tns:authenticateResponse" />
</wsdl:message>
<wsdl:message name="fetchPackageSoapIn">
<wsdl:part name="parameters" element="tns:fetchPackage" />
</wsdl:message>
<wsdl:message name="fetchPackageSoapOut">
<wsdl:part name="parameters" element="tns:fetchPackageResponse" />
</wsdl:message>
<wsdl:message name="fetchPackageByVersionSoapIn">
<wsdl:part name="parameters" element="tns:fetchPackageByVersion" />
</wsdl:message>
<wsdl:message name="fetchPackageByVersionSoapOut">
<wsdl:part name="parameters" element="tns:fetchPackageByVersionResponse" />
</wsdl:message>
<wsdl:message name="fetchProtectedPackageSoapIn">
<wsdl:part name="parameters" element="tns:fetchProtectedPackage" />
</wsdl:message>
<wsdl:message name="fetchProtectedPackageSoapOut">
<wsdl:part name="parameters" element="tns:fetchProtectedPackageResponse" />
</wsdl:message>
<wsdl:message name="SubmitPackageSoapIn">
<wsdl:part name="parameters" element="tns:SubmitPackage" />
</wsdl:message>
<wsdl:message name="SubmitPackageSoapOut">
<wsdl:part name="parameters" element="tns:SubmitPackageResponse" />
</wsdl:message>
<wsdl:message name="PackageByGuidSoapIn">
<wsdl:part name="parameters" element="tns:PackageByGuid" />
</wsdl:message>
<wsdl:message name="PackageByGuidSoapOut">
<wsdl:part name="parameters" element="tns:PackageByGuidResponse" />
</wsdl:message>
<wsdl:message name="CategoriesHttpGetIn">
<wsdl:part name="repositoryGuid" type="s:string" />
</wsdl:message>
<wsdl:message name="CategoriesHttpGetOut">
<wsdl:part name="Body" element="tns:ArrayOfCategory" />
</wsdl:message>
<wsdl:message name="ModulesHttpGetIn" />
<wsdl:message name="ModulesHttpGetOut">
<wsdl:part name="Body" element="tns:ArrayOfPackage" />
</wsdl:message>
<wsdl:message name="ModulesCategorizedHttpGetIn" />
<wsdl:message name="ModulesCategorizedHttpGetOut">
<wsdl:part name="Body" element="tns:ArrayOfCategory" />
</wsdl:message>
<wsdl:message name="NitrosHttpGetIn" />
<wsdl:message name="NitrosHttpGetOut">
<wsdl:part name="Body" element="tns:ArrayOfPackage" />
</wsdl:message>
<wsdl:message name="NitrosCategorizedHttpGetIn" />
<wsdl:message name="NitrosCategorizedHttpGetOut">
<wsdl:part name="Body" element="tns:ArrayOfCategory" />
</wsdl:message>
<wsdl:message name="authenticateHttpGetIn">
<wsdl:part name="email" type="s:string" />
<wsdl:part name="md5Password" type="s:string" />
</wsdl:message>
<wsdl:message name="authenticateHttpGetOut">
<wsdl:part name="Body" element="tns:string" />
</wsdl:message>
<wsdl:message name="fetchPackageHttpGetIn">
<wsdl:part name="packageGuid" type="s:string" />
</wsdl:message>
<wsdl:message name="fetchPackageHttpGetOut">
<wsdl:part name="Body" element="tns:base64Binary" />
</wsdl:message>
<wsdl:message name="fetchPackageByVersionHttpGetIn">
<wsdl:part name="packageGuid" type="s:string" />
<wsdl:part name="repoVersion" type="s:string" />
</wsdl:message>
<wsdl:message name="fetchPackageByVersionHttpGetOut">
<wsdl:part name="Body" element="tns:base64Binary" />
</wsdl:message>
<wsdl:message name="fetchProtectedPackageHttpGetIn">
<wsdl:part name="packageGuid" type="s:string" />
<wsdl:part name="memberKey" type="s:string" />
</wsdl:message>
<wsdl:message name="fetchProtectedPackageHttpGetOut">
<wsdl:part name="Body" element="tns:base64Binary" />
</wsdl:message>
<wsdl:message name="SubmitPackageHttpGetIn">
<wsdl:part name="repositoryGuid" type="s:string" />
<wsdl:part name="authorGuid" type="s:string" />
<wsdl:part name="packageGuid" type="s:string" />
<wsdl:part name="packageFile" type="s2:StringArray" />
<wsdl:part name="packageDoc" type="s2:StringArray" />
<wsdl:part name="packageThumbnail" type="s2:StringArray" />
<wsdl:part name="name" type="s:string" />
<wsdl:part name="author" type="s:string" />
<wsdl:part name="authorUrl" type="s:string" />
<wsdl:part name="description" type="s:string" />
</wsdl:message>
<wsdl:message name="SubmitPackageHttpGetOut">
<wsdl:part name="Body" element="tns:SubmitStatus" />
</wsdl:message>
<wsdl:message name="PackageByGuidHttpGetIn">
<wsdl:part name="packageGuid" type="s:string" />
</wsdl:message>
<wsdl:message name="PackageByGuidHttpGetOut">
<wsdl:part name="Body" element="tns:Package" />
</wsdl:message>
<wsdl:message name="CategoriesHttpPostIn">
<wsdl:part name="repositoryGuid" type="s:string" />
</wsdl:message>
<wsdl:message name="CategoriesHttpPostOut">
<wsdl:part name="Body" element="tns:ArrayOfCategory" />
</wsdl:message>
<wsdl:message name="ModulesHttpPostIn" />
<wsdl:message name="ModulesHttpPostOut">
<wsdl:part name="Body" element="tns:ArrayOfPackage" />
</wsdl:message>
<wsdl:message name="ModulesCategorizedHttpPostIn" />
<wsdl:message name="ModulesCategorizedHttpPostOut">
<wsdl:part name="Body" element="tns:ArrayOfCategory" />
</wsdl:message>
<wsdl:message name="NitrosHttpPostIn" />
<wsdl:message name="NitrosHttpPostOut">
<wsdl:part name="Body" element="tns:ArrayOfPackage" />
</wsdl:message>
<wsdl:message name="NitrosCategorizedHttpPostIn" />
<wsdl:message name="NitrosCategorizedHttpPostOut">
<wsdl:part name="Body" element="tns:ArrayOfCategory" />
</wsdl:message>
<wsdl:message name="authenticateHttpPostIn">
<wsdl:part name="email" type="s:string" />
<wsdl:part name="md5Password" type="s:string" />
</wsdl:message>
<wsdl:message name="authenticateHttpPostOut">
<wsdl:part name="Body" element="tns:string" />
</wsdl:message>
<wsdl:message name="fetchPackageHttpPostIn">
<wsdl:part name="packageGuid" type="s:string" />
</wsdl:message>
<wsdl:message name="fetchPackageHttpPostOut">
<wsdl:part name="Body" element="tns:base64Binary" />
</wsdl:message>
<wsdl:message name="fetchPackageByVersionHttpPostIn">
<wsdl:part name="packageGuid" type="s:string" />
<wsdl:part name="repoVersion" type="s:string" />
</wsdl:message>
<wsdl:message name="fetchPackageByVersionHttpPostOut">
<wsdl:part name="Body" element="tns:base64Binary" />
</wsdl:message>
<wsdl:message name="fetchProtectedPackageHttpPostIn">
<wsdl:part name="packageGuid" type="s:string" />
<wsdl:part name="memberKey" type="s:string" />
</wsdl:message>
<wsdl:message name="fetchProtectedPackageHttpPostOut">
<wsdl:part name="Body" element="tns:base64Binary" />
</wsdl:message>
<wsdl:message name="SubmitPackageHttpPostIn">
<wsdl:part name="repositoryGuid" type="s:string" />
<wsdl:part name="authorGuid" type="s:string" />
<wsdl:part name="packageGuid" type="s:string" />
<wsdl:part name="packageFile" type="s2:StringArray" />
<wsdl:part name="packageDoc" type="s2:StringArray" />
<wsdl:part name="packageThumbnail" type="s2:StringArray" />
<wsdl:part name="name" type="s:string" />
<wsdl:part name="author" type="s:string" />
<wsdl:part name="authorUrl" type="s:string" />
<wsdl:part name="description" type="s:string" />
</wsdl:message>
<wsdl:message name="SubmitPackageHttpPostOut">
<wsdl:part name="Body" element="tns:SubmitStatus" />
</wsdl:message>
<wsdl:message name="PackageByGuidHttpPostIn">
<wsdl:part name="packageGuid" type="s:string" />
</wsdl:message>
<wsdl:message name="PackageByGuidHttpPostOut">
<wsdl:part name="Body" element="tns:Package" />
</wsdl:message>
<wsdl:portType name="RepositorySoap">
<wsdl:operation name="Categories">
<wsdl:input message="tns:CategoriesSoapIn" />
<wsdl:output message="tns:CategoriesSoapOut" />
</wsdl:operation>
<wsdl:operation name="Modules">
<wsdl:input message="tns:ModulesSoapIn" />
<wsdl:output message="tns:ModulesSoapOut" />
</wsdl:operation>
<wsdl:operation name="ModulesCategorized">
<wsdl:input message="tns:ModulesCategorizedSoapIn" />
<wsdl:output message="tns:ModulesCategorizedSoapOut" />
</wsdl:operation>
<wsdl:operation name="Nitros">
<wsdl:input message="tns:NitrosSoapIn" />
<wsdl:output message="tns:NitrosSoapOut" />
</wsdl:operation>
<wsdl:operation name="NitrosCategorized">
<wsdl:input message="tns:NitrosCategorizedSoapIn" />
<wsdl:output message="tns:NitrosCategorizedSoapOut" />
</wsdl:operation>
<wsdl:operation name="authenticate">
<wsdl:input message="tns:authenticateSoapIn" />
<wsdl:output message="tns:authenticateSoapOut" />
</wsdl:operation>
<wsdl:operation name="fetchPackage">
<wsdl:input message="tns:fetchPackageSoapIn" />
<wsdl:output message="tns:fetchPackageSoapOut" />
</wsdl:operation>
<wsdl:operation name="fetchPackageByVersion">
<wsdl:input message="tns:fetchPackageByVersionSoapIn" />
<wsdl:output message="tns:fetchPackageByVersionSoapOut" />
</wsdl:operation>
<wsdl:operation name="fetchProtectedPackage">
<wsdl:input message="tns:fetchProtectedPackageSoapIn" />
<wsdl:output message="tns:fetchProtectedPackageSoapOut" />
</wsdl:operation>
<wsdl:operation name="SubmitPackage">
<wsdl:input message="tns:SubmitPackageSoapIn" />
<wsdl:output message="tns:SubmitPackageSoapOut" />
</wsdl:operation>
<wsdl:operation name="PackageByGuid">
<wsdl:input message="tns:PackageByGuidSoapIn" />
<wsdl:output message="tns:PackageByGuidSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="RepositoryHttpGet">
<wsdl:operation name="Categories">
<wsdl:input message="tns:CategoriesHttpGetIn" />
<wsdl:output message="tns:CategoriesHttpGetOut" />
</wsdl:operation>
<wsdl:operation name="Modules">
<wsdl:input message="tns:ModulesHttpGetIn" />
<wsdl:output message="tns:ModulesHttpGetOut" />
</wsdl:operation>
<wsdl:operation name="ModulesCategorized">
<wsdl:input message="tns:ModulesCategorizedHttpGetIn" />
<wsdl:output message="tns:ModulesCategorizedHttpGetOut" />
</wsdl:operation>
<wsdl:operation name="Nitros">
<wsdl:input message="tns:NitrosHttpGetIn" />
<wsdl:output message="tns:NitrosHttpGetOut" />
</wsdl:operation>
<wsdl:operation name="NitrosCategorized">
<wsdl:input message="tns:NitrosCategorizedHttpGetIn" />
<wsdl:output message="tns:NitrosCategorizedHttpGetOut" />
</wsdl:operation>
<wsdl:operation name="authenticate">
<wsdl:input message="tns:authenticateHttpGetIn" />
<wsdl:output message="tns:authenticateHttpGetOut" />
</wsdl:operation>
<wsdl:operation name="fetchPackage">
<wsdl:input message="tns:fetchPackageHttpGetIn" />
<wsdl:output message="tns:fetchPackageHttpGetOut" />
</wsdl:operation>
<wsdl:operation name="fetchPackageByVersion">
<wsdl:input message="tns:fetchPackageByVersionHttpGetIn" />
<wsdl:output message="tns:fetchPackageByVersionHttpGetOut" />
</wsdl:operation>
<wsdl:operation name="fetchProtectedPackage">
<wsdl:input message="tns:fetchProtectedPackageHttpGetIn" />
<wsdl:output message="tns:fetchProtectedPackageHttpGetOut" />
</wsdl:operation>
<wsdl:operation name="SubmitPackage">
<wsdl:input message="tns:SubmitPackageHttpGetIn" />
<wsdl:output message="tns:SubmitPackageHttpGetOut" />
</wsdl:operation>
<wsdl:operation name="PackageByGuid">
<wsdl:input message="tns:PackageByGuidHttpGetIn" />
<wsdl:output message="tns:PackageByGuidHttpGetOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="RepositoryHttpPost">
<wsdl:operation name="Categories">
<wsdl:input message="tns:CategoriesHttpPostIn" />
<wsdl:output message="tns:CategoriesHttpPostOut" />
</wsdl:operation>
<wsdl:operation name="Modules">
<wsdl:input message="tns:ModulesHttpPostIn" />
<wsdl:output message="tns:ModulesHttpPostOut" />
</wsdl:operation>
<wsdl:operation name="ModulesCategorized">
<wsdl:input message="tns:ModulesCategorizedHttpPostIn" />
<wsdl:output message="tns:ModulesCategorizedHttpPostOut" />
</wsdl:operation>
<wsdl:operation name="Nitros">
<wsdl:input message="tns:NitrosHttpPostIn" />
<wsdl:output message="tns:NitrosHttpPostOut" />
</wsdl:operation>
<wsdl:operation name="NitrosCategorized">
<wsdl:input message="tns:NitrosCategorizedHttpPostIn" />
<wsdl:output message="tns:NitrosCategorizedHttpPostOut" />
</wsdl:operation>
<wsdl:operation name="authenticate">
<wsdl:input message="tns:authenticateHttpPostIn" />
<wsdl:output message="tns:authenticateHttpPostOut" />
</wsdl:operation>
<wsdl:operation name="fetchPackage">
<wsdl:input message="tns:fetchPackageHttpPostIn" />
<wsdl:output message="tns:fetchPackageHttpPostOut" />
</wsdl:operation>
<wsdl:operation name="fetchPackageByVersion">
<wsdl:input message="tns:fetchPackageByVersionHttpPostIn" />
<wsdl:output message="tns:fetchPackageByVersionHttpPostOut" />
</wsdl:operation>
<wsdl:operation name="fetchProtectedPackage">
<wsdl:input message="tns:fetchProtectedPackageHttpPostIn" />
<wsdl:output message="tns:fetchProtectedPackageHttpPostOut" />
</wsdl:operation>
<wsdl:operation name="SubmitPackage">
<wsdl:input message="tns:SubmitPackageHttpPostIn" />
<wsdl:output message="tns:SubmitPackageHttpPostOut" />
</wsdl:operation>
<wsdl:operation name="PackageByGuid">
<wsdl:input message="tns:PackageByGuidHttpPostIn" />
<wsdl:output message="tns:PackageByGuidHttpPostOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="RepositorySoap" type="tns:RepositorySoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="Categories">
<soap:operation soapAction="http://packages.umbraco.org/webservices/Categories" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Modules">
<soap:operation soapAction="http://packages.umbraco.org/webservices/Modules" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="ModulesCategorized">
<soap:operation soapAction="http://packages.umbraco.org/webservices/ModulesCategorized" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Nitros">
<soap:operation soapAction="http://packages.umbraco.org/webservices/Nitros" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="NitrosCategorized">
<soap:operation soapAction="http://packages.umbraco.org/webservices/NitrosCategorized" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="authenticate">
<soap:operation soapAction="http://packages.umbraco.org/webservices/authenticate" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fetchPackage">
<soap:operation soapAction="http://packages.umbraco.org/webservices/fetchPackage" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fetchPackageByVersion">
<soap:operation soapAction="http://packages.umbraco.org/webservices/fetchPackageByVersion" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fetchProtectedPackage">
<soap:operation soapAction="http://packages.umbraco.org/webservices/fetchProtectedPackage" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="SubmitPackage">
<soap:operation soapAction="http://packages.umbraco.org/webservices/SubmitPackage" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="PackageByGuid">
<soap:operation soapAction="http://packages.umbraco.org/webservices/PackageByGuid" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="RepositorySoap12" type="tns:RepositorySoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="Categories">
<soap12:operation soapAction="http://packages.umbraco.org/webservices/Categories" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Modules">
<soap12:operation soapAction="http://packages.umbraco.org/webservices/Modules" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="ModulesCategorized">
<soap12:operation soapAction="http://packages.umbraco.org/webservices/ModulesCategorized" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Nitros">
<soap12:operation soapAction="http://packages.umbraco.org/webservices/Nitros" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="NitrosCategorized">
<soap12:operation soapAction="http://packages.umbraco.org/webservices/NitrosCategorized" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="authenticate">
<soap12:operation soapAction="http://packages.umbraco.org/webservices/authenticate" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fetchPackage">
<soap12:operation soapAction="http://packages.umbraco.org/webservices/fetchPackage" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fetchPackageByVersion">
<soap12:operation soapAction="http://packages.umbraco.org/webservices/fetchPackageByVersion" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fetchProtectedPackage">
<soap12:operation soapAction="http://packages.umbraco.org/webservices/fetchProtectedPackage" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="SubmitPackage">
<soap12:operation soapAction="http://packages.umbraco.org/webservices/SubmitPackage" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="PackageByGuid">
<soap12:operation soapAction="http://packages.umbraco.org/webservices/PackageByGuid" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="RepositoryHttpGet" type="tns:RepositoryHttpGet">
<http:binding verb="GET" />
<wsdl:operation name="Categories">
<http:operation location="/Categories" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Modules">
<http:operation location="/Modules" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="ModulesCategorized">
<http:operation location="/ModulesCategorized" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Nitros">
<http:operation location="/Nitros" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="NitrosCategorized">
<http:operation location="/NitrosCategorized" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="authenticate">
<http:operation location="/authenticate" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fetchPackage">
<http:operation location="/fetchPackage" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fetchPackageByVersion">
<http:operation location="/fetchPackageByVersion" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fetchProtectedPackage">
<http:operation location="/fetchProtectedPackage" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="SubmitPackage">
<http:operation location="/SubmitPackage" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="PackageByGuid">
<http:operation location="/PackageByGuid" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="RepositoryHttpPost" type="tns:RepositoryHttpPost">
<http:binding verb="POST" />
<wsdl:operation name="Categories">
<http:operation location="/Categories" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Modules">
<http:operation location="/Modules" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="ModulesCategorized">
<http:operation location="/ModulesCategorized" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Nitros">
<http:operation location="/Nitros" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="NitrosCategorized">
<http:operation location="/NitrosCategorized" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="authenticate">
<http:operation location="/authenticate" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fetchPackage">
<http:operation location="/fetchPackage" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fetchPackageByVersion">
<http:operation location="/fetchPackageByVersion" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fetchProtectedPackage">
<http:operation location="/fetchProtectedPackage" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="SubmitPackage">
<http:operation location="/SubmitPackage" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="PackageByGuid">
<http:operation location="/PackageByGuid" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Repository">
<wsdl:port name="RepositorySoap" binding="tns:RepositorySoap">
<soap:address location="https://our.umbraco.com/umbraco/webservices/api/repository.asmx" />
</wsdl:port>
<wsdl:port name="RepositorySoap12" binding="tns:RepositorySoap12">
<soap12:address location="https://our.umbraco.com/umbraco/webservices/api/repository.asmx" />
</wsdl:port>
<wsdl:port name="RepositoryHttpGet" binding="tns:RepositoryHttpGet">
<http:address location="https://our.umbraco.com/umbraco/webservices/api/repository.asmx" />
</wsdl:port>
<wsdl:port name="RepositoryHttpPost" binding="tns:RepositoryHttpPost">
<http:address location="https://our.umbraco.com/umbraco/webservices/api/repository.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>