public ActionResult Edit(int id, RatingProviderModel changedElement) { try { var ds = (DataSource)Session["ds"]; var list = ds.RatingProvidersList; RatingProviderModel element = null; foreach (var item in list) { if (item.id == id) { element = item; break; } } element.Name = changedElement.Name; element.TrustScore = changedElement.TrustScore; element.ApiUrl = changedElement.ApiUrl; //list[id] = element; //ds.RatingProvidersList = list; return(RedirectToAction("Index")); } catch { return(View()); } }
public ActionResult Delete(int id, FormCollection collection) { try { // TODO: Add delete logic here var ds = (DataSource)Session["ds"]; var list = ds.RatingProvidersList; RatingProviderModel element = null; foreach (var item in list) { if (item.id == id) { element = item; break; } } list.Remove(element); return(RedirectToAction("Index")); } catch { return(View()); } }
// GET: RatingProvider/Edit/5 public ActionResult Edit(int id) { var ds = (DataSource)Session["ds"]; var list = ds.RatingProvidersList; RatingProviderModel element = null; foreach (var item in list) { if (item.id == id) { element = item; break; } } return(View(element)); }
public ActionResult Create(RatingProviderModel newProvider) { try { // TODO: Add insert logic here var ds = (DataSource)Session["ds"]; var list = ds.RatingProvidersList; //add new ID var provider = new RatingProviderModel() { Name = newProvider.Name, TrustScore = newProvider.TrustScore, ApiUrl = newProvider.ApiUrl }; list.Add(provider); Session["ds"] = ds; return(RedirectToAction("Index")); } catch { return(View()); } }
public IList <RatingProviderModel> GetRatingProvidersDataSource() { if (ratingProvidersList == null) { ratingProvidersList = new List <RatingProviderModel>(); var provider1 = new RatingProviderModel() { id = 1, Name = "TIVO", TrustScore = 0.5M, ApiUrl = "http://www.omdbapi.com" }; var provider2 = new RatingProviderModel() { id = 2, Name = "IMDB", TrustScore = 0.3M, ApiUrl = "http://www.omdbapi.com" }; var provider3 = new RatingProviderModel() { id = 3, Name = "The Movie DB", TrustScore = 0.2M, ApiUrl = "https://api.themoviedb.org/3/" }; ratingProvidersList.Add(provider1); ratingProvidersList.Add(provider2); ratingProvidersList.Add(provider3); } return(ratingProvidersList); }
public static decimal GetScoreForMovies(string name, RatingProviderModel provider) { var scoreValue = 0.0M; if (provider.ApiUrl.Contains("omdbapi")) { string encodedName = HttpContext.Current.Server.UrlEncode(name); string html = string.Empty; string url = provider.ApiUrl; url += @"/?t="; url += encodedName; url += @"&apikey=f2d7a6ff"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.AutomaticDecompression = DecompressionMethods.GZip; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) using (Stream stream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(stream)) { html = reader.ReadToEnd(); } //parse html response -> get imdb rating var score = html.Split(new string[] { "imdbRating" }, StringSplitOptions.None)[1].Replace("\"", "").Split(',')[0].Replace(":", "").Replace(".", ","); var numberFormatInfo = new NumberFormatInfo { NumberDecimalSeparator = "," }; scoreValue = Decimal.Parse(score, numberFormatInfo); } else if (provider.ApiUrl.Contains("themoviedb")) { string encodedName = HttpContext.Current.Server.UrlEncode(name); string html = string.Empty; string url = provider.ApiUrl; url += @"search/movie/?"; url += @"&api_key=f780c8b8315531f63a44191c00a6ca29&query="; url += encodedName; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.AutomaticDecompression = DecompressionMethods.GZip; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) using (Stream stream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(stream)) { html = reader.ReadToEnd(); } //parse html response -> get imdb rating var score = html.Split(new string[] { "vote_average" }, StringSplitOptions.None)[1].Replace("\"", "").Split(',')[0].Replace(":", "").Replace(".", ","); var numberFormatInfo = new NumberFormatInfo { NumberDecimalSeparator = "," }; scoreValue = Decimal.Parse(score, numberFormatInfo); } return(scoreValue); }