Initial commit
This commit is contained in:
185
Proyecto/ver_post.aspx.cs
Executable file
185
Proyecto/ver_post.aspx.cs
Executable file
@@ -0,0 +1,185 @@
|
||||
using DAL;
|
||||
using HeyRed.MarkdownSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
public partial class ver_post : System.Web.UI.Page
|
||||
{
|
||||
public int post_id;
|
||||
public int user_id;
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
post_id = Convert.ToInt32(Request.QueryString["id"]);
|
||||
user_id = Convert.ToInt32(Session["user_id"]);
|
||||
|
||||
if (Page.IsPostBack) return;
|
||||
|
||||
Entities entities = new Entities();
|
||||
var post = entities.Posts.FirstOrDefault(p => p.id == post_id);
|
||||
|
||||
if (post == null)
|
||||
{
|
||||
Response.Redirect("/index.aspx");
|
||||
return;
|
||||
}
|
||||
|
||||
var user = entities.Users.FirstOrDefault(u => u.id == user_id);
|
||||
|
||||
|
||||
if(user == null)
|
||||
{
|
||||
comment_div.Visible = false;
|
||||
}
|
||||
else if (post.user_id != user.id)
|
||||
{
|
||||
editar_button.Visible = false;
|
||||
delete_button.Visible = false;
|
||||
}
|
||||
|
||||
upvotes_button.Text = "+ " + post.votos.Count(v => v.positivo);
|
||||
downvotes_button.Text = "- " + post.votos.Count(v => !v.positivo);
|
||||
|
||||
title_literal.Text = post.title;
|
||||
author_literal.Text = post.user.username;
|
||||
html_literal.Text = post.html;
|
||||
|
||||
comment_repeater.DataSource = post.comentarios;
|
||||
comment_repeater.DataBind();
|
||||
}
|
||||
|
||||
protected void OnComentarClick(object sender, EventArgs e)
|
||||
{
|
||||
if (!Page.IsValid) return;
|
||||
if (post_id == 0) return;
|
||||
if (user_id == 0) return;
|
||||
|
||||
Entities entities = new Entities();
|
||||
Markdown markdown = new Markdown();
|
||||
|
||||
var comment = new Comentario();
|
||||
comment.html = markdown.Transform(comment_box.Text);
|
||||
comment.post_id = post_id;
|
||||
comment.user_id = user_id;
|
||||
|
||||
entities.Comentarios.Add(comment);
|
||||
entities.SaveChanges();
|
||||
|
||||
comment_box.Text = "";
|
||||
|
||||
comment_repeater.DataSource = entities.Comentarios.Where(c => c.post_id == post_id).ToList();
|
||||
comment_repeater.DataBind();
|
||||
}
|
||||
|
||||
|
||||
protected void OnEditarClick(object sender, EventArgs e)
|
||||
{
|
||||
Response.Redirect("/editar_post.aspx?id=" + post_id);
|
||||
}
|
||||
|
||||
protected void OnDeleteClick(object sender, EventArgs e)
|
||||
{
|
||||
if (post_id == 0) return;
|
||||
if (user_id == 0) return;
|
||||
|
||||
Entities entities = new Entities();
|
||||
|
||||
var post = entities.Posts.First(p => p.id == post_id);
|
||||
if (post.user.id != user_id) return;
|
||||
|
||||
foreach (var voto in post.votos.ToList())
|
||||
{
|
||||
entities.Votos.Remove(voto);
|
||||
}
|
||||
|
||||
foreach (var comment in post.comentarios.ToList())
|
||||
{
|
||||
entities.Comentarios.Remove(comment);
|
||||
}
|
||||
|
||||
entities.Posts.Remove(post);
|
||||
entities.SaveChanges();
|
||||
|
||||
Response.Redirect("/index.aspx");
|
||||
}
|
||||
|
||||
protected void OnDeleteCommentClick(object sender, EventArgs e)
|
||||
{
|
||||
var button_message = ((Button)sender).CommandArgument.Split('-');
|
||||
|
||||
var user_id = Convert.ToInt32(Session["user_id"]);
|
||||
|
||||
if (Convert.ToInt32(button_message[1]) != user_id) return;
|
||||
|
||||
Entities entities = new Entities();
|
||||
|
||||
var comment_id = Convert.ToInt32(button_message[0]);
|
||||
var comment = entities.Comentarios.FirstOrDefault(c => c.id == comment_id);
|
||||
|
||||
entities.Comentarios.Remove(comment);
|
||||
entities.SaveChanges();
|
||||
}
|
||||
|
||||
protected void OnUpvoteClick(object sender, EventArgs e)
|
||||
{
|
||||
if (post_id == 0) return;
|
||||
if (user_id == 0) return;
|
||||
|
||||
Entities entities = new Entities();
|
||||
|
||||
var voto = entities.Votos.FirstOrDefault(v => v.post_id == post_id && v.user_id == user_id);
|
||||
|
||||
if (voto == null)
|
||||
{
|
||||
var upvote = new Voto();
|
||||
upvote.positivo = true;
|
||||
upvote.post_id = post_id;
|
||||
upvote.user_id = user_id;
|
||||
|
||||
entities.Votos.Add(upvote);
|
||||
entities.SaveChanges();
|
||||
}
|
||||
else if (!voto.positivo)
|
||||
{
|
||||
voto.positivo = true;
|
||||
entities.SaveChanges();
|
||||
}
|
||||
|
||||
upvotes_button.Text = "+ " + entities.Votos.Count(v => v.post_id == post_id && v.positivo);
|
||||
downvotes_button.Text = "- " + entities.Votos.Count(v => v.post_id == post_id && !v.positivo);
|
||||
}
|
||||
|
||||
protected void OnDownvoteClick(object sender, EventArgs e)
|
||||
{
|
||||
if (post_id == 0) return;
|
||||
if (user_id == 0) return;
|
||||
|
||||
Entities entities = new Entities();
|
||||
|
||||
var voto = entities.Votos.FirstOrDefault(v => v.post_id == post_id && v.user_id == user_id);
|
||||
|
||||
if (voto == null)
|
||||
{
|
||||
var downvote = new Voto();
|
||||
downvote.positivo = false;
|
||||
downvote.post_id = post_id;
|
||||
downvote.user_id = user_id;
|
||||
|
||||
entities.Votos.Add(downvote);
|
||||
entities.SaveChanges();
|
||||
}
|
||||
else if (voto.positivo)
|
||||
{
|
||||
voto.positivo = false;
|
||||
entities.SaveChanges();
|
||||
}
|
||||
|
||||
upvotes_button.Text = "+ " + entities.Votos.Count(v => v.post_id == post_id && v.positivo);
|
||||
downvotes_button.Text = "- " + entities.Votos.Count(v => v.post_id == post_id && !v.positivo);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user