Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/HLWebOKBAdminPlugin.csproj
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/HLWebOKBAdminPlugin.csproj	(revision 6270)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/HLWebOKBAdminPlugin.csproj	(revision 6271)
@@ -113,9 +113,4 @@
   <ItemGroup>
     <Content Include="Global.asax" />
-    <None Include="Properties\DataSources\HLWebPluginHost.OKBAdministrationService.Algorithm.datasource" />
-    <None Include="Properties\DataSources\HLWebPluginHost.OKBAdministrationService.AlgorithmClass.datasource" />
-    <None Include="Properties\DataSources\HLWebPluginHost.OKBAdministrationService.Platform.datasource" />
-    <None Include="Properties\DataSources\HLWebPluginHost.OKBAdministrationService.Problem.datasource" />
-    <None Include="Properties\DataSources\HLWebPluginHost.OKBAdministrationService.ProblemClass.datasource" />
     <EmbeddedResource Include="Views\Admin\Menu.ascx" />
     <None Include="Service References\OKBAdministrationService\AdministrationService.disco" />
@@ -184,7 +179,4 @@
     <Content Include="Views\Web.config" />
     <None Include="Service References\OKBAdministrationService\AdministrationService.wsdl" />
-    <None Include="Service References\OKBAdministrationService\AdministrationService.xsd">
-      <SubType>Designer</SubType>
-    </None>
     <None Include="Service References\OKBAdministrationService\AdministrationService1.xsd">
       <SubType>Designer</SubType>
@@ -200,4 +192,5 @@
     <Folder Include="App_Data\" />
     <Folder Include="App_LocalResources\" />
+    <Folder Include="Properties\DataSources\" />
     <Folder Include="Resources\" />
     <Folder Include="ViewModels\" />
@@ -208,4 +201,9 @@
   <ItemGroup>
     <WCFMetadataStorage Include="Service References\OKBAdministrationService\" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Service References\OKBAdministrationService\AdministrationService.xsd">
