Initial commit

This commit is contained in:
Daniel Cortes
2020-05-22 01:32:58 -04:00
commit 7fbf91f8b1
319 changed files with 285697 additions and 0 deletions

185
Proyecto/ver_post.aspx.cs Executable file
View 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);
}
}