protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "text/xml"; try { StreamReader reader = new StreamReader(this.Request.InputStream); String xmlData = reader.ReadToEnd(); XmlDocument docXRef = new XmlDocument(); docXRef.LoadXml(xmlData); string hash = Utils.TryGetProperty("DeleteCrossRef_File_EpisodeRequest", docXRef, "Hash").Trim().ToUpper(); string uname = Utils.TryGetProperty("DeleteCrossRef_File_EpisodeRequest", docXRef, "Uname"); // anonymous uers will not get this benefit if (uname.ToLower() == Utils.AnonWebCacheUsername.ToLower()) { return; } string eid = Utils.TryGetProperty("DeleteCrossRef_File_EpisodeRequest", docXRef, "EpisodeID"); int episodeID = 0; int.TryParse(eid, out episodeID); CrossRef_File_Episode_Rep repCrossRef = new CrossRef_File_Episode_Rep(); List <CrossRef_File_Episode> recs = repCrossRef.GetByHashAndUsername(hash, uname); foreach (CrossRef_File_Episode xref in recs) { if (xref.EpisodeID == episodeID) { repCrossRef.Delete(xref.CrossRef_File_EpisodeID); } } } catch (Exception ex) { Response.Write(ex.ToString()); return; } }
protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "text/xml"; try { Response.Write(Constants.ERROR_XML); return; CrossRef_File_Episode_Rep repCrossRef = new CrossRef_File_Episode_Rep(); StreamReader reader = new StreamReader(this.Request.InputStream); String xmlData = reader.ReadToEnd(); XmlDocument docXRef = new XmlDocument(); docXRef.LoadXml(xmlData); string hash = Utils.TryGetProperty("CrossRef_File_EpisodeRequest", docXRef, "Hash").Trim().ToUpper(); string uname = Utils.TryGetProperty("CrossRef_File_EpisodeRequest", docXRef, "Uname"); string aid = Utils.TryGetProperty("CrossRef_File_EpisodeRequest", docXRef, "AnimeID"); int animeid = 0; int.TryParse(aid, out animeid); string eid = Utils.TryGetProperty("CrossRef_File_EpisodeRequest", docXRef, "EpisodeID"); int episodeID = 0; int.TryParse(eid, out episodeID); string pct = Utils.TryGetProperty("CrossRef_File_EpisodeRequest", docXRef, "Percentage"); int percentage = 0; int.TryParse(pct, out percentage); string eo = Utils.TryGetProperty("CrossRef_File_EpisodeRequest", docXRef, "EpisodeOrder"); int eporder = 0; int.TryParse(eo, out eporder); if (string.IsNullOrEmpty(hash) || string.IsNullOrEmpty(uname) || animeid <= 0 || episodeID <= 0 || percentage <= 0 || eporder <= 0) { Response.Write(Constants.ERROR_XML); return; } CrossRef_File_Episode xref = null; List <CrossRef_File_Episode> recs = repCrossRef.GetByHashUsernameAndEpisodeID(hash, uname, episodeID); if (recs.Count == 1) { xref = recs[0]; } if (recs.Count == 0) { xref = new CrossRef_File_Episode(); } if (recs.Count > 1) { foreach (CrossRef_File_Episode rec in recs) { repCrossRef.Delete(rec.CrossRef_File_EpisodeID); } xref = new CrossRef_File_Episode(); } xref.DateTimeUpdated = DateTime.Now; xref.AnimeID = animeid; xref.EpisodeID = episodeID; xref.EpisodeOrder = eporder; xref.Percentage = percentage; xref.Hash = hash; xref.Username = uname; repCrossRef.Save(xref); } catch (Exception ex) { Response.Write(Constants.ERROR_XML); } }
protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "text/xml"; try { Response.Write(Constants.ERROR_XML); return; string hash = Utils.GetParam("hash"); if (hash.Trim().Length == 0) { Response.Write(Constants.ERROR_XML); return; } string uname = Utils.GetParam("uname"); if (uname.Trim().Length == 0) { Response.Write(Constants.ERROR_XML); return; } CrossRef_File_EpisodeResultCollection colResults = new CrossRef_File_EpisodeResultCollection(); CrossRef_File_Episode_Rep repCrossRef = new CrossRef_File_Episode_Rep(); // check for user specific List <CrossRef_File_Episode> recs = repCrossRef.GetByHashAndUsername(hash, uname); if (recs.Count == 0) { // check for other users (anonymous) recs = repCrossRef.GetByHash(hash); int lastAnimeID = -1; bool invalidAnime = false; foreach (CrossRef_File_Episode xref in recs) { if (lastAnimeID < 0) { lastAnimeID = xref.AnimeID; } if (lastAnimeID != xref.AnimeID) { invalidAnime = true; } } // if we have one file which has been assigned episodes across multiple anime, something has gone // wrong somewhere. So let's delete all the records for this hash so we can start again // This case is for anonymous users, so this scenario could be likely if (invalidAnime) { foreach (CrossRef_File_Episode xref in recs) { repCrossRef.Delete(xref.CrossRef_File_EpisodeID); } Response.Write(Constants.ERROR_XML); return; } } else { // make sure all the episodes belong to the same anime int lastAnimeID = -1; bool invalidAnime = false; foreach (CrossRef_File_Episode xref in recs) { if (lastAnimeID < 0) { lastAnimeID = xref.AnimeID; } if (lastAnimeID != xref.AnimeID) { invalidAnime = true; } } // if we have one file which has been assigned episodes across multiple anime, something has gone // wrong somewhere. So let's delete all the records for this hash so we can start again if (invalidAnime) { foreach (CrossRef_File_Episode xref in recs) { repCrossRef.Delete(xref.CrossRef_File_EpisodeID); } Response.Write(Constants.ERROR_XML); return; } } if (recs.Count == 0) { Response.Write(Constants.ERROR_XML); return; } foreach (CrossRef_File_Episode xref in recs) { colResults.AnimeID = xref.AnimeID; colResults.AddToCollection(xref.EpisodeID.ToString(), xref.EpisodeOrder.ToString(), xref.Percentage.ToString()); } string ret = Utils.ConvertToXML(colResults, typeof(CrossRef_File_EpisodeResultCollection)); Response.Write(ret); } catch (Exception ex) { Response.Write(ex.ToString()); return; } }