+      <SubType>Designer</SubType>
+    </None>
   </ItemGroup>
   <Choose>
Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Service References/OKBAdministrationService/Reference.cs
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Service References/OKBAdministrationService/Reference.cs	(revision 6271)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Service References/OKBAdministrationService/Reference.cs	(revision 6271)
@@ -0,0 +1,544 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.225
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HLWebOKBAdminPlugin.OKBAdministrationService {
+    using System.Runtime.Serialization;
+    using System;
+    
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="OKBItem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
+        "DataTransfer")]
+    [System.SerializableAttribute()]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HLWebOKBAdminPlugin.OKBAdministrationService.NamedOKBItem))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HLWebOKBAdminPlugin.OKBAdministrationService.AlgorithmClass))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HLWebOKBAdminPlugin.OKBAdministrationService.Algorithm))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HLWebOKBAdminPlugin.OKBAdministrationService.ProblemClass))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HLWebOKBAdminPlugin.OKBAdministrationService.Problem))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HLWebOKBAdminPlugin.OKBAdministrationService.Platform))]
+    public partial class OKBItem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+        
+        [System.NonSerializedAttribute()]
+        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private long IdField;
+        
+        [global::System.ComponentModel.BrowsableAttribute(false)]
+        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+            get {
+                return this.extensionDataField;
+            }
+            set {
+                this.extensionDataField = value;
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public long Id {
+            get {
+                return this.IdField;
+            }
+            set {
+                if ((this.IdField.Equals(value) != true)) {
+                    this.IdField = value;
+                    this.RaisePropertyChanged("Id");
+                }
+            }
+        }
+        
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        
+        protected void RaisePropertyChanged(string propertyName) {
+            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+            if ((propertyChanged != null)) {
+                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="NamedOKBItem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
+        "DataTransfer")]
+    [System.SerializableAttribute()]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HLWebOKBAdminPlugin.OKBAdministrationService.AlgorithmClass))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HLWebOKBAdminPlugin.OKBAdministrationService.Algorithm))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HLWebOKBAdminPlugin.OKBAdministrationService.ProblemClass))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HLWebOKBAdminPlugin.OKBAdministrationService.Problem))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HLWebOKBAdminPlugin.OKBAdministrationService.Platform))]
+    public partial class NamedOKBItem : HLWebOKBAdminPlugin.OKBAdministrationService.OKBItem {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string DescriptionField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string NameField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public string Description {
+            get {
+                return this.DescriptionField;
+            }
+            set {
+                if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+                    this.DescriptionField = value;
+                    this.RaisePropertyChanged("Description");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public string Name {
+            get {
+                return this.NameField;
+            }
+            set {
+                if ((object.ReferenceEquals(this.NameField, value) != true)) {
+                    this.NameField = value;
+                    this.RaisePropertyChanged("Name");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="AlgorithmClass", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
+        "DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class AlgorithmClass : HLWebOKBAdminPlugin.OKBAdministrationService.NamedOKBItem {
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="Algorithm", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
+        "DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class Algorithm : HLWebOKBAdminPlugin.OKBAdministrationService.NamedOKBItem {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private long AlgorithmClassIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string DataTypeNameField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string DataTypeTypeNameField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private long PlatformIdField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public long AlgorithmClassId {
+            get {
+                return this.AlgorithmClassIdField;
+            }
+            set {
+                if ((this.AlgorithmClassIdField.Equals(value) != true)) {
+                    this.AlgorithmClassIdField = value;
+                    this.RaisePropertyChanged("AlgorithmClassId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public string DataTypeName {
+            get {
+                return this.DataTypeNameField;
+            }
+            set {
+                if ((object.ReferenceEquals(this.DataTypeNameField, value) != true)) {
+                    this.DataTypeNameField = value;
+                    this.RaisePropertyChanged("DataTypeName");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public string DataTypeTypeName {
+            get {
+                return this.DataTypeTypeNameField;
+            }
+            set {
+                if ((object.ReferenceEquals(this.DataTypeTypeNameField, value) != true)) {
+                    this.DataTypeTypeNameField = value;
+                    this.RaisePropertyChanged("DataTypeTypeName");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public long PlatformId {
+            get {
+                return this.PlatformIdField;
+            }
+            set {
+                if ((this.PlatformIdField.Equals(value) != true)) {
+                    this.PlatformIdField = value;
+                    this.RaisePropertyChanged("PlatformId");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="ProblemClass", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
+        "DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class ProblemClass : HLWebOKBAdminPlugin.OKBAdministrationService.NamedOKBItem {
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="Problem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
+        "DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class Problem : HLWebOKBAdminPlugin.OKBAdministrationService.NamedOKBItem {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string DataTypeNameField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string DataTypeTypeNameField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private long PlatformIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private long ProblemClassIdField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public string DataTypeName {
+            get {
+                return this.DataTypeNameField;
+            }
+            set {
+                if ((object.ReferenceEquals(this.DataTypeNameField, value) != true)) {
+                    this.DataTypeNameField = value;
+                    this.RaisePropertyChanged("DataTypeName");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public string DataTypeTypeName {
+            get {
+                return this.DataTypeTypeNameField;
+            }
+            set {
+                if ((object.ReferenceEquals(this.DataTypeTypeNameField, value) != true)) {
+                    this.DataTypeTypeNameField = value;
+                    this.RaisePropertyChanged("DataTypeTypeName");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public long PlatformId {
+            get {
+                return this.PlatformIdField;
+            }
+            set {
+                if ((this.PlatformIdField.Equals(value) != true)) {
+                    this.PlatformIdField = value;
+                    this.RaisePropertyChanged("PlatformId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public long ProblemClassId {
+            get {
+                return this.ProblemClassIdField;
+            }
+            set {
+                if ((this.ProblemClassIdField.Equals(value) != true)) {
+                    this.ProblemClassIdField = value;
+                    this.RaisePropertyChanged("ProblemClassId");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="Platform", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
+        "DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class Platform : HLWebOKBAdminPlugin.OKBAdministrationService.NamedOKBItem {
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+    [System.ServiceModel.ServiceContractAttribute(ConfigurationName="OKBAdministrationService.IAdministrationService")]
+    public interface IAdministrationService {
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetPlatform", ReplyAction="http://tempuri.org/IAdministrationService/GetPlatformResponse")]
+        HLWebOKBAdminPlugin.OKBAdministrationService.Platform GetPlatform(long id);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetPlatforms", ReplyAction="http://tempuri.org/IAdministrationService/GetPlatformsResponse")]
+        HLWebOKBAdminPlugin.OKBAdministrationService.Platform[] GetPlatforms();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/AddPlatform", ReplyAction="http://tempuri.org/IAdministrationService/AddPlatformResponse")]
+        long AddPlatform(HLWebOKBAdminPlugin.OKBAdministrationService.Platform dto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdatePlatform", ReplyAction="http://tempuri.org/IAdministrationService/UpdatePlatformResponse")]
+        void UpdatePlatform(HLWebOKBAdminPlugin.OKBAdministrationService.Platform dto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/DeletePlatform", ReplyAction="http://tempuri.org/IAdministrationService/DeletePlatformResponse")]
+        void DeletePlatform(long id);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetAlgorithmClass", ReplyAction="http://tempuri.org/IAdministrationService/GetAlgorithmClassResponse")]
+        HLWebOKBAdminPlugin.OKBAdministrationService.AlgorithmClass GetAlgorithmClass(long id);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetAlgorithmClasses", ReplyAction="http://tempuri.org/IAdministrationService/GetAlgorithmClassesResponse")]
+        HLWebOKBAdminPlugin.OKBAdministrationService.AlgorithmClass[] GetAlgorithmClasses();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/AddAlgorithmClass", ReplyAction="http://tempuri.org/IAdministrationService/AddAlgorithmClassResponse")]
+        long AddAlgorithmClass(HLWebOKBAdminPlugin.OKBAdministrationService.AlgorithmClass dto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateAlgorithmClass", ReplyAction="http://tempuri.org/IAdministrationService/UpdateAlgorithmClassResponse")]
+        void UpdateAlgorithmClass(HLWebOKBAdminPlugin.OKBAdministrationService.AlgorithmClass dto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/DeleteAlgorithmClass", ReplyAction="http://tempuri.org/IAdministrationService/DeleteAlgorithmClassResponse")]
+        void DeleteAlgorithmClass(long id);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetAlgorithm", ReplyAction="http://tempuri.org/IAdministrationService/GetAlgorithmResponse")]
+        HLWebOKBAdminPlugin.OKBAdministrationService.Algorithm GetAlgorithm(long id);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetAlgorithms", ReplyAction="http://tempuri.org/IAdministrationService/GetAlgorithmsResponse")]
+        HLWebOKBAdminPlugin.OKBAdministrationService.Algorithm[] GetAlgorithms();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/AddAlgorithm", ReplyAction="http://tempuri.org/IAdministrationService/AddAlgorithmResponse")]
+        long AddAlgorithm(HLWebOKBAdminPlugin.OKBAdministrationService.Algorithm dto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateAlgorithm", ReplyAction="http://tempuri.org/IAdministrationService/UpdateAlgorithmResponse")]
+        void UpdateAlgorithm(HLWebOKBAdminPlugin.OKBAdministrationService.Algorithm dto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/DeleteAlgorithm", ReplyAction="http://tempuri.org/IAdministrationService/DeleteAlgorithmResponse")]
+        void DeleteAlgorithm(long id);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetAlgorithmUsers", ReplyAction="http://tempuri.org/IAdministrationService/GetAlgorithmUsersResponse")]
+        System.Guid[] GetAlgorithmUsers(long algorithmId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateAlgorithmUsers", ReplyAction="http://tempuri.org/IAdministrationService/UpdateAlgorithmUsersResponse")]
+        void UpdateAlgorithmUsers(long algorithmId, System.Guid[] users);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetAlgorithmData", ReplyAction="http://tempuri.org/IAdministrationService/GetAlgorithmDataResponse")]
+        byte[] GetAlgorithmData(long algorithmId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateAlgorithmData", ReplyAction="http://tempuri.org/IAdministrationService/UpdateAlgorithmDataResponse")]
+        void UpdateAlgorithmData(long algorithmId, byte[] data);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetProblemClass", ReplyAction="http://tempuri.org/IAdministrationService/GetProblemClassResponse")]
+        HLWebOKBAdminPlugin.OKBAdministrationService.ProblemClass GetProblemClass(long id);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetProblemClasses", ReplyAction="http://tempuri.org/IAdministrationService/GetProblemClassesResponse")]
+        HLWebOKBAdminPlugin.OKBAdministrationService.ProblemClass[] GetProblemClasses();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/AddProblemClass", ReplyAction="http://tempuri.org/IAdministrationService/AddProblemClassResponse")]
+        long AddProblemClass(HLWebOKBAdminPlugin.OKBAdministrationService.ProblemClass dto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateProblemClass", ReplyAction="http://tempuri.org/IAdministrationService/UpdateProblemClassResponse")]
+        void UpdateProblemClass(HLWebOKBAdminPlugin.OKBAdministrationService.ProblemClass dto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/DeleteProblemClass", ReplyAction="http://tempuri.org/IAdministrationService/DeleteProblemClassResponse")]
+        void DeleteProblemClass(long id);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetProblem", ReplyAction="http://tempuri.org/IAdministrationService/GetProblemResponse")]
+        HLWebOKBAdminPlugin.OKBAdministrationService.Problem GetProblem(long id);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetProblems", ReplyAction="http://tempuri.org/IAdministrationService/GetProblemsResponse")]
+        HLWebOKBAdminPlugin.OKBAdministrationService.Problem[] GetProblems();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/AddProblem", ReplyAction="http://tempuri.org/IAdministrationService/AddProblemResponse")]
+        long AddProblem(HLWebOKBAdminPlugin.OKBAdministrationService.Problem dto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateProblem", ReplyAction="http://tempuri.org/IAdministrationService/UpdateProblemResponse")]
+        void UpdateProblem(HLWebOKBAdminPlugin.OKBAdministrationService.Problem dto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/DeleteProblem", ReplyAction="http://tempuri.org/IAdministrationService/DeleteProblemResponse")]
+        void DeleteProblem(long id);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetProblemUsers", ReplyAction="http://tempuri.org/IAdministrationService/GetProblemUsersResponse")]
+        System.Guid[] GetProblemUsers(long problemId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateProblemUsers", ReplyAction="http://tempuri.org/IAdministrationService/UpdateProblemUsersResponse")]
+        void UpdateProblemUsers(long problemId, System.Guid[] users);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetProblemData", ReplyAction="http://tempuri.org/IAdministrationService/GetProblemDataResponse")]
+        byte[] GetProblemData(long problemId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateProblemData", ReplyAction="http://tempuri.org/IAdministrationService/UpdateProblemDataResponse")]
+        void UpdateProblemData(long problemId, byte[] data);
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+    public interface IAdministrationServiceChannel : HLWebOKBAdminPlugin.OKBAdministrationService.IAdministrationService, System.ServiceModel.IClientChannel {
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+    public partial class AdministrationServiceClient : System.ServiceModel.ClientBase<HLWebOKBAdminPlugin.OKBAdministrationService.IAdministrationService>, HLWebOKBAdminPlugin.OKBAdministrationService.IAdministrationService {
+        
+        public AdministrationServiceClient() {
+        }
+        
+        public AdministrationServiceClient(string endpointConfigurationName) : 
+                base(endpointConfigurationName) {
+        }
+        
+        public AdministrationServiceClient(string endpointConfigurationName, string remoteAddress) : 
+                base(endpointConfigurationName, remoteAddress) {
+        }
+        
+        public AdministrationServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
+                base(endpointConfigurationName, remoteAddress) {
+        }
+        
+        public AdministrationServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
+                base(binding, remoteAddress) {
+        }
+        
+        public HLWebOKBAdminPlugin.OKBAdministrationService.Platform GetPlatform(long id) {
+            return base.Channel.GetPlatform(id);
+        }
+        
+        public HLWebOKBAdminPlugin.OKBAdministrationService.Platform[] GetPlatforms() {
+            return base.Channel.GetPlatforms();
+        }
+        
+        public long AddPlatform(HLWebOKBAdminPlugin.OKBAdministrationService.Platform dto) {
+            return base.Channel.AddPlatform(dto);
+        }
+        
+        public void UpdatePlatform(HLWebOKBAdminPlugin.OKBAdministrationService.Platform dto) {
+            base.Channel.UpdatePlatform(dto);
+        }
+        
+        public void DeletePlatform(long id) {
+            base.Channel.DeletePlatform(id);
+        }
+        
+        public HLWebOKBAdminPlugin.OKBAdministrationService.AlgorithmClass GetAlgorithmClass(long id) {
+            return base.Channel.GetAlgorithmClass(id);
+        }
+        
+        public HLWebOKBAdminPlugin.OKBAdministrationService.AlgorithmClass[] GetAlgorithmClasses() {
+            return base.Channel.GetAlgorithmClasses();
+        }
+        
+        public long AddAlgorithmClass(HLWebOKBAdminPlugin.OKBAdministrationService.AlgorithmClass dto) {
+            return base.Channel.AddAlgorithmClass(dto);
+        }
+        
+        public void UpdateAlgorithmClass(HLWebOKBAdminPlugin.OKBAdministrationService.AlgorithmClass dto) {
+            base.Channel.UpdateAlgorithmClass(dto);
+        }
+        
+        public void DeleteAlgorithmClass(long id) {
+            base.Channel.DeleteAlgorithmClass(id);
+        }
+        
+        public HLWebOKBAdminPlugin.OKBAdministrationService.Algorithm GetAlgorithm(long id) {
+            return base.Channel.GetAlgorithm(id);
+        }
+        
+        public HLWebOKBAdminPlugin.OKBAdministrationService.Algorithm[] GetAlgorithms() {
+            return base.Channel.GetAlgorithms();
+        }
+        
+        public long AddAlgorithm(HLWebOKBAdminPlugin.OKBAdministrationService.Algorithm dto) {
+            return base.Channel.AddAlgorithm(dto);
+        }
+        
+        public void UpdateAlgorithm(HLWebOKBAdminPlugin.OKBAdministrationService.Algorithm dto) {
+            base.Channel.UpdateAlgorithm(dto);
+        }
+        
+        public void DeleteAlgorithm(long id) {
+            base.Channel.DeleteAlgorithm(id);
+        }
+        
+        public System.Guid[] GetAlgorithmUsers(long algorithmId) {
+            return base.Channel.GetAlgorithmUsers(algorithmId);
+        }
+        
+        public void UpdateAlgorithmUsers(long algorithmId, System.Guid[] users) {
+            base.Channel.UpdateAlgorithmUsers(algorithmId, users);
+        }
+        
+        public byte[] GetAlgorithmData(long algorithmId) {
+            return base.Channel.GetAlgorithmData(algorithmId);
+        }
+        
+        public void UpdateAlgorithmData(long algorithmId, byte[] data) {
+            base.Channel.UpdateAlgorithmData(algorithmId, data);
+        }
+        
+        public HLWebOKBAdminPlugin.OKBAdministrationService.ProblemClass GetProblemClass(long id) {
+            return base.Channel.GetProblemClass(id);
+        }
+        
+        public HLWebOKBAdminPlugin.OKBAdministrationService.ProblemClass[] GetProblemClasses() {
+            return base.Channel.GetProblemClasses();
+        }
+        
+        public long AddProblemClass(HLWebOKBAdminPlugin.OKBAdministrationService.ProblemClass dto) {
+            return base.Channel.AddProblemClass(dto);
+        }
+        
+        public void UpdateProblemClass(HLWebOKBAdminPlugin.OKBAdministrationService.ProblemClass dto) {
+            base.Channel.UpdateProblemClass(dto);
+        }
+        
+        public void DeleteProblemClass(long id) {
+            base.Channel.DeleteProblemClass(id);
+        }
+        
+        public HLWebOKBAdminPlugin.OKBAdministrationService.Problem GetProblem(long id) {
+            return base.Channel.GetProblem(id);
+        }
+        
+        public HLWebOKBAdminPlugin.OKBAdministrationService.Problem[] GetProblems() {
+            return base.Channel.GetProblems();
+        }
+        
+        public long AddProblem(HLWebOKBAdminPlugin.OKBAdministrationService.Problem dto) {
+            return base.Channel.AddProblem(dto);
+        }
+        
+        public void UpdateProblem(HLWebOKBAdminPlugin.OKBAdministrationService.Problem dto) {
+            base.Channel.UpdateProblem(dto);
+        }
+        
+        public void DeleteProblem(long id) {
+            base.Channel.DeleteProblem(id);
+        }
+        
+        public System.Guid[] GetProblemUsers(long problemId) {
+            return base.Channel.GetProblemUsers(problemId);
+        }
+        
+        public void UpdateProblemUsers(long problemId, System.Guid[] users) {
+            base.Channel.UpdateProblemUsers(problemId, users);
+        }
+        
+        public byte[] GetProblemData(long problemId) {
+            return base.Channel.GetProblemData(problemId);
+        }
+        
+        public void UpdateProblemData(long problemId, byte[] data) {
+            base.Channel.UpdateProblemData(problemId, data);
+        }
+    }
+}
Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/Admin/Menu.ascx
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/Admin/Menu.ascx	(revision 6270)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/Admin/Menu.ascx	(revision 6271)
@@ -3,5 +3,5 @@
 <ul>
 <li <% if(Session["SelectedSubMenu"] == "AlgorithmClass") {%> class="selected" <%}%>>
-    <%: Html.ActionLink("AlgorithmClass", "Index", "AlgorithmClassPlgin")%>
+    <%: Html.ActionLink("AlgorithmClass", "Index", "AlgorithmClass")%>
 </li>
 <li <% if(Session["SelectedSubMenu"] == "Algorithm") {%> class="selected" <%}%>>
Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/AlgorithmClass/Detail.aspx
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/AlgorithmClass/Detail.aspx	(revision 6271)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/AlgorithmClass/Detail.aspx	(revision 6271)
@@ -0,0 +1,51 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
+
+<%@ Import Namespace="HLWebOKBAdminPlugin.Models" %>
+<%@ Import Namespace="HLWebOKBAdminPlugin.OKBAdministrationService" %>
+<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
+    Detail
+</asp:Content>
+<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
+    <% using (Html.BeginForm("SaveChanges", "AlgorithmClass")) %>
+    <% { %>
+    <h2>Detail</h2>
+
+    <% AlgorithmClass ac = ((AlgorithmClassModel)Model).AlgorithmClass; %>
+    <table border="1">
+        <tr>
+            <td>
+                Id:
+            </td>
+            <td>
+                <%: Html.Label(ac.Id.ToString())%>
+            </td>
+            <%: Html.Hidden("AlgorithmClassId", ac.Id.ToString(), ac.Id.ToString())%>
+        </tr>
+        <tr>
+            <td>
+                Name:
+            </td>
+            <td>
+                <%: Html.TextBox("AlgorithmClassName", ac.Name, ac.Name)%>
+            </td>
+        </tr>
+        <tr>
+            <td>
+                Description:
+            </td>
+            <td>
+                <%: Html.TextBox("AlgorithmClassDescription", ac.Description, ac.Description)%>
+            </td>
+        </tr>
+        <tr>
+            <td>
+                Action:
+            </td>
+            <td>
+                <input type="submit" value="save" />
+            </td>
+        </tr>
+    </table> 
+    <%: Html.ActionLink("back to Index","Index") %>
+    <% } %>
+</asp:Content>
Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/AlgorithmClass/Index.aspx
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/AlgorithmClass/Index.aspx	(revision 6270)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/AlgorithmClass/Index.aspx	(revision 6271)
@@ -1,11 +1,41 @@
-﻿<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
+﻿<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
+
+<%@ Import Namespace="HLWebOKBAdminPlugin.Models" %>
+<%@ Import Namespace="HLWebOKBAdminPlugin.OKBAdministrationService" %>
+
 
 <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
-	Index
+    Index
 </asp:Content>
 
 <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
 
-    <h2>Index</h2>
+    <h2>AlgorithmClass</h2>
 
+<%  long? id = null;  %>
+    <%: Html.ActionLink("New AlgorithmClass", "Detail", new {id}) %>
+    <%: Html.ActionLink("Order ASC", "SortAsc")%>
+    <%: Html.ActionLink("Order DESC", "SortDesc")%>
+
+    <div style="height:150px; overflow:scroll;">
+        <table>
+            <!--// We get this from the Controller (Index)-->
+            <% foreach (AlgorithmClass p in ((AlgorithmClassModel)Model).AlgorithmClasses) {  %>
+            <tr>
+                <td>
+                    <%: Html.Label(p.Name)%>
+                </td>
+                <td>
+                    <%: Html.Label(p.Description) %>
+                </td>
+                <td>
+                    <%: Html.ActionLink("detail", "Detail", new { p.Id })%>
+                </td>
+                <td>
+                    <%: Html.ActionLink("delete", "Delete",new {p.Id}) %>
+                </td>
+            </tr>
+            <% } %>
+        </table>
+    </div>       
 </asp:Content>
Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Web.config
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Web.config	(revision 6270)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Web.config	(revision 6271)
@@ -142,4 +142,20 @@
           </security>
         </binding>
+        <binding name="AdministrationService4" closeTimeout="00:01:00"
+          openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+          bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
+          maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text"
+          textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
+          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+          <reliableSession ordered="true" inactivityTimeout="00:10:00"
+            enabled="false" />
+          <security mode="Message">
+            <transport clientCredentialType="Windows" proxyCredentialType="None"
+              realm="" />
+            <message clientCredentialType="UserName" negotiateServiceCredential="true"
+              algorithmSuite="Default" />
+          </security>
+        </binding>
       </wsHttpBinding>
     </bindings>
@@ -173,4 +189,11 @@
         </identity>
       </endpoint>
+      <endpoint address="http://services.heuristiclab.com/OKB.SPR-3.3/AdministrationService.svc"
+        binding="wsHttpBinding" bindingConfiguration="AdministrationService4"
+        contract="OKBAdministrationService.IAdministrationService" name="AdministrationService4">
+        <identity>
+          <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ==" />
+        </identity>
+      </endpoint>
     </client>
   </system.serviceModel>
