Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Controllers/AdminController.cs
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Controllers/AdminController.cs	(revision 6116)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Controllers/AdminController.cs	(revision 6117)
@@ -39,6 +39,6 @@
             AdminModel am = new AdminModel();
             Session["SelectedSubMenu"] = "AlgorithmClass";
-            var algorithmClasses = am.AlgorithmClassGetAll();
-            
+            var algorithmClasses = am.AlgorithmClassGetAll();            
+
             return View(algorithmClasses);
         }//ActionResult AlgorithmClass
Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Models/AdminModel.cs
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Models/AdminModel.cs	(revision 6116)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Models/AdminModel.cs	(revision 6117)
@@ -11,7 +11,9 @@
         private IList<AlgorithmClass> algorithmClassList;
 
+
         public String SelectedSubMenu { get; set; }
         public IList<AlgorithmClass> AlgorithmClassProp { get { return algorithmClassList; } set { ;} }
 
+        //***************************************Algorithm Class********************************************
         //get all algorithm classes
         public IList<AlgorithmClass> AlgorithmClassGetAll() {
@@ -30,5 +32,44 @@
             return algorithmClassList;
         }//AlgorithmClassGetAll
-        
+
+        public long AddAlgorithmClass(string name, string description) {
+            AdministrationServiceClient adminClient = Admin.GetClientFactory();
+
+            if (adminClient != null) {
+                AlgorithmClass ac = new AlgorithmClass();
+                ac.Description = description;
+                ac.Name = name;
+
+                return adminClient.AddAlgorithmClass(ac);
+            }
+
+            return 0;
+        }//AddAlgorithmClass
+
+        public void DeleteAlgorithmClass(long id) {
+            AdministrationServiceClient adminClient = Admin.GetClientFactory();
+
+            if (adminClient != null){
+                adminClient.DeleteAlgorithmClass(id);
+            }
+        }//DeleteAlgorithmClass
+
+        public void UpdateAlgorithmClass(long id, string name, string description) {
+            AdministrationServiceClient adminClient = Admin.GetClientFactory();
+
+            if (adminClient != null) {
+                AlgorithmClass ac = adminClient.GetAlgorithmClass(id);
+
+                if (ac != null) {
+                    ac.Id = id;
+                    ac.Name = name;
+                    ac.Description = description;
+
+                    adminClient.UpdateAlgorithmClass(ac);
+                }
+            }
+        }//UpdateAlgorithmClass
+
+        //***************************************Algorithms*************************************************
         //get all algorithms
         public IList<Algorithm> AlgorithmsGetAll() {
@@ -48,4 +89,46 @@
         }//AlgorithmsGetAll
 
+        public long AddAlgorithm(string name, string description, string dataTypeName, string dataTypeTypeName) {
+            AdministrationServiceClient adminClient = Admin.GetClientFactory();
+
+            if (adminClient != null) {
+                Algorithm al = new Algorithm();
+                al.DataTypeName = dataTypeName;
+                al.DataTypeTypeName = dataTypeTypeName; 
+                al.Description = description; 
+                al.Name = name;
+
+                return adminClient.AddAlgorithm(al);
+            }
+
+            return 0;
+        }//AddAlgorithm
+
+        public void DeleteAlgorithm(long id) {
+            AdministrationServiceClient adminClient = Admin.GetClientFactory();
+
+            if (adminClient != null) {
+                adminClient.DeleteAlgorithm(id);
+            }
+        }//DeleteAlgorithm
+
+        public void UpdateAlgorithm(long id, string name, string description, string dataTypeName, string dataTypeTypeName) {
+            AdministrationServiceClient adminClient = Admin.GetClientFactory();
+
+            if (adminClient != null) {
+                Algorithm al = adminClient.GetAlgorithm(id);
+
+                if (al != null){
+                    al.DataTypeName = dataTypeName;
+                    al.DataTypeTypeName = dataTypeTypeName;
+                    al.Description = description;
+                    al.Name = name;
+
+                    adminClient.UpdateAlgorithm(al);
+                }
+            }
+        }//UpdateAlgorithm
+
+        //***************************************Problem Class**********************************************
         public IList<ProblemClass> ProblemClassGetAll() {
             AdministrationServiceClient adminClient = Admin.GetClientFactory();
@@ -63,4 +146,43 @@
         }//ProblemClassGetAll
 
