diff options
| -rw-r--r-- | Project-Unite/Controllers/ProfilesController.cs | 29 | ||||
| -rw-r--r-- | Project-Unite/Models/IdentityModels.cs | 31 | ||||
| -rw-r--r-- | Project-Unite/Project-Unite.csproj | 3 | ||||
| -rw-r--r-- | Project-Unite/Views/Profiles/ViewProfile.cshtml | 27 | ||||
| -rw-r--r-- | Project-Unite/Views/Shared/_Layout.cshtml | 9 |
5 files changed, 98 insertions, 1 deletions
diff --git a/Project-Unite/Controllers/ProfilesController.cs b/Project-Unite/Controllers/ProfilesController.cs new file mode 100644 index 0000000..c77afda --- /dev/null +++ b/Project-Unite/Controllers/ProfilesController.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Mvc; +using Project_Unite.Models; + +namespace Project_Unite.Controllers +{ + [Authorize] + public class ProfilesController : Controller + { + // GET: Profiles + public ActionResult Index() + { + return View(); + } + + public ActionResult ViewProfile(string id) + { + var db = new ApplicationDbContext(); + var user = db.Users.FirstOrDefault(x => x.DisplayName == id); + if (user == null) + return new HttpStatusCodeResult(404); + + return View(user); + } + } +}
\ No newline at end of file diff --git a/Project-Unite/Models/IdentityModels.cs b/Project-Unite/Models/IdentityModels.cs index 1cf9577..71b12b9 100644 --- a/Project-Unite/Models/IdentityModels.cs +++ b/Project-Unite/Models/IdentityModels.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Data.Entity; using System.Data.Entity.Infrastructure; using System.Linq; @@ -131,4 +132,34 @@ namespace Project_Unite.Models public DbSet<ForumPost> ForumPosts { get; set; } } + + public class UserPost + { + public string Id { get; set; } + public string UserId { get; set; } + + [MaxLength(1000, ErrorMessage ="Your post can't have more than 1000 characters.")] + [AllowHtml] + [MinLength(20, ErrorMessage ="To prevent spam, you must have at least 20 characters in your post.")] + public string PostContents { get; set; } + + public DateTime PostedAt { get; set; } + + public Like[] Likes + { + get + { + return new ApplicationDbContext().Likes.Where(l => l.Topic == this.Id).Where(x => x.IsDislike == false).ToArray(); + } + } + + public Like[] Dislikes + { + get + { + return new ApplicationDbContext().Likes.Where(l => l.Topic == this.Id).Where(x => x.IsDislike == true).ToArray(); + } + } + + } }
\ No newline at end of file diff --git a/Project-Unite/Project-Unite.csproj b/Project-Unite/Project-Unite.csproj index 100b767..9c09bdb 100644 --- a/Project-Unite/Project-Unite.csproj +++ b/Project-Unite/Project-Unite.csproj @@ -232,6 +232,7 @@ <Compile Include="Controllers\LegalController.cs" /> <Compile Include="Controllers\ManageController.cs" /> <Compile Include="Controllers\ModeratorController.cs" /> + <Compile Include="Controllers\ProfilesController.cs" /> <Compile Include="Global.asax.cs"> <DependentUpon>Global.asax</DependentUpon> </Compile> @@ -505,6 +506,8 @@ <Content Include="Views\Shared\_PostModerationBar.cshtml" /> <Content Include="Views\Forum\EditPost.cshtml" /> <Content Include="Views\Legal\TOS.cshtml" /> + <Content Include="Views\Profiles\ViewProfile.cshtml" /> + <Content Include="Views\Profile\ViewProfile.cshtml" /> </ItemGroup> <ItemGroup> <Folder Include="App_Data\" /> diff --git a/Project-Unite/Views/Profiles/ViewProfile.cshtml b/Project-Unite/Views/Profiles/ViewProfile.cshtml new file mode 100644 index 0000000..94ca858 --- /dev/null +++ b/Project-Unite/Views/Profiles/ViewProfile.cshtml @@ -0,0 +1,27 @@ +@model Project_Unite.Models.ApplicationUser +@{ + ViewBag.Title = Model.DisplayName; + ViewBag.Banner = Model.BannerUrl; +} + +<div class="row"> + <h3> + <img src="@Model.AvatarUrl" width="64" height="64" /> @if (string.IsNullOrWhiteSpace(Model.FullName)) + { <strong> @Model.DisplayName </strong>} + else + { + <strong>@Model.FullName</strong> <em>(@Model.DisplayName)</em>} + </h3> +</div> + +<div class="row"> + <div class="col-xs-4"> + <h4>User stats</h4> + <ul> + <li><strong>@Model.Codepoints</strong> Codepoints</li> + <li><strong>Joined at: </strong>@Model.JoinedAt</li> + <li><strong>Posts: </strong>@Model.PostCount</li> + <li><strong>Topics: </strong>@Model.TopicCount</li> + </ul> + </div> +</div>
\ No newline at end of file diff --git a/Project-Unite/Views/Shared/_Layout.cshtml b/Project-Unite/Views/Shared/_Layout.cshtml index 932593f..6530022 100644 --- a/Project-Unite/Views/Shared/_Layout.cshtml +++ b/Project-Unite/Views/Shared/_Layout.cshtml @@ -12,7 +12,14 @@ @Scripts.Render("~/bundles/modernizr") </head> -<body> +@{ + string style = ""; + if(ViewBag.Model != null) + { + style = "background-image: url(\"" + ViewBag.Model + "\") cover;"; + } +} +<body style="@style"> @Scripts.Render("~/Scripts/highlight.js") <div class="navbar navbar-default navbar-fixed-top"> <div> <!--Let's just add some padding there so the page doesn't look fucked.--> |
