diff --git a/UCOHomeworkTool.sln b/UCOHomeworkTool.sln index 436cea4..5a38d07 100644 --- a/UCOHomeworkTool.sln +++ b/UCOHomeworkTool.sln @@ -12,6 +12,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{47C8C0 .nuget\NuGet.targets = .nuget\NuGet.targets EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UCOHomeworkTool.test", "UCOHomeworkTool.test\UCOHomeworkTool.test.csproj", "{4EFA08DF-3E1A-4644-B75A-68035684784B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -22,6 +24,10 @@ Global {E47078C4-E8DF-4BAF-9DC6-40A4ACD09E7F}.Debug|Any CPU.Build.0 = Debug|Any CPU {E47078C4-E8DF-4BAF-9DC6-40A4ACD09E7F}.Release|Any CPU.ActiveCfg = Release|Any CPU {E47078C4-E8DF-4BAF-9DC6-40A4ACD09E7F}.Release|Any CPU.Build.0 = Release|Any CPU + {4EFA08DF-3E1A-4644-B75A-68035684784B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4EFA08DF-3E1A-4644-B75A-68035684784B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4EFA08DF-3E1A-4644-B75A-68035684784B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4EFA08DF-3E1A-4644-B75A-68035684784B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/UCOHomeworkTool.test/Properties/AssemblyInfo.cs b/UCOHomeworkTool.test/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6fa6646 --- /dev/null +++ b/UCOHomeworkTool.test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("UCOHomeworkTool.test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("UCOHomeworkTool.test")] +[assembly: AssemblyCopyright("Copyright © 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("d5e468ee-3e2d-4534-a59a-48eaa31c7a43")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/UCOHomeworkTool.test/UCOHomeworkTool.test.csproj b/UCOHomeworkTool.test/UCOHomeworkTool.test.csproj new file mode 100644 index 0000000..35ed741 --- /dev/null +++ b/UCOHomeworkTool.test/UCOHomeworkTool.test.csproj @@ -0,0 +1,83 @@ + + + + Debug + AnyCPU + {4EFA08DF-3E1A-4644-B75A-68035684784B} + Library + Properties + UCOHomeworkTool.test + UCOHomeworkTool.test + v4.5 + 512 + {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages + False + UnitTest + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + False + + + False + + + + + + + + \ No newline at end of file diff --git a/UCOHomeworkTool.test/UnitTest1.cs b/UCOHomeworkTool.test/UnitTest1.cs new file mode 100644 index 0000000..f36b48a --- /dev/null +++ b/UCOHomeworkTool.test/UnitTest1.cs @@ -0,0 +1,14 @@ +using System; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace UCOHomeworkTool.test +{ + [TestClass] + public class UnitTest1 + { + [TestMethod] + public void TestMethod1() + { + } + } +} diff --git a/UCOHomeworkTool/Content/bootstrap.css b/UCOHomeworkTool/Content/bootstrap.css index 7ef1ebd..303ea5c 100644 --- a/UCOHomeworkTool/Content/bootstrap.css +++ b/UCOHomeworkTool/Content/bootstrap.css @@ -4532,7 +4532,7 @@ fieldset[disabled] .navbar-default .btn-link:focus { background-color: transparent; } .navbar-inverse .navbar-toggle .icon-bar { - background-color: rgba(0, 0, 0, 0.5); + background-color: rgba(178, 219, 241, 0.5); } .navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { diff --git a/UCOHomeworkTool/Controllers/HomeController.cs b/UCOHomeworkTool/Controllers/HomeController.cs index 939292a..c672dab 100644 --- a/UCOHomeworkTool/Controllers/HomeController.cs +++ b/UCOHomeworkTool/Controllers/HomeController.cs @@ -4,39 +4,57 @@ using System.Linq; using System.Web; using System.Web.Mvc; +using System.Web.Security; using UCOHomeworkTool.Models; +using Microsoft.AspNet.Identity; +using System.Data.Entity.Migrations; +using UCOHomeworkTool.Migrations; namespace UCOHomeworkTool.Controllers { + [Authorize] public class HomeController : Controller { - [Authorize] public ActionResult Index() { - return View(); + var userId = User.Identity.GetUserId(); + using(var db = new ApplicationDbContext()) + { + var user = db.Users.Find(userId); + var userCourses = user.Courses; + return View(userCourses.ToList()); + } + } + public void DebugDB() + { + var configuration = new Configuration(); + var migrator = new DbMigrator(configuration); + migrator.Update(); } - [Authorize] public ActionResult Assignment(int id) { - using (var database = new ApplicationDbContext()) + using (var db = new ApplicationDbContext()) { - var assignmentModel = database.Assignments.Include("Problems").SingleOrDefault(x => x.Id == id); + var assignmentModel = db.Assignments.Include("Problems").SingleOrDefault(x => x.Id == id); var problemsModel = assignmentModel.Problems; foreach (var prob in problemsModel) { - database.Entry(prob).Collection("Givens").Load(); - database.Entry(prob).Collection("Responses").Load(); + db.Entry(prob).Collection("Givens").Load(); + db.Entry(prob).Collection("Responses").Load(); } return PartialView(problemsModel.ToList()); } } - public ActionResult _Sidebar() + public ActionResult Course(int id) { + + var userId = User.Identity.GetUserId(); using (var db = new ApplicationDbContext()) { - var assignmentList = db.Assignments.ToList(); - return PartialView(assignmentList); + var assignmentList = db.Assignments.Where(x => x.Course.Id == id && x.Student.Id == userId).ToList(); + return View(assignmentList); } + } } } \ No newline at end of file diff --git a/UCOHomeworkTool/Migrations/201505261935338_addTemplatesAndStudentToAssignment.Designer.cs b/UCOHomeworkTool/Migrations/201505261935338_addTemplatesAndStudentToAssignment.Designer.cs new file mode 100644 index 0000000..afc8f8d --- /dev/null +++ b/UCOHomeworkTool/Migrations/201505261935338_addTemplatesAndStudentToAssignment.Designer.cs @@ -0,0 +1,29 @@ +// +namespace UCOHomeworkTool.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.1.3-40302")] + public sealed partial class addTemplatesAndStudentToAssignment : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(addTemplatesAndStudentToAssignment)); + + string IMigrationMetadata.Id + { + get { return "201505261935338_addTemplatesAndStudentToAssignment"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/UCOHomeworkTool/Migrations/201505261935338_addTemplatesAndStudentToAssignment.cs b/UCOHomeworkTool/Migrations/201505261935338_addTemplatesAndStudentToAssignment.cs new file mode 100644 index 0000000..c58ef75 --- /dev/null +++ b/UCOHomeworkTool/Migrations/201505261935338_addTemplatesAndStudentToAssignment.cs @@ -0,0 +1,42 @@ +namespace UCOHomeworkTool.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class addTemplatesAndStudentToAssignment : DbMigration + { + public override void Up() + { + DropForeignKey("dbo.Assignments", "Course_Id", "dbo.Courses"); + AddColumn("dbo.Assignments", "Course_Id1", c => c.Int()); + AddColumn("dbo.Assignments", "Course_Id2", c => c.Int()); + AddColumn("dbo.Assignments", "Student_Id", c => c.String(maxLength: 128)); + AddColumn("dbo.Givens", "minRange", c => c.Double()); + AddColumn("dbo.Givens", "maxRange", c => c.Double()); + AddColumn("dbo.Givens", "Discriminator", c => c.String(nullable: false, maxLength: 128)); + CreateIndex("dbo.Assignments", "Course_Id1"); + CreateIndex("dbo.Assignments", "Course_Id2"); + CreateIndex("dbo.Assignments", "Student_Id"); + AddForeignKey("dbo.Assignments", "Course_Id1", "dbo.Courses", "Id"); + AddForeignKey("dbo.Assignments", "Student_Id", "dbo.AspNetUsers", "Id"); + AddForeignKey("dbo.Assignments", "Course_Id2", "dbo.Courses", "Id"); + } + + public override void Down() + { + DropForeignKey("dbo.Assignments", "Course_Id2", "dbo.Courses"); + DropForeignKey("dbo.Assignments", "Student_Id", "dbo.AspNetUsers"); + DropForeignKey("dbo.Assignments", "Course_Id1", "dbo.Courses"); + DropIndex("dbo.Assignments", new[] { "Student_Id" }); + DropIndex("dbo.Assignments", new[] { "Course_Id2" }); + DropIndex("dbo.Assignments", new[] { "Course_Id1" }); + DropColumn("dbo.Givens", "Discriminator"); + DropColumn("dbo.Givens", "maxRange"); + DropColumn("dbo.Givens", "minRange"); + DropColumn("dbo.Assignments", "Student_Id"); + DropColumn("dbo.Assignments", "Course_Id2"); + DropColumn("dbo.Assignments", "Course_Id1"); + AddForeignKey("dbo.Assignments", "Course_Id", "dbo.Courses", "Id"); + } + } +} diff --git a/UCOHomeworkTool/Migrations/201505261935338_addTemplatesAndStudentToAssignment.resx b/UCOHomeworkTool/Migrations/201505261935338_addTemplatesAndStudentToAssignment.resx new file mode 100644 index 0000000..0969302 --- /dev/null +++ b/UCOHomeworkTool/Migrations/201505261935338_addTemplatesAndStudentToAssignment.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/UCOHomeworkTool/Migrations/201505262001420_fixTypo.Designer.cs b/UCOHomeworkTool/Migrations/201505262001420_fixTypo.Designer.cs new file mode 100644 index 0000000..b862ff3 --- /dev/null +++ b/UCOHomeworkTool/Migrations/201505262001420_fixTypo.Designer.cs @@ -0,0 +1,29 @@ +// +namespace UCOHomeworkTool.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.1.3-40302")] + public sealed partial class fixTypo : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(fixTypo)); + + string IMigrationMetadata.Id + { + get { return "201505262001420_fixTypo"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/UCOHomeworkTool/Migrations/201505262001420_fixTypo.cs b/UCOHomeworkTool/Migrations/201505262001420_fixTypo.cs new file mode 100644 index 0000000..56a26fa --- /dev/null +++ b/UCOHomeworkTool/Migrations/201505262001420_fixTypo.cs @@ -0,0 +1,20 @@ +namespace UCOHomeworkTool.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class fixTypo : DbMigration + { + public override void Up() + { + AddColumn("dbo.Problems", "ProblemNumber", c => c.Int(nullable: false)); + DropColumn("dbo.Problems", "ProblemNumeber"); + } + + public override void Down() + { + AddColumn("dbo.Problems", "ProblemNumeber", c => c.Int(nullable: false)); + DropColumn("dbo.Problems", "ProblemNumber"); + } + } +} diff --git a/UCOHomeworkTool/Migrations/201505262001420_fixTypo.resx b/UCOHomeworkTool/Migrations/201505262001420_fixTypo.resx new file mode 100644 index 0000000..45a9255 --- /dev/null +++ b/UCOHomeworkTool/Migrations/201505262001420_fixTypo.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/UCOHomeworkTool/Migrations/Configuration.cs b/UCOHomeworkTool/Migrations/Configuration.cs index c86a3f3..b427f40 100644 --- a/UCOHomeworkTool/Migrations/Configuration.cs +++ b/UCOHomeworkTool/Migrations/Configuration.cs @@ -1,9 +1,12 @@ namespace UCOHomeworkTool.Migrations { + using Microsoft.AspNet.Identity; using System; using System.Collections.Generic; using System.Data.Entity; using System.Data.Entity.Migrations; + using System.Data.Entity.Validation; + using System.Diagnostics; using System.Linq; using UCOHomeworkTool.Models; @@ -28,70 +31,102 @@ protected override void Seed(UCOHomeworkTool.Models.ApplicationDbContext context // new Person { FullName = "Rowan Miller" } // ); // + + //clear database maunally because not doing so causes AddOrUpdate to throw error from not using unique identifiers + //Unique identifiers (keys) cannot be used without generating them manually, its easier to just let EF handle that. + + context.Database.ExecuteSqlCommand("delete from Responses"); + context.Database.ExecuteSqlCommand("delete from Givens"); + context.Database.ExecuteSqlCommand("delete from Problems"); + context.Database.ExecuteSqlCommand("delete from Assignments"); + context.Database.ExecuteSqlCommand("delete from Courses"); + context.Database.ExecuteSqlCommand("delete from ApplicationUserCourses"); + context.Database.ExecuteSqlCommand("delete from AspNetUsers"); + + //set up myUser for testing + var passwordHash = new PasswordHasher(); + var myUser = new ApplicationUser + { + UserName = "20342421", + PasswordHash = passwordHash.HashPassword("password"), + Courses = new List(), + SecurityStamp = Guid.NewGuid().ToString(), + }; + + + //create Signals course for myUser and enroll myUser in course var courses = new List { - new Course {Name = "Signals", Assignments = new List()}, + new Course {Name = "Signals", Assignments = new List(), Templates = new List()}, }; courses.ForEach(c => context.Courses.AddOrUpdate(u => u.Name, c)); + context.Users.AddOrUpdate(u => u.UserName, myUser); + context.Users.Find(myUser.Id).Courses = courses; + //create assignment templates to be used in Signals course var assignments = new List { - new Assignment {AssignmentNumber = 1, Problems = new List()}, - new Assignment {AssignmentNumber = 2, Problems = new List()}, - new Assignment {AssignmentNumber = 3, Problems = new List()}, - new Assignment {AssignmentNumber = 4, Problems = new List()}, + new Assignment {AssignmentNumber = 1, Problems = new List(), Course = courses[0]}, + new Assignment {AssignmentNumber = 2, Problems = new List(), Course = courses[0]}, + new Assignment {AssignmentNumber = 3, Problems = new List(), Course = courses[0]}, + new Assignment {AssignmentNumber = 4, Problems = new List(), Course = courses[0]}, }; assignments.ForEach(a => context.Assignments.AddOrUpdate(u => u.AssignmentNumber, a)); - context.Courses.Find(1).Assignments.AddRange(assignments); + context.Courses.Find(courses[0].Id).Templates.AddRange(assignments); context.SaveChanges(); var problems = new List(); foreach (var assignment in assignments) { var localProblems = new List { - new Problem {ProblemNumeber = 1, Givens = new List(), Responses = new List()}, - new Problem {ProblemNumeber = 2, Givens = new List(), Responses = new List()}, - new Problem {ProblemNumeber = 3, Givens = new List(), Responses = new List()}, - new Problem {ProblemNumeber = 4, Givens = new List(), Responses = new List()}, - new Problem {ProblemNumeber = 5, Givens = new List(), Responses = new List()}, - new Problem {ProblemNumeber = 6, Givens = new List(), Responses = new List()}, + new Problem {ProblemNumber = 1, Givens = new List(), Responses = new List()}, + new Problem {ProblemNumber = 2, Givens = new List(), Responses = new List()}, + new Problem {ProblemNumber = 3, Givens = new List(), Responses = new List()}, + new Problem {ProblemNumber = 4, Givens = new List(), Responses = new List()}, + new Problem {ProblemNumber = 5, Givens = new List(), Responses = new List()}, + new Problem {ProblemNumber = 6, Givens = new List(), Responses = new List()}, }; assignment.Problems.AddRange(localProblems); problems.AddRange(localProblems); } - problems.ForEach(p => context.Problems.AddOrUpdate(u => u.ProblemNumeber, p)); - + problems.ForEach(p => context.Problems.AddOrUpdate(u => u.ProblemNumber, p)); context.SaveChanges(); - - Random rand = new Random(); - var givens = new List(); foreach(var problem in problems) { var localGivens = new List(); for(int i = 0; i < 5; i++) { - localGivens.Add(new Given { Label = "P" + i + problem.ProblemNumeber , Value = rand.NextDouble() + rand.Next() }); + localGivens.Add(new GivenTemplate { Label = "P" + i + problem.ProblemNumber , minRange = 1.5, maxRange = 8.4 }); } problem.Givens.AddRange(localGivens); givens.AddRange(localGivens); } givens.ForEach(g => context.Givens.AddOrUpdate(u => u.Label, g)); context.SaveChanges(); - var responses = new List(); foreach( var problem in problems) { var localResp = new List(); for (int i = 0; i < 2; i++) { - localResp.Add(new Response { Label = "A" + i + problem.ProblemNumeber, Expected = rand.NextDouble() }); + localResp.Add(new Response { Label = "A" + i + problem.ProblemNumber }); } problem.Responses.AddRange(localResp); responses.AddRange(localResp); } responses.ForEach(r => context.Responses.AddOrUpdate(u => u.Label, r)); + //use template assignment to create assignment for myUser + var assignmentsForMyUser = new List(); + foreach(var assignment in assignments) + { + var newAssignment = new Assignment(assignment); + newAssignment.Student = myUser; + assignmentsForMyUser.Add(newAssignment); + } + context.Courses.Find(courses[0].Id).Assignments.AddRange(assignmentsForMyUser); + context.SaveChanges(); } } diff --git a/UCOHomeworkTool/Models/ApplicationModels.cs b/UCOHomeworkTool/Models/ApplicationModels.cs index 9a7add8..f5952d8 100644 --- a/UCOHomeworkTool/Models/ApplicationModels.cs +++ b/UCOHomeworkTool/Models/ApplicationModels.cs @@ -6,36 +6,96 @@ namespace UCOHomeworkTool.Models { + //static RNG members + public static class Rand + { + private static readonly Random random = new Random(); + private static readonly object syncLock = new object(); + public static double RandomNumber(double min, double max) + { + return random.NextDouble() * (max - min) + min; + } + } public class Course { public int Id { get; set; } public string Name { get; set; } + public virtual List Templates { get; set; } public virtual List Assignments{ get; set; } public virtual List Students { get; set; } } public class Assignment { + public Assignment() { } + public Assignment(Assignment toCopy) + { + AssignmentNumber = toCopy.AssignmentNumber; + Course = toCopy.Course; + Problems = new List(); + foreach(var prob in toCopy.Problems) + { + var newProb = new Problem(prob); + Problems.Add(newProb); + } + } public int Id { get; set; } public int AssignmentNumber { get; set; } public virtual List Problems{ get; set; } public virtual Course Course{ get; set; } + public virtual ApplicationUser Student{ get; set; } } public class Problem { + public Problem() { } + public Problem(Problem toCopy) + { + ProblemNumber = toCopy.ProblemNumber; + Givens = new List(); + foreach(GivenTemplate given in toCopy.Givens) + { + var newGiven = new Given(given); + newGiven.Problem = this; + Givens.Add(newGiven); + } + Responses = new List(); + foreach(var resp in toCopy.Responses) + { + var newResp = new Response(resp); + newResp.Problem = this; + Responses.Add(newResp); + } + } public int Id { get; set; } - public int ProblemNumeber{ get; set; } + public int ProblemNumber{ get; set; } public virtual List Givens{ get; set; } public virtual List Responses { get; set; } } public class Given { + public Given() { } + public Given(GivenTemplate toCopy) + { + Label = toCopy.Label; + Random rand = new Random(); + Value = Rand.RandomNumber(toCopy.minRange, toCopy.maxRange); + } public int Id { get; set; } public string Label{ get; set; } public double Value { get; set; } public virtual Problem Problem{ get; set; } } + public class GivenTemplate : Given + { + public double minRange { get; set; } + public double maxRange { get; set; } + } public class Response { + public Response() { } + public Response(Response toCopy) + { + Label = toCopy.Label; + } public int Id { get; set; } public string Label { get; set; } public double Expected{ get; set; } diff --git a/UCOHomeworkTool/UCOHomeworkTool.csproj b/UCOHomeworkTool/UCOHomeworkTool.csproj index cc8d0ca..3ec3ccd 100644 --- a/UCOHomeworkTool/UCOHomeworkTool.csproj +++ b/UCOHomeworkTool/UCOHomeworkTool.csproj @@ -196,6 +196,14 @@ 201505211534349_initial.cs + + + 201505261935338_addTemplatesAndStudentToAssignment.cs + + + + 201505262001420_fixTypo.cs + @@ -264,6 +272,7 @@ + @@ -276,11 +285,20 @@ 201505211534349_initial.cs + + 201505261935338_addTemplatesAndStudentToAssignment.cs + + + 201505262001420_fixTypo.cs + 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + @@ -301,6 +319,9 @@ False + + + diff --git a/UCOHomeworkTool/Views/Home/Assignment.cshtml b/UCOHomeworkTool/Views/Home/Assignment.cshtml index bec55a5..3beecc6 100644 --- a/UCOHomeworkTool/Views/Home/Assignment.cshtml +++ b/UCOHomeworkTool/Views/Home/Assignment.cshtml @@ -1,17 +1,16 @@ @model IEnumerable -
@foreach (var problem in Model) { - var collapseLink = "#collapse" + problem.ProblemNumeber; - var collapseId = "collapse" + problem.ProblemNumeber; + var collapseLink = "#collapse" + problem.ProblemNumber; + var collapseId = "collapse" + problem.ProblemNumber;
diff --git a/UCOHomeworkTool/Views/Home/Course.cshtml b/UCOHomeworkTool/Views/Home/Course.cshtml new file mode 100644 index 0000000..a1a7f93 --- /dev/null +++ b/UCOHomeworkTool/Views/Home/Course.cshtml @@ -0,0 +1,10 @@ +@model IEnumerable + +@{ + ViewBag.Title = "Course"; +} +@section Sidebar +{ + @{Html.RenderPartial("_Sidebar", Model);} +} + diff --git a/UCOHomeworkTool/Views/Home/Index.cshtml b/UCOHomeworkTool/Views/Home/Index.cshtml index c48a5e7..feb9fff 100644 --- a/UCOHomeworkTool/Views/Home/Index.cshtml +++ b/UCOHomeworkTool/Views/Home/Index.cshtml @@ -1,13 +1,18 @@ -@{ +@model IEnumerable +@{ ViewBag.Title = "Home Page"; } -
- -
+

Your Courses:

+ \ No newline at end of file + diff --git a/UCOHomeworkTool/Views/Shared/_Layout.cshtml b/UCOHomeworkTool/Views/Shared/_Layout.cshtml index 6deec20..b182117 100644 --- a/UCOHomeworkTool/Views/Shared/_Layout.cshtml +++ b/UCOHomeworkTool/Views/Shared/_Layout.cshtml @@ -31,11 +31,14 @@
- @RenderBody() +
+ + @RenderBody() +