+        public long AddProblemClass(string name, string description) {
+            AdministrationServiceClient adminClient = Admin.GetClientFactory();
+
+            if (adminClient != null) {
+                ProblemClass pc = new ProblemClass();
+                pc.Description = description;
+                pc.Name = name;
+
+                return adminClient.AddProblemClass(pc);
+            }
+
+            return 0;
+        }//AddProblemClass
+
+        public void DeleteProblemClass(long id) {
+            AdministrationServiceClient adminClient = Admin.GetClientFactory();
+
+            if (adminClient != null) {
+                adminClient.DeleteProblemClass(id);
+            }
+        }//DeleteProblemClass
+
+        public void UpdateProblemClass(long id, string name, string description) {
+            AdministrationServiceClient adminClient = Admin.GetClientFactory();
+
+            if (adminClient != null) {
+                ProblemClass pc = adminClient.GetProblemClass(id);
+                
+                if (pc != null){
+                    pc.Id = id;
+                    pc.Name = name;
+                    pc.Description = description;
+
+                    adminClient.UpdateProblemClass(pc);
+                }
+            }
+        }//UpdateProblemClass
+
+        //***************************************Problems***************************************************
         public IList<Problem> ProblemsGetAll() {
             AdministrationServiceClient adminClient = Admin.GetClientFactory();
@@ -78,4 +200,45 @@
             return problemList;
         }//ProblemsGetAll
+
+        public long AddProblem(string name, string description, string dataTypeName, string dataTypeTypeName) {
+            AdministrationServiceClient adminClient = Admin.GetClientFactory();
+
+            if (adminClient != null) {
+                Problem pr = new Problem();
+                pr.DataTypeName = dataTypeName;
+                pr.DataTypeTypeName = dataTypeTypeName;
+                pr.Description = description;
+                pr.Name = name;
+
+                return adminClient.AddProblem(pr);
+            }
+
+            return 0;
+        }//AddProblem
+
+        public void DeleteProblem(long id) {
+            AdministrationServiceClient adminClient = Admin.GetClientFactory();
+
+            if (adminClient != null) {
+                adminClient.DeleteProblem(id);
+            }
+        }//DeleteProblem
+
+        public void UpdateProblem(long id, string name, string description, string dataTypeName, string dataTypeTypeName) {
+            AdministrationServiceClient adminClient = Admin.GetClientFactory();
+
+            if (adminClient != null) {
+                Problem pr = adminClient.GetProblem(id);
+                
+                if (pr != null) {
+                    pr.DataTypeName = dataTypeName;
+                    pr.DataTypeTypeName = dataTypeTypeName;
+                    pr.Description = description;
+                    pr.Name = name;
+
+                    adminClient.UpdateProblem(pr);
+                }
+            }
+        }//UpdateProblem
     }
 }
Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/Admin/Algorithm.aspx
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/Admin/Algorithm.aspx	(revision 6116)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/Admin/Algorithm.aspx	(revision 6117)
@@ -16,5 +16,6 @@
 
     <asp:ListBox ID="lbxAlgorithm" runat="server" DataSourceID="odsAlgorithm" 
-        DataTextField="Name" DataValueField="Id" Width="240px" Height="350px" style="margin-top: 0px"></asp:ListBox>
+        DataTextField="Name" DataValueField="Id" Width="240px" Height="350px" 
+        style="margin-top: 0px" AutoPostBack="True"></asp:ListBox>
     <asp:ObjectDataSource ID="odsAlgorithm" runat="server" 
         SelectMethod="AlgorithmsGetAll" 
