summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-03-23 18:08:20 -0400
committerMichael <[email protected]>2017-03-23 18:08:20 -0400
commit0f2629f0603b3c8f5dddf0747da6916dbf479dc4 (patch)
tree277a286b77ccaead5bd8f948f4eca9c0239ecabb
parent8330fbc5cb51d359d3716c431d1b4af0d31d4e2c (diff)
downloadproject-unite-0f2629f0603b3c8f5dddf0747da6916dbf479dc4.tar.gz
project-unite-0f2629f0603b3c8f5dddf0747da6916dbf479dc4.tar.bz2
project-unite-0f2629f0603b3c8f5dddf0747da6916dbf479dc4.zip
Profile work.
-rw-r--r--Project-Unite/Controllers/ProfilesController.cs29
-rw-r--r--Project-Unite/Models/IdentityModels.cs31
-rw-r--r--Project-Unite/Project-Unite.csproj3
-rw-r--r--Project-Unite/Views/Profiles/ViewProfile.cshtml27
-rw-r--r--Project-Unite/Views/Shared/_Layout.cshtml9
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.-->