Esempio n. 1
0
        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());
            }
        }
Esempio n. 2
0
        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());
            }
        }
Esempio n. 3
0
        // 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));
        }
Esempio n. 4
0
        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());
            }
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }