/// <summary> /// Carrega o artigo pelo id /// </summary> /// <param name="id"></param> /// <returns></returns> public static List <TargetVote> LoadAllFrom(Target na) { List <TargetVote> lst = new List <TargetVote>(); SqlCommand sel = new SqlCommand(); sel.CommandText = "SELECT userid, vote, date FROM " + Base.conf.prefix + "[newstargetvote] WHERE id=@id ORDER BY date"; sel.Parameters.Add(new SqlParameter("@id", na.id)); sel.Connection = Base.conf.Open(); SqlDataReader rdr = sel.ExecuteReader(); while (rdr.Read()) { // Pega as informações TargetVote nl = new TargetVote(na); nl.useridInt = rdr.GetString(0); nl.voteInt = rdr.GetInt32(1); nl.dateInt = rdr.GetDateTime(2); lst.Add(nl); } rdr.Close(); sel.Connection.Close(); return(lst); }
/// <summary> /// Pega o voto para o usuário /// </summary> /// <param name="userid"></param> /// <returns></returns> public bool SetUserVote(string userid, TargetVote.Vote v) { TargetVote.Vote vo = GetUserVote(userid); if (vo == v) { v = TargetVote.Vote.Undefined; } if (v == TargetVote.Vote.Undefined) { for (int i = 0; i < votes.Count; i++) { if (votes[i].userId == userid) { votes.RemoveAt(i); return(false); } } } else { for (int i = 0; i < votes.Count; i++) { if (votes[i].userId == userid) { votes[i].vote = v; votes[i].date = DateTime.Now; return(false); } } TargetVote vote = new TargetVote(this); vote.userId = userid; vote.vote = v; vote.date = DateTime.Now; votes.Add(vote); return(true); } return(false); }
/// <summary> /// Salva a ticket /// </summary> /// <returns></returns> public bool Save() { bool res = false; lock (RacLib.Base.conf) { SqlCommand sel = new SqlCommand(); sel.CommandText = "SELECT id FROM " + Base.conf.prefix + "[newstarget] WHERE id=@id OR title=@title OR link=@link"; sel.Parameters.Add(new SqlParameter("@id", id)); sel.Parameters.Add(new SqlParameter("@title", title)); sel.Parameters.Add(new SqlParameter("@link", link)); sel.Connection = Base.conf.Open(); SqlDataReader rdr = sel.ExecuteReader(); if (!rdr.Read()) { rdr.Close(); sel.Connection.Close(); SqlCommand ins = new SqlCommand(); ins.CommandText = "INSERT INTO " + Base.conf.prefix + "[newstarget] (id, link, lang, title, text, status, registered, importance) VALUES (@id, @link, @lang, @title, @text, @status, @registered, @importance)"; ins.Parameters.Add(new SqlParameter("@id", id)); ins.Parameters.Add(new SqlParameter("@link", linkInt)); ins.Parameters.Add(new SqlParameter("@title", titleInt)); ins.Parameters.Add(new SqlParameter("@lang", languageInt)); ins.Parameters.Add(new SqlParameter("@text", textInt)); ins.Parameters.Add(new SqlParameter("@status", statusInt)); ins.Parameters.Add(new SqlParameter("@registered", registeredInt)); ins.Parameters.Add(new SqlParameter("@importance", importanceInt)); ins.Connection = Base.conf.Open(); ins.ExecuteNonQuery(); ins.Connection.Close(); res = true; dbassignedidInt = true; } else { idInt = rdr.GetString(0); rdr.Close(); sel.Connection.Close(); SqlCommand upd = new SqlCommand(); upd.CommandText = "UPDATE " + Base.conf.prefix + "[newstarget] SET link=@link, lang=@lang, title=@title, text=@text, status=@status, registered=@registered, importance=@importance WHERE id=@id"; upd.Parameters.Add(new SqlParameter("@link", linkInt)); upd.Parameters.Add(new SqlParameter("@lang", languageInt)); upd.Parameters.Add(new SqlParameter("@title", titleInt)); upd.Parameters.Add(new SqlParameter("@text", textInt)); upd.Parameters.Add(new SqlParameter("@status", statusInt)); upd.Parameters.Add(new SqlParameter("@registered", registeredInt)); upd.Parameters.Add(new SqlParameter("@importance", importanceInt)); upd.Parameters.Add(new SqlParameter("@id", id)); upd.Connection = Base.conf.Open(); upd.ExecuteNonQuery(); upd.Connection.Close(); res = true; dbassignedidInt = true; } if (res) { if (actionsInt != null) { foreach (TargetAction ta in actions) { ta.Save(); } } if (votesInt != null) { TargetVote.SaveAll(this, votes); } if (categoriesInt != null) { Base.conf.UpdateStringList(id, categories, "newstargetcategory", "id", "label"); } } } return(res); }