public int GetTotalScore(MovieRelease movieRelease) { int scoreint = 0; foreach (Score score in movieRelease.Scorelist) { scoreint += score.Scoreint; } return(scoreint); }
public void release2db(MovieRelease release) { SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=" + this.location + ";Version=3;"); m_dbConnection.Open(); string insertsql = "insert into MovieRelease "; string coloumn = "(NzbLink,Releasename,Category,Description, DetailLink, Score, Imdb, Imdbtitle,Guid) "; string values = "VALUES (\"" + release.NzbLink + "\",\"" + release.ReleaseName + "\",\"" + release.Category + "\",\"" + release.Description + "\",\"" + release.DetailLink + "\"," + release.Score + "," + release.Imdb + ",\"" + release.Imdbtitle + "\",\"" + release.Guid + "\"); "; insertsql += coloumn + values; SQLiteCommand command = new SQLiteCommand(insertsql, m_dbConnection); try { SQLiteDataReader reader = command.ExecuteReader(); } catch (Exception e) { Console.WriteLine(e.Message); } m_dbConnection.Close(); }
//STATIC METHOD TO SAVE APICALLS public List <MovieRelease> searchNewzStatic(string imdbid) { //REMOVE THE "t" FROM THE IMDB-ID imdbid = imdbid.TrimStart('t'); //TODO: BASEURL SHOULD BE IN CONFIG //TODO: BASEURL IS WRONG ATM string baseurl = "http://www.newz-complex.org/www/api?imdbid="; //SETTING URL TOGETHER //TODO APIKEY SHOULD BE IN CONFIG string url = baseurl + imdbid + "&apikey=xxxe&t=movie&extended=1"; //CREATE OWN MOVIERELEASES-LIST List <MovieRelease> movieReleases = new List <MovieRelease>(); //LOAD LOCAL STATIC API.XML //TODO: HERE I SHOULD LOAD THE XML FROM THE ACTUAL API var xml = XDocument.Load("api.xml"); //THE NAMESPACE CONTAINS THE SCHEME OF THE XML WHICH HELPS TO SERIALZE IT TO AN MOVIERELEASE-OBJECT XNamespace ns = "http://www.newznab.com/DTD/2010/feeds/attributes/"; //FOR EVERY ITEM IN THE XML CREATE A MOVIERELEASE-OBJECT foreach (var item in xml.Descendants("item")) { //ADDING ALL REAGULAR TAGS TO THE MOVIERELEASE-OBJECT MovieRelease movieRelease = new MovieRelease(); movieRelease.ReleaseName = item.Element("title").Value; movieRelease.DetailLink = item.Element("guid").Value; movieRelease.NzbLink = item.Element("link").Value; movieRelease.Category = item.Element("category").Value; movieRelease.Description = item.Element("description").Value; //FOR THE TAG "ATTRIBUTES" WE NEEDED SOMESPECIAL TREATS foreach (var attribute in item.Elements(ns + "attr")) { ReleaseAttribute releaseAttribute = new ReleaseAttribute( attribute.Attribute("name").Value, attribute.Attribute("value").Value); movieRelease.Attributes.Add(releaseAttribute); } foreach (ReleaseAttribute releaseAtttribute in movieRelease.Attributes) { if (releaseAtttribute.AttributeName == "imdb") { movieRelease.Imdb = Int32.Parse(releaseAtttribute.AttributeValue); } if (releaseAtttribute.AttributeName == "imdbtitle") { movieRelease.Imdbtitle = releaseAtttribute.AttributeValue; } if (releaseAtttribute.AttributeName == "guid") { movieRelease.Guid = releaseAtttribute.AttributeValue; } } //FOR SETTING THE SCORE OF A MOVIERELEASE WE NEED A NEW OBJECT (SCORER) Scorer scorer = new Scorer(); //THE LOGIC OF THE CALCULATING IS IN THE SCORER-CLASS movieRelease.Scorelist = scorer.CalculateScore(scorer.CreateScroringAttributeCollectors(), movieRelease); movieRelease.Score = scorer.GetTotalScore(movieRelease); //ADD MOVIERELEASE-OBJECT TO LIST string jsontemp = JsonConvert.SerializeObject(movieRelease); movieReleases.Add(movieRelease); } return(movieReleases); }
// CALCULATE THE SCORE FOR A MOVIERELEASE WITH SCORINGATTRIBUTES public List <Score> CalculateScore(List <ScoringAttributesCollector> scoringAttributesCollectors, MovieRelease movieRelease) { //INITIAL SCORE IS 0 List <Score> scorelist = new List <Score>(); foreach (ScoringAttributesCollector collector in scoringAttributesCollectors) { Score score = new Score(); score.Scoringtype = collector.scroringType; foreach (ScoringAttribute attribute in collector.scoringAttributes) { { //CHECK IF COLLECTOR IS ALREADY SCORED AND IF THE RATINGSTRING IS IN THE RELEASENAME if (collector.scored == false && movieRelease.ReleaseName.Contains(attribute.RatingString)) { collector.scored = true; score.Ratingstring = attribute.RatingString; score.Scoreint = attribute.RatingScore; } } } // IF NONE OF THE RATINGSTRINGS IN THE COLLECTOR HAVE MATCHES IN RELEASENAME WE HAVE TO SCORE THE "OTHER_NOTHING"-SCORE if (collector.scored == false) { collector.scored = true; score.Ratingstring = "None"; score.Scoreint = collector.other_nothing; } scorelist.Add(score); } return(scorelist); }