You do not have a local username/password for this site. Add a local
diff --git a/hacapp.web/hacapp.web/Views/Home/About.cshtml b/hacapp.web/hacapp.web/Views/Home/About.cshtml
index 4b2d9e8..b4e99e2 100644
--- a/hacapp.web/hacapp.web/Views/Home/About.cshtml
+++ b/hacapp.web/hacapp.web/Views/Home/About.cshtml
@@ -4,4 +4,4 @@
Use this area to provide additional information.
+This application provides a workflow management tool, mainly for producing foodstuffs.
diff --git a/hacapp.web/hacapp.web/Views/Home/Contact.cshtml b/hacapp.web/hacapp.web/Views/Home/Contact.cshtml
index 0f4327e..cc3cdd0 100644
--- a/hacapp.web/hacapp.web/Views/Home/Contact.cshtml
+++ b/hacapp.web/hacapp.web/Views/Home/Contact.cshtml
@@ -5,13 +5,9 @@
You have not yet created or joined a team. A team is a collection of 1 or more people who will participate in the management of the processes that are defined.
+If you are the owner of the processes then you will want to create a new team. If you work for someone who uses this app to manage their processes then you will want to join a team.
+
- @Html.ActionLink("Home", "Index", "Home")
+ - @Html.ActionLink("Team", "Index", "Team")
+ - @Html.ActionLink("Processes", "Index", "Process")
- @Html.ActionLink("About", "About", "Home")
- @Html.ActionLink("Contact", "Contact", "Home")
diff --git a/hacapp.web/hacapp.web/Views/Team/Create.cshtml b/hacapp.web/hacapp.web/Views/Team/Create.cshtml
new file mode 100644
index 0000000..feec04b
--- /dev/null
+++ b/hacapp.web/hacapp.web/Views/Team/Create.cshtml
@@ -0,0 +1,26 @@
+@model Hacapp.Web.Models.Team.CreateTeamViewModel
+
+@{
+ ViewBag.Title = "New team";
+}
+
+
@ViewBag.Title
+
+@using (Html.BeginForm("Create", "Team", FormMethod.Post,
+ new {@class = "form-horizontal", role = "form"}))
+{
+ @Html.AntiForgeryToken()
+
Create a new team
+ @Html.ValidationSummary()
+
+
+}
diff --git a/hacapp.web/hacapp.web/Views/Team/Details.cshtml b/hacapp.web/hacapp.web/Views/Team/Details.cshtml
new file mode 100644
index 0000000..dec0007
--- /dev/null
+++ b/hacapp.web/hacapp.web/Views/Team/Details.cshtml
@@ -0,0 +1,89 @@
+@using System.Activities.Statements
+@using Hacapp.Web.Models.Team
+@model Hacapp.Web.Models.Team.TeamDetailsViewModel
+
+@{
+ ViewBag.Title="Team Details ";
+}
+
+
+
+
+
Team Details for the team @Model.Name
+
+
+
+
+
Team Owner
+
@Model.Owner.UserName
+
+
+
+@if (Model.ConfirmedMembers.Any())
+{
+
+
+
Confirmed members
+
+
+ foreach (var user in Model.ConfirmedMembers)
+ {
+
+
+ @if (Model.IsEditable)
+ {
+
+ @Html.ActionLink("Remove user", "UpdateMembership", "Team", new {idOfUserToUpdate = @user.Id, teamId = @Model.Id, newStatus = UserMembershipStatus.Removed}, new { Class="btn btn-sm btn-default"})
+
+ }
+
+ }
+}
+@if(Model.PendingMembers.Any())
+{
+
+ foreach (var user in Model.PendingMembers)
+ {
+
+
+ @if (Model.IsEditable)
+ {
+
+ @Html.ActionLink("Remove user", "UpdateMembership", "Team", new {idOfUserToUpdate = @user.Id, teamId = @Model.Id, newStatus = UserMembershipStatus.Removed}, new { Class="btn btn-sm btn-default"})
+ @Html.ActionLink("Confirm user membership", "UpdateMembership", "Team", new { idOfUserToUpdate = @user.Id, teamId = @Model.Id, newStatus = UserMembershipStatus.Confirmed }, new { Class = "btn btn-sm btn-default" })
+
+ }
+
+ }
+}
+@if (Model.SuspendedMembers.Any())
+{
+
+
+
Confirmed members
+
+
+ foreach (var user in Model.SuspendedMembers)
+ {
+
+
+ @if (Model.IsEditable)
+ {
+
+ @Html.ActionLink("Remove user", "UpdateMembership", "Team", new {idOfUserToUpdate = @user.Id, teamId = @Model.Id, newStatus = UserMembershipStatus.Removed}, new { Class="btn btn-sm btn-default"})
+ @Html.ActionLink("Confirm user membership", "UpdateMembership", "Team", new { idOfUserToUpdate = @user.Id, teamId = @Model.Id, newStatus = UserMembershipStatus.Confirmed }, new { Class = "btn btn-sm btn-default" })
+
+ }
+
+ }
+}
diff --git a/hacapp.web/hacapp.web/Views/Team/Index.cshtml b/hacapp.web/hacapp.web/Views/Team/Index.cshtml
new file mode 100644
index 0000000..22bced6
--- /dev/null
+++ b/hacapp.web/hacapp.web/Views/Team/Index.cshtml
@@ -0,0 +1,28 @@
+@model List
+
+@{
+ ViewBag.Title="Teams";
+}
+
+
+@foreach (var team in Model)
+{
+
+
+ @Html.ActionLink(@team.Name, "Details", new { Id = team.Id })
+ @if (team.IsEditable)
+ {
+ @Html.ActionLink("Delete team", "Delete", new { Id = team.Id }, new { Class = "btn btn-xs btn-default" })
+ }
+
+
+}
+
+ @Html.ActionLink("Join another team", "Join", null, new { Class = "btn btn-default btn-sm" })
+
+
+
diff --git a/hacapp.web/hacapp.web/Views/Team/IndexNoTeams.cshtml b/hacapp.web/hacapp.web/Views/Team/IndexNoTeams.cshtml
new file mode 100644
index 0000000..2eb74dd
--- /dev/null
+++ b/hacapp.web/hacapp.web/Views/Team/IndexNoTeams.cshtml
@@ -0,0 +1,27 @@
+@{
+ ViewBag.Title = "Getting Started";
+}
+
+
+
+
@ViewBag.Message
+
Getting started
+
+ You have not yet created or joined a team. A team is a collection of 1 or more people who will
+ participate in the management of the processes that are defined.
+
+
+ If you are the owner of the processes then you will want to create a new team.
+ If you work for someone who uses this app to manage their processes then you will
+ want to join a team.
+
+
+
+
+
+
+ @Html.ActionLink("Create a new team", "Create", "Team", null, new {Class="btn btn-default"})
+ @Html.ActionLink("Join an existing team", "Join", "Team", null, new { Class = "btn btn-default" })
+
+
+
diff --git a/hacapp.web/hacapp.web/Views/Team/Join.cshtml b/hacapp.web/hacapp.web/Views/Team/Join.cshtml
new file mode 100644
index 0000000..9ddec7d
--- /dev/null
+++ b/hacapp.web/hacapp.web/Views/Team/Join.cshtml
@@ -0,0 +1,20 @@
+
+@using Hacapp.Web.Models.Team
+@model System.Collections.Generic.IEnumerable
+
+
+@foreach (TeamDetailsViewModel team in Model)
+{
+
+
+ @team.Name
+
+
+ @Html.ActionLink("Join this team", "Join", new { teamId = team.Id }, new { Class = "btn btn-default btn-sm" })
+
+
+}
\ No newline at end of file
diff --git a/hacapp.web/hacapp.web/Views/Team/NoTeamToJoin.cshtml b/hacapp.web/hacapp.web/Views/Team/NoTeamToJoin.cshtml
new file mode 100644
index 0000000..55d5dc8
--- /dev/null
+++ b/hacapp.web/hacapp.web/Views/Team/NoTeamToJoin.cshtml
@@ -0,0 +1,21 @@
+@{
+ ViewBag.Title = "No teams yet!";
+}
+
+
+
+
No Teams!
+
+ Hmmm. It looks like you want to join a team, but no teams exist yet.
+
+
+ Why don't you be the first person to create a team?
+
+
+
+
+
diff --git a/hacapp.web/hacapp.web/Views/Team/NotAMemberOfATeam.cshtml b/hacapp.web/hacapp.web/Views/Team/NotAMemberOfATeam.cshtml
new file mode 100644
index 0000000..3e96aa1
--- /dev/null
+++ b/hacapp.web/hacapp.web/Views/Team/NotAMemberOfATeam.cshtml
@@ -0,0 +1,3 @@
+No permissions!
+You are not a member of this team, so cannot view the details
+Show me my teams
\ No newline at end of file
diff --git a/hacapp.web/hacapp.web/Web.config b/hacapp.web/hacapp.web/Web.config
index 12b3327..7124e4f 100644
--- a/hacapp.web/hacapp.web/Web.config
+++ b/hacapp.web/hacapp.web/Web.config
@@ -7,26 +7,36 @@
-
+
-
+
-
+
-
+
+
+
+
+
-
-
+
+
+
+
+
+
+
@@ -35,7 +45,7 @@
-
+
@@ -47,10 +57,11 @@
-
-
-
-
-
+
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/hacapp.web/hacapp.web/hacapp.web.csproj b/hacapp.web/hacapp.web/hacapp.web.csproj
index b4c3305..f9e8b1c 100644
--- a/hacapp.web/hacapp.web/hacapp.web.csproj
+++ b/hacapp.web/hacapp.web/hacapp.web.csproj
@@ -20,6 +20,7 @@
+ ..\packages\Fody.1.19.1.0
true
@@ -39,19 +40,80 @@
4
+
+ ..\packages\AutoMapper.3.1.1\lib\net40\AutoMapper.dll
+
+
+ ..\packages\AutoMapper.3.1.1\lib\net40\AutoMapper.Net4.dll
+
+
+ ..\packages\Glimpse.Ado.1.7.0\lib\net45\Glimpse.Ado.dll
+
+
+ ..\packages\Glimpse.AspNet.1.8.0\lib\net45\Glimpse.AspNet.dll
+
+
+ ..\packages\Glimpse.1.8.2\lib\net45\Glimpse.Core.dll
+
+
+ ..\packages\Glimpse.EF6.1.6.0\lib\net45\Glimpse.EF6.dll
+
+
+ ..\packages\Glimpse.Mvc5.1.5.3\lib\net45\Glimpse.Mvc5.dll
+
+
+ ..\packages\Unity.3.0.1304.1\lib\Net45\Microsoft.Practices.Unity.dll
+
+
+ ..\packages\Unity.3.0.1304.1\lib\Net45\Microsoft.Practices.Unity.Configuration.dll
+
+
+ ..\packages\NullGuard.Fody.1.1.0.0\Lib\portable-net4+sl4+wp7+win8+MonoAndroid16+MonoTouch40\NullGuard.dll
+ False
+
+
+ ..\packages\routedebugger.2.1.4.0\lib\net40\RouteDebugger.dll
+
+
+ ..\packages\SimpleInjector.2.4.0\lib\net45\SimpleInjector.dll
+
+
+ ..\packages\SimpleInjector.2.4.0\lib\net45\SimpleInjector.Diagnostics.dll
+
+
+ ..\packages\SimpleInjector.Integration.Web.2.4.0\lib\net40\SimpleInjector.Integration.Web.dll
+
+
+ ..\packages\SimpleInjector.Integration.Web.Mvc.2.4.0\lib\net40\SimpleInjector.Integration.Web.Mvc.dll
+
..\packages\SlowCheetah.Tasks.Unofficial.1.0.0\lib\SlowCheetah.Tasks.dll
+
+ False
+ ..\packages\Microsoft.AspNet.WebApi.Client.5.0.0\lib\net45\System.Net.Http.Formatting.dll
+
+
+ False
+ ..\packages\Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45\System.Web.Http.dll
+
+
+ ..\packages\Microsoft.AspNet.WebApi.Owin.5.0.0\lib\net45\System.Web.Http.Owin.dll
+
+
+ False
+ ..\packages\Microsoft.AspNet.WebApi.WebHost.5.0.0\lib\net45\System.Web.Http.WebHost.dll
+
@@ -100,6 +162,9 @@
True
..\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll
+
+ ..\packages\Unity.Mvc5.1.1\lib\net45\Unity.Mvc5.dll
+
True
..\packages\WebGrease.1.5.2\lib\WebGrease.dll
@@ -161,25 +226,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Global.asax
-
-
+
+ AutoMapper.Net4.dll
+ PreserveNewest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -219,9 +320,20 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -230,6 +342,28 @@
+
+
+ {0A01520A-83F2-41F3-B2DE-B3AAA0A861B4}
+ Hacapp.Contracts
+
+
+ {38A957ED-6237-439D-93AC-220BFD7D0409}
+ Hacapp.Core
+
+
+ {2282989C-3FAB-404C-BF85-3BE9A5228E23}
+ Hacapp.Data
+
+
+ {e9399e7b-5c32-4b5e-b8f5-be6cf8aaaf3e}
+ Hacapp.Web.Models
+
+
+ {1f19b069-bbef-4c41-b2a1-845893f87586}
+ Haccapp.Model
+
+
10.0
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
@@ -258,6 +392,7 @@
+