public Response VoteAnime(IProvider prov, string userid, string objectid, string votevalue, string votetype) { Response rsp = new Response(); rsp.Code = "400"; rsp.Message = "Bad Request"; try { int objid = 0; int usid = 0; int vt = 0; double vvalue = 0; if (!int.TryParse(objectid, out objid)) return rsp; if (!int.TryParse(userid, out usid)) return rsp; if (!int.TryParse(votetype, out vt)) return rsp; if (!double.TryParse(votevalue, NumberStyles.Any, CultureInfo.InvariantCulture, out vvalue)) return rsp; using (var session = DatabaseFactory.SessionFactory.OpenSession()) { ISessionWrapper sessionWrapper = session.Wrap(); if (vt == (int) enAniDBVoteType.Episode) { AnimeEpisode ep = RepoFactory.AnimeEpisode.GetByID(objid); if (ep == null) { rsp.Code = "404"; rsp.Message = "Episode Not Found"; return rsp; } AniDB_Anime anime = ep.GetAnimeSeries().GetAnime(); if (anime == null) { rsp.Code = "404"; rsp.Message = "Anime Not Found"; return rsp; } string msg = string.Format("Voting for anime episode: {0} - Value: {1}", ep.AnimeEpisodeID, vvalue); logger.Info(msg); // lets save to the database and assume it will work List<AniDB_Vote> dbVotes = RepoFactory.AniDB_Vote.GetByEntity(ep.AnimeEpisodeID); AniDB_Vote thisVote = null; foreach (AniDB_Vote dbVote in dbVotes) { if (dbVote.VoteType == (int)enAniDBVoteType.Episode) { thisVote = dbVote; } } if (thisVote == null) { thisVote = new AniDB_Vote(); thisVote.EntityID = ep.AnimeEpisodeID; } thisVote.VoteType = vt; int iVoteValue = 0; if (vvalue > 0) iVoteValue = (int)(vvalue * 100); else iVoteValue = (int)vvalue; msg = string.Format("Voting for anime episode Formatted: {0} - Value: {1}", ep.AnimeEpisodeID, iVoteValue); logger.Info(msg); thisVote.VoteValue = iVoteValue; RepoFactory.AniDB_Vote.Save(thisVote); CommandRequest_VoteAnime cmdVote = new CommandRequest_VoteAnime(anime.AnimeID, vt, Convert.ToDecimal(vvalue)); cmdVote.Save(); } if (vt == (int)enAniDBVoteType.Anime) { AnimeSeries ser = RepoFactory.AnimeSeries.GetByID(objid); AniDB_Anime anime = ser.GetAnime(); if (anime == null) { rsp.Code = "404"; rsp.Message = "Anime Not Found"; return rsp; } string msg = string.Format("Voting for anime: {0} - Value: {1}", anime.AnimeID, vvalue); logger.Info(msg); // lets save to the database and assume it will work List<AniDB_Vote> dbVotes = RepoFactory.AniDB_Vote.GetByEntity(anime.AnimeID); AniDB_Vote thisVote = null; foreach (AniDB_Vote dbVote in dbVotes) { // we can only have anime permanent or anime temp but not both if (vt == (int)enAniDBVoteType.Anime || vt == (int)enAniDBVoteType.AnimeTemp) { if (dbVote.VoteType == (int)enAniDBVoteType.Anime || dbVote.VoteType == (int)enAniDBVoteType.AnimeTemp) { thisVote = dbVote; } } else { thisVote = dbVote; } } if (thisVote == null) { thisVote = new AniDB_Vote(); thisVote.EntityID = anime.AnimeID; } thisVote.VoteType = vt; int iVoteValue = 0; if (vvalue > 0) iVoteValue = (int)(vvalue * 100); else iVoteValue = (int)vvalue; msg = string.Format("Voting for anime Formatted: {0} - Value: {1}", anime.AnimeID, iVoteValue); logger.Info(msg); thisVote.VoteValue = iVoteValue; RepoFactory.AniDB_Vote.Save(thisVote); CommandRequest_VoteAnime cmdVote = new CommandRequest_VoteAnime(anime.AnimeID, vt, Convert.ToDecimal(vvalue)); cmdVote.Save(); } rsp.Code = "200"; rsp.Message = null; } } catch (Exception ex) { rsp.Code = "500"; rsp.Message = "Internal Error : " + ex; logger.Error( ex,ex.ToString()); } return rsp; }
public void VoteAnimeRevoke(int animeID) { // lets save to the database and assume it will work AniDB_VoteRepository repVotes = new AniDB_VoteRepository(); List<AniDB_Vote> dbVotes = repVotes.GetByEntity(animeID); AniDB_Vote thisVote = null; foreach (AniDB_Vote dbVote in dbVotes) { // we can only have anime permanent or anime temp but not both if (dbVote.VoteType == (int)enAniDBVoteType.Anime || dbVote.VoteType == (int)enAniDBVoteType.AnimeTemp) { thisVote = dbVote; } } if (thisVote == null) return; CommandRequest_VoteAnime cmdVote = new CommandRequest_VoteAnime(animeID, thisVote.VoteType, -1); cmdVote.Save(); repVotes.Delete(thisVote.AniDB_VoteID); }
public System.IO.Stream VoteAnime(string userid, string objectid, string votevalue, string votetype) { Respond rsp = new Respond(); rsp.code = 500; int objid = 0; int usid = 0; int vt = 0; double vvalue = 0; if (!int.TryParse(objectid, out objid)) return KodiHelper.GetStreamFromXmlObject(rsp); if (!int.TryParse(userid, out usid)) return KodiHelper.GetStreamFromXmlObject(rsp); if (!int.TryParse(votetype, out vt)) return KodiHelper.GetStreamFromXmlObject(rsp); if (!double.TryParse(votevalue, NumberStyles.Any, CultureInfo.InvariantCulture, out vvalue)) return KodiHelper.GetStreamFromXmlObject(rsp); using (var session = JMMService.SessionFactory.OpenSession()) { if (vt == (int)enAniDBVoteType.Episode) { AnimeEpisodeRepository repEpisodes = new AnimeEpisodeRepository(); AnimeEpisode ep = repEpisodes.GetByID(session, objid); AniDB_Anime anime = ep.GetAnimeSeries().GetAnime(); if (anime == null) { rsp.code = 404; return KodiHelper.GetStreamFromXmlObject(rsp); } string msg = string.Format("Voting for anime episode: {0} - Value: {1}", ep.AnimeEpisodeID, vvalue); logger.Info(msg); // lets save to the database and assume it will work AniDB_VoteRepository repVotes = new AniDB_VoteRepository(); List<AniDB_Vote> dbVotes = repVotes.GetByEntity(ep.AnimeEpisodeID); AniDB_Vote thisVote = null; foreach (AniDB_Vote dbVote in dbVotes) { if (dbVote.VoteType == (int)enAniDBVoteType.Episode) { thisVote = dbVote; } } if (thisVote == null) { thisVote = new AniDB_Vote(); thisVote.EntityID = ep.AnimeEpisodeID; } thisVote.VoteType = vt; int iVoteValue = 0; if (vvalue > 0) iVoteValue = (int)(vvalue * 100); else iVoteValue = (int)vvalue; msg = string.Format("Voting for anime episode Formatted: {0} - Value: {1}", ep.AnimeEpisodeID, iVoteValue); logger.Info(msg); thisVote.VoteValue = iVoteValue; repVotes.Save(thisVote); CommandRequest_VoteAnime cmdVote = new CommandRequest_VoteAnime(anime.AnimeID, vt, Convert.ToDecimal(vvalue)); cmdVote.Save(); } if (vt == (int)enAniDBVoteType.Anime) { AnimeSeriesRepository repSeries = new AnimeSeriesRepository(); AnimeSeries ser = repSeries.GetByID(session, objid); AniDB_Anime anime = ser.GetAnime(); if (anime == null) { rsp.code = 404; return KodiHelper.GetStreamFromXmlObject(rsp); } string msg = string.Format("Voting for anime: {0} - Value: {1}", anime.AnimeID, vvalue); logger.Info(msg); // lets save to the database and assume it will work AniDB_VoteRepository repVotes = new AniDB_VoteRepository(); List<AniDB_Vote> dbVotes = repVotes.GetByEntity(anime.AnimeID); AniDB_Vote thisVote = null; foreach (AniDB_Vote dbVote in dbVotes) { // we can only have anime permanent or anime temp but not both if (vt == (int)enAniDBVoteType.Anime || vt == (int)enAniDBVoteType.AnimeTemp) { if (dbVote.VoteType == (int)enAniDBVoteType.Anime || dbVote.VoteType == (int)enAniDBVoteType.AnimeTemp) { thisVote = dbVote; } } else { thisVote = dbVote; } } if (thisVote == null) { thisVote = new AniDB_Vote(); thisVote.EntityID = anime.AnimeID; } thisVote.VoteType = vt; int iVoteValue = 0; if (vvalue > 0) iVoteValue = (int)(vvalue * 100); else iVoteValue = (int)vvalue; msg = string.Format("Voting for anime Formatted: {0} - Value: {1}", anime.AnimeID, iVoteValue); logger.Info(msg); thisVote.VoteValue = iVoteValue; repVotes.Save(thisVote); CommandRequest_VoteAnime cmdVote = new CommandRequest_VoteAnime(anime.AnimeID, vt, Convert.ToDecimal(vvalue)); cmdVote.Save(); } rsp.code = 200; return KodiHelper.GetStreamFromXmlObject(rsp); } }
/// <summary> /// /// </summary> /// <param name="animeID"></param> /// <param name="voteValue">Must be 1 or 2 (Anime or Anime Temp(</param> /// <param name="voteType"></param> public void VoteAnime(int animeID, decimal voteValue, int voteType) { string msg = string.Format("Voting for anime: {0} - Value: {1}", animeID, voteValue); logger.Info(msg); // lets save to the database and assume it will work AniDB_VoteRepository repVotes = new AniDB_VoteRepository(); List<AniDB_Vote> dbVotes = repVotes.GetByEntity(animeID); AniDB_Vote thisVote = null; foreach (AniDB_Vote dbVote in dbVotes) { // we can only have anime permanent or anime temp but not both if (voteType == (int)enAniDBVoteType.Anime || voteType == (int)enAniDBVoteType.AnimeTemp) { if (dbVote.VoteType == (int)enAniDBVoteType.Anime || dbVote.VoteType == (int)enAniDBVoteType.AnimeTemp) { thisVote = dbVote; } } else { thisVote = dbVote; } } if (thisVote == null) { thisVote = new AniDB_Vote(); thisVote.EntityID = animeID; } thisVote.VoteType = voteType; int iVoteValue = 0; if (voteValue > 0) iVoteValue = (int)(voteValue * 100); else iVoteValue = (int)voteValue; msg = string.Format("Voting for anime Formatted: {0} - Value: {1}", animeID, iVoteValue); logger.Info(msg); thisVote.VoteValue = iVoteValue; repVotes.Save(thisVote); CommandRequest_VoteAnime cmdVote = new CommandRequest_VoteAnime(animeID, voteType, voteValue); cmdVote.Save(); }
public void VoteAnime(string userid, string seriesid, string votevalue, string votetype) { int serid = 0; int usid = 0; int vt = 0; double vvalue = 0; if (!int.TryParse(seriesid, out serid)) return; if (!int.TryParse(userid, out usid)) return; if (!int.TryParse(votetype, out vt)) return; if (!double.TryParse(votevalue, NumberStyles.Any, CultureInfo.InvariantCulture, out vvalue)) return; using (var session = JMMService.SessionFactory.OpenSession()) { AnimeSeriesRepository repSeries = new AnimeSeriesRepository(); AnimeSeries ser = repSeries.GetByID(session, serid); AniDB_Anime anime = ser?.GetAnime(); if (anime == null) return; string msg = string.Format("Voting for anime: {0} - Value: {1}", anime.AnimeID, vvalue); logger.Info(msg); // lets save to the database and assume it will work AniDB_VoteRepository repVotes = new AniDB_VoteRepository(); List<AniDB_Vote> dbVotes = repVotes.GetByEntity(anime.AnimeID); AniDB_Vote thisVote = null; foreach (AniDB_Vote dbVote in dbVotes) { // we can only have anime permanent or anime temp but not both if (vt == (int) enAniDBVoteType.Anime || vt == (int) enAniDBVoteType.AnimeTemp) { if (dbVote.VoteType == (int) enAniDBVoteType.Anime || dbVote.VoteType == (int) enAniDBVoteType.AnimeTemp) { thisVote = dbVote; } } else { thisVote = dbVote; } } if (thisVote == null) { thisVote = new AniDB_Vote(); thisVote.EntityID = anime.AnimeID; } thisVote.VoteType = vt; int iVoteValue = 0; if (vvalue > 0) iVoteValue = (int) (vvalue*100); else iVoteValue = (int) vvalue; msg = string.Format("Voting for anime Formatted: {0} - Value: {1}", anime.AnimeID, iVoteValue); logger.Info(msg); thisVote.VoteValue = iVoteValue; repVotes.Save(thisVote); CommandRequest_VoteAnime cmdVote = new CommandRequest_VoteAnime(anime.AnimeID, vt, Convert.ToDecimal(vvalue)); cmdVote.Save(); } }