Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Controllers/AlgorithmClassController.cs
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Controllers/AlgorithmClassController.cs	(revision 5185)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Controllers/AlgorithmClassController.cs	(revision 5186)
@@ -4,74 +4,224 @@
 using System.Web;
 using System.Web.Mvc;
+using HLWebOKBAdminPlugin.ViewModels;
+using System.Web.Security;
 using System.ServiceModel.Security;
-using HLWebPluginHost.Models;
-
-namespace HLWebPluginHost.Controllers {
-    public class AlgorithmClassController : Controller {
-        //container for data
-        AlgorithmClassModel viewModel;
+using HLWebPluginHost.OKBService;
+
+namespace HLWebOKBAdminPlugin.Controllers
+{
+    public class AlgorithmClassController : Controller
+    {
+        //BASICS: controllers respond to input from the browser, decide what to do and return
+        //        response to the user (Views)
+
+        // for edit form 2 controller actions are needed
+        // first controller action if form is first loaded to display algorithm class data
+        // second controller handles the post action
+
+        //returns a certificated service client for current user .... call this function in every method
+        private OKBService.OKBServiceClient CertificateValidator() {
+            OKBService.OKBServiceClient sc = new OKBService.OKBServiceClient();
+
+            sc.ClientCredentials.UserName.UserName = Membership.GetUser().UserName;
+            sc.ClientCredentials.UserName.Password = HttpContext.Session["pwd"].ToString();
+            sc.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
+
+            return sc;
+        }//CertificateValidator        
+
         //
         // GET: /AlgorithmClass/
 
         public ActionResult Index() {
-            //create list of algorithms
-            //OKBService.OKBServiceClient sc = new OKBService.OKBServiceClient();
-            //sc.ClientCredentials.UserName.UserName = "Gerhard";
-            //sc.ClientCredentials.UserName.Password = "Gerhard";
-            //sc.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
-
-            //var agcList = new List<OKBService.AlgorithmClass>();
-            //OKBService.AlgorithmClass[] ac = sc.GetAlgorithmClasses();
-            //foreach (OKBService.AlgorithmClass a in ac) {
-            //    agcList.Add(a);
-            //}//foreach
-
-            //var viewModel = new AlgorithmClassModel {
-            //    NumOfClasses = agcList.Count(),
-            //    AlgorithmClassList = agcList
-            //};
-
-            viewModel = new AlgorithmClassModel {
-                NumOfClasses = 0,
-                AlgorithmClassList = null
-            };            
-
-            return View(viewModel);
-        }//index
-
-        //
-        // GET: /AlgorithmClass/Browse
-
-        public string Browse() {
-            string message = "AlgorithmClass.Browse, id = " + Server.HtmlEncode(Request.QueryString["id"]);
-            return Server.HtmlEncode(message);
-        }//index
-
-        //
-        // GET: /AlgorithmClass/Details/2
-
-        public string Details(int id) {
-            string message = "AlgorithmClass.Details, id = " + id;
-            return Server.HtmlEncode(message);
-        }//index
-
-        //
-        // GET: /AlgotithmClass/5
-        public string DelAlgorithmClass(int id) {
-            string message = "DeleteAlgorithmClass, id = " + Server.HtmlEncode(Request.QueryString["id"]);
-            return Server.HtmlEncode(message);
-        }
-
-        public bool AddAlgorithmClass(string name, String description) {
-            //var viewModel = new AlgorithmClassModel {
-            //    NumOfClasses = 0,
-            //    AlgorithmClassList = null
-            //};
-
-            viewModel.AddAlgorithmClass("ccc", "na");
-
-            return true;
-
-        }//AddAlgorithmClass
+            //the index action is the homepage of the site (AlgorithmClass)  
+            //what happens: generate list of AlgorithmClass and commit the list to the index view
+
+            //get certificated service client
+            OKBService.OKBServiceClient sc = CertificateValidator();
+
+            //get list of Algorithm Classes
+            var algorithmClasses = new List<AlgorithmClass>();
+            AlgorithmClass[] ac = sc.GetAlgorithmClasses();
+            foreach (AlgorithmClass a in ac) {
+                algorithmClasses.Add(a);
+            }//foreach            
+
+            //return Index View that contains a list of all AlgorithmClasses (Views/Index.aspx)
+            return View(algorithmClasses);
+        }//Index
+
+        //
+        // GET: /AlgorithmClass/Details/5
+
+        public ActionResult Details(int id) {
+            //what happens: get AlgorithmClass object , create a viewmodel which contains the data
+            //              for the view and commit the viewmodel to the view
+            //              => correlates to a HTTP GET request
+
+            //get certificated service client
+            OKBService.OKBServiceClient sc = CertificateValidator();
+
+            //the viewmodel contains data for the view
+            var viewModel = new AlgorithmClassViewModel {
+                AlgorithmClass = sc.GetAlgorithmClass(id)
+            };
+
+            return View(viewModel);
+        }//Details
+
+        //
+        // GET: /AlgorithmClass/Create
+
+        public ActionResult Create() {
+            //what happens: create empty AlgorithmClass object , create a viewmodel which contains the data
+            //              for the view and commit the viewmodel to the view
+            //              this Create action is needed for first time call of the page to display content
+
+            //get certificated service client
+            OKBService.OKBServiceClient sc = CertificateValidator();
+
+            //the viewmodel with empty AlgorithmClass object
+            var viewModel = new AlgorithmClassViewModel {
+                AlgorithmClass = new AlgorithmClass()
+            };
+
+            return View(viewModel);
+        }//Create
+
+        //
+        // POST: /AlgorithmClass/Create
+
+        [HttpPost]
+        public ActionResult Create(AlgorithmClass algorithmClass) {
+            //what happens: the 2nd Create controller handles the POST action from the form
+            //              an AlgorithmClass object is passed from the Create view by submit
+
+            try {
+                //get certificated service client
+                OKBService.OKBServiceClient sc = CertificateValidator();
+
+                //create new AlgorithmClass object
+                AlgorithmClass ac = new HLWebPluginHost.OKBService.AlgorithmClass();
+                ac.Id = algorithmClass.Id;
+                ac.Name = algorithmClass.Name;
+                ac.Description = algorithmClass.Description;
+
+                //add new AlgorithmClass
+                sc.AddAlgorithmClass(ac);
+
+                //redirect to the home page
+                return RedirectToAction("Index");
+            }
+            catch {
+                //invalid - redisplay with errors
+                var viewModel = new AlgorithmClassViewModel {
+                    AlgorithmClass = algorithmClass
+                };
+
+                return View(viewModel);
+            }
+        }//Create - post
+
+        //
+        // GET: /AlgorithmClass/Edit/5
+
+        public ActionResult Edit(int id) {
+            //what happens: get AlgorithmClass object , create a viewmodel which contains the data
+            //              for the view and commit the viewmodel to the view
+            //              => correlates to a HTTP GET request
+            
+            //get certificated service client
+            OKBService.OKBServiceClient sc = CertificateValidator();
+
+            //the viewmodel contains data for the view
+            var viewModel = new AlgorithmClassViewModel {
+                AlgorithmClass = sc.GetAlgorithmClass(id)
+            };
+            return View(viewModel);
+        }//Edit
+
+        //
+        // POST: /AlgorithmClass/Edit/5
+
+        [HttpPost]
+        public ActionResult Edit(int id, FormCollection collection) {
+            //what happens: the 2nd Edit controller handles the POST action from the form
+            //              an AlgorithmClass object is passed from the Edit view by submit
+
+            //get certificated service client
+            OKBService.OKBServiceClient sc = CertificateValidator();
+
+            //get AlgorithmClass object from DB
+            var algorithmClass = sc.GetAlgorithmClass(id);
+
+            try {
+                // update AlgorithmClass
+                UpdateModel(algorithmClass, "AlgorithmClass");
+
+                AlgorithmClass ac = new HLWebPluginHost.OKBService.AlgorithmClass();
+                ac.Id = algorithmClass.Id;
+                ac.Name = algorithmClass.Name;
+                ac.Description = algorithmClass.Description;
+
+                sc.UpdateAlgorithmClass(ac);
+
+                return RedirectToAction("Index");
+            }
+            catch {
+                var viewModel = new AlgorithmClassViewModel {
+                    AlgorithmClass = algorithmClass
+                };
+
+                return View(viewModel);
+            }
+        }//Edit
+
+        //
+        // GET: /AlgorithmClass/Delete/5
+
+        public ActionResult Delete(int id) {
+            //what happens: get AlgorithmClass object , create a viewmodel which contains the data
+            //              for the view and commit the viewmodel to the view
+            //              => correlates to a HTTP GET request
+
+            //get certificated service client
+            OKBService.OKBServiceClient sc = CertificateValidator();
+
+            //the viewmodel contains data for the view
+            var viewModel = new AlgorithmClassViewModel {
+                AlgorithmClass = sc.GetAlgorithmClass(id)
+            };
+            return View(viewModel);
+        }//Delete
+
+        //
+        // POST: /AlgorithmClass/Delete/5
+
+        [HttpPost]
+        public ActionResult Delete(int id, FormCollection collection) {
+            //what happens: the 2nd Delete controller handles the POST action from the form
+            //              an AlgorithmClass object is passed from the Delete view by submit
+   
+            //get certificated service client
+            OKBService.OKBServiceClient sc = CertificateValidator();
+
+            //load object from db
+            var algorithmClass = sc.GetAlgorithmClass(id);
+
+            try {
+                //delete object
+                sc.DeleteAlgorithmClass(id);
+
+                return RedirectToAction("Index");
+            }
+            catch {
+                var viewModel = new AlgorithmClassViewModel {
+                    AlgorithmClass = algorithmClass
+                };
+
+                return View(viewModel);
+            }
+        }//Delete
 
     }
Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Helpers/HtmlHelpers.cs
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Helpers/HtmlHelpers.cs	(revision 5186)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Helpers/HtmlHelpers.cs	(revision 5186)
@@ -0,0 +1,25 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+
+namespace HLWebOKBAdminPlugin.Helpers {
+    public static class HtmlHelpers {
+
+        public static string Truncate(this HtmlHelper helper, string input, int length) {
+            //takes a string and adds "..." if length > max length 
+            
+            if (input == null)
+                return "";
+
+            if (input.Length <= length) {
+                return input;
+            }//if
+            else {
+                return input.Substring(0, length) + "...";
+            }//else
+        }//Truncate
+
+    }//HtmlHelpers
+}
Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Models/AlgorithmClass.cs
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Models/AlgorithmClass.cs	(revision 5186)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Models/AlgorithmClass.cs	(revision 5186)
@@ -0,0 +1,28 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.ComponentModel.DataAnnotations;
+using System.Web.Mvc;
+using System.ComponentModel;
+
+namespace HLWebOKBAdminPlugin.Models {
+
+    [MetadataType(typeof(AlgorithmClassMetaData))]
+    public partial class AlgorithmClass {
+
+        [Bind(Exclude = "Id")]
+        public class AlgorithmClassMetaData {
+            [ScaffoldColumn(false)]
+            public object Id { get; set; }
+
+            [DisplayName("Description")]
+            public object Description { get; set; }
+
+            [Required(ErrorMessage = "An AlgorithmClass Name is required")]
+            public object Name { get; set; }
+
+        }
+
+    }
+}
Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/ViewModels/AlgorithmClassBrowseViewModel.cs
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/ViewModels/AlgorithmClassBrowseViewModel.cs	(revision 5186)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/ViewModels/AlgorithmClassBrowseViewModel.cs	(revision 5186)
@@ -0,0 +1,12 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using HLWebPluginHost.OKBService;
+
+namespace HLWebOKBAdminPlugin.ViewModels {
+    public class AlgorithmClassBrowseViewModel {
+        public HLWebPluginHost.OKBService.AlgorithmClass AlgorithmClassModel { get; set; }
+        public ICollection<HLWebPluginHost.OKBService.AlgorithmClass> AlgorithmClasses { get; set; }
+    }
+}
Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/ViewModels/AlgorithmClassIndexViewModel.cs
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/ViewModels/AlgorithmClassIndexViewModel.cs	(revision 5186)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/ViewModels/AlgorithmClassIndexViewModel.cs	(revision 5186)
@@ -0,0 +1,14 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace HLWebOKBAdminPlugin.ViewModels {
+    //view model for Algorithm Class Index page
+    //(passes information from the controller to the view)
+
+    public class AlgorithmClassIndexViewModel {
+        public int NumberOfAlgorithmClasses { get; set; }
+        public ICollection<HLWebPluginHost.OKBService.AlgorithmClass> AlgorithmClasses { get; set; }
+    }//AlgorithmClassIndexViewModel
+}
Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/ViewModels/AlgorithmClassViewModel.cs
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/ViewModels/AlgorithmClassViewModel.cs	(revision 5186)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/ViewModels/AlgorithmClassViewModel.cs	(revision 5186)
@@ -0,0 +1,14 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace HLWebOKBAdminPlugin.ViewModels {
+    public class AlgorithmClassViewModel {
+        //if required, add more properties to the managed object
+        //in this case the view model contains only a list of AlgorithmClass
+
+        public HLWebPluginHost.OKBService.AlgorithmClass AlgorithmClass { get; set; }
+
+    }//AlgorithmClassViewModel
+}
Index: /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/Shared/EditorTemplates/AlgorithmClass.ascx
===================================================================
--- /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/Shared/EditorTemplates/AlgorithmClass.ascx	(revision 5186)
+++ /branches/WebApplication/MVC2/HLWebOKBAdminPlugin/Views/Shared/EditorTemplates/AlgorithmClass.ascx	(revision 5186)
@@ -0,0 +1,40 @@
+﻿<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<HLWebPluginHost.OKBService.AlgorithmClass>" %>
+
+    <% using (Html.BeginForm()) {%>
+        <%: Html.ValidationSummary(true) %>
+        
+        <fieldset>
+            <legend>Felder</legend>
+            
+            <div class="editor-label">
+                <%: Html.LabelFor(model => model.Description) %>
+            </div>
+            <div class="editor-field">
+                <%: Html.TextBoxFor(model => model.Description) %>
+                <%: Html.ValidationMessageFor(model => model.Description) %>
+            </div>
+            
+            <div class="editor-label">
+                <%: Html.LabelFor(model => model.Name) %>
+            </div>
+            <div class="editor-field">
+                <%: Html.TextBoxFor(model => model.Name) %>
+                <%: Html.ValidationMessageFor(model => model.Name) %>
+            </div>
+            
+            <div class="editor-label">
+                <%: Html.LabelFor(model => model.Id) %>
+            </div>
+            <div class="editor-field">
+                <%: Html.TextBoxFor(model => model.Id) %>
+                <%: Html.ValidationMessageFor(model => model.Id) %>
+            </div>            
+        </fieldset>
+
+    <% } %>
+
+    <div>
+        <%: Html.ActionLink("Back to List", "Index") %>
+    </div>
+
+
Index: /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Create.aspx
===================================================================
--- /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Create.aspx	(revision 5186)
+++ /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Create.aspx	(revision 5186)
@@ -0,0 +1,29 @@
+﻿<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<HLWebOKBAdminPlugin.ViewModels.AlgorithmClassViewModel>" %>
+
+<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
+	Create
+</asp:Content>
+
+<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
+
+    <h2>Create</h2>
+
+    <% using (Html.BeginForm()) {%>
+        <%: Html.ValidationSummary(true) %>
+
+        <fieldset>
+            <legend>Create Algorithm Class</legend>
+            <%: Html.EditorFor(model => model.AlgorithmClass) %>
+            <p>
+                <input type="submit" value="Createx" />
+            </p>
+        </fieldset>
+
+    <% } %>
+
+    <div>
+        <%: Html.ActionLink("Back to List", "Index") %>
+    </div>
+
+</asp:Content>
+
Index: /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Delete.aspx
===================================================================
--- /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Delete.aspx	(revision 5186)
+++ /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Delete.aspx	(revision 5186)
@@ -0,0 +1,24 @@
+﻿<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<HLWebOKBAdminPlugin.ViewModels.AlgorithmClassViewModel>" %>
+
+<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
+	Delete
+</asp:Content>
+
+<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
+
+    <h2>Delete</h2>
+
+    <p>Are you sure you want to delete AlgorithmClass <strong><%: Model.AlgorithmClass.Name %></strong>?</p>
+    <fieldset>
+        <legend>Fields</legend>
+        
+    </fieldset>
+    <% using (Html.BeginForm()) { %>
+        <p>
+		    <input type="submit" value="Delete" /> |
+		    <%: Html.ActionLink("Back to List", "Index") %>
+        </p>
+    <% } %>
+
+</asp:Content>
+
Index: /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Details.aspx
===================================================================
--- /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Details.aspx	(revision 5186)
+++ /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Details.aspx	(revision 5186)
@@ -0,0 +1,21 @@
+﻿<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<HLWebOKBAdminPlugin.ViewModels.AlgorithmClassViewModel>" %>
+
+<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
+	Details
+</asp:Content>
+
+<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
+
+    <h2>Details</h2>
+
+    <fieldset>
+        <legend>Detail AlgorithmClass</legend>
+        <%: Html.EditorFor(model => model.AlgorithmClass) %>
+    </fieldset>
+    <p>
+        <%: Html.ActionLink("Edit", "Edit", new { id=Model.AlgorithmClass.Id}) %> |
+        <%: Html.ActionLink("Back to List", "Index") %>
+    </p>
+
+</asp:Content>
+
Index: /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Edit.aspx
===================================================================
--- /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Edit.aspx	(revision 5186)
+++ /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Edit.aspx	(revision 5186)
@@ -0,0 +1,25 @@
+﻿<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<HLWebOKBAdminPlugin.ViewModels.AlgorithmClassViewModel>" %>
+
+<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
+	Edit
+</asp:Content>
+
+<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
+
+    <h2>Edit</h2>
+
+    <% using (Html.BeginForm()) {%>
+        <%: Html.ValidationSummary(true) %>
+        
+        <fieldset>
+            <legend>Edit AlgorithmClass</legend>
+            <%: Html.EditorFor(model => model.AlgorithmClass) %>
+            <p>
+                <input type="submit" value="Save" />
+            </p>
+        </fieldset>
+
+    <% } %>
+
+</asp:Content>
+
Index: /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Index.aspx
===================================================================
--- /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Index.aspx	(revision 5185)
+++ /branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Views/AlgorithmClass/Index.aspx	(revision 5186)
@@ -1,71 +1,53 @@
-﻿<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
-
-<script runat="server">
-
-    void lbAlgorithmClassOnClick(object sender, EventArgs e) {
-      txtName.Text = "aaa";
-   }
-
-</script>
-
-
+﻿<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<HLWebPluginHost.OKBService.AlgorithmClass>>" %>
+<%@ Import Namespace="HLWebOKBAdminPlugin.Helpers" %>
 <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
 	Index
 </asp:Content>
-    
 
 <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
 
-    <form id="form1" runat="server">
+    <h2>Index</h2>
 
+    <table>
+        <tr>
+            <th></th>
+            <th>
+                Description
+            </th>
+            <th>
+                Name
+            </th>
+            <th>
+                Id
+            </th>
+        </tr>
 
-    <h2>AlgorithmClasses</h2>
+    <% foreach (var item in Model) { %>
     
-    <%--<ul>
-        <%foreach (HLWebPluginHost.OKBService.AlgorithmClass ac in Model.AlgorithmClassList) { %>
-            <li>
-                <%: ac.Name %>
-            </li>
-        <%} %>
-    </ul>--%>
+        <tr>
+            <td>
+                <%: Html.ActionLink("Edit", "Edit", new { id=item.Id }) %> |
+                <%: Html.ActionLink("Details", "Details", new { id=item.Id })%> |
+                <%: Html.ActionLink("Delete", "Delete", new { id = item.Id })%>
+            </td>
+            <td>
+                <%: Html.Truncate(item.Description,25) %>
+            </td>
+            <td>
+                <%: Html.Truncate(item.Name, 25)%>
+            </td>
+            <td>
+                <%: item.Id %>
+            </td>
+        </tr>
     
-    <asp:Panel ID="Panel1" runat="server">
-        <asp:ImageButton ID="btnAddAlgorithmClass" runat="server" 
-            ImageUrl="~/Resources/Plus.bmp" ToolTip="Add Class" BorderColor="Black" 
-            CommandArgument="Id" CommandName="AddAlgorithmClass" />
-        <asp:ImageButton ID="btnDeleteAlgorithmClass" runat="server" 
-            ImageUrl="~/Resources/Delete.bmp" ToolTip="Delete Class" 
-            CommandArgument="Id" CommandName="lgorithmClass" />
-        <asp:ImageButton ID="btnUpdateAlgorithmClass" runat="server" 
-            CommandArgument="Id" CommandName="UpdAlgorithmClass" 
-            ImageUrl="~/Resources/Update.bmp" />
-    </asp:Panel>
+    <% } %>
+
+    </table>
+
     <p>
-        <asp:ListBox ID="lbAlgorithmClass" runat="server" DataSourceID="ODSAlgorithmClasses" 
-            DataTextField="Name" DataValueField="Id" Height="350px" style="margin-top: 0px" 
-            Width="246px">
-        </asp:ListBox>
-        <asp:ObjectDataSource ID="ODSAlgorithmClasses" runat="server" 
-            SelectMethod="AlgorithmClassGetAll" 
-            TypeName="HLWebPluginHost.Models.AlgorithmClassModel">
-        </asp:ObjectDataSource>
-        <asp:Button ID="Button1" Text="Select" OnClick="lbAlgorithmClassOnClick" runat="server"/>
-
+        <%: Html.ActionLink("Create New", "Create") %>
     </p>
-   
-
-    <asp:Panel ID="Panel2" runat="server" Height="139px">
-        <asp:Label ID="lbName" runat="server" Text="Name:"></asp:Label>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-        <asp:TextBox ID="txtName" runat="server" Width="197px"></asp:TextBox>
-        <br />
-        Description:
-        <asp:TextBox ID="txtDescription" runat="server" Width="197px"></asp:TextBox>
-    </asp:Panel>
-   
-
-    </form>
-
-   
 
 </asp:Content>
+
