예제 #1
0
        public ActionResult Register(Models.UserDetails userdetails)
        {
            MovieInformation movieinfo = new MovieInformation();

            movieinfo.RegisterUser(userdetails);
            return(View("Registration"));
        }
예제 #2
0
        private static MovieInformation ExtractMovieInformationFromNode(IReadOnlyCollection <HtmlNode> movieInformationNode)
        {
            var movieInformation = new MovieInformation();

            var titleNode = movieInformationNode.First(x => x.Attributes["class"].Value.Contains("meta-title-link"));

            movieInformation.Title = (titleNode == null ? "" : titleNode.InnerText.Replace("&amp;", "&").Replace("&#039;", "'"));

            var directorNode = movieInformationNode.First(x => x.Attributes["class"].Value.Contains("meta-body-direction"))
                               .SelectNodes(".//a[contains(@class, 'blue-link')]");

            movieInformation.Director = (directorNode == null ? "Inconnu" : directorNode.First().InnerText);

            var linkNode = movieInformationNode.First(x => x.Attributes["class"].Value.Contains("meta-title-link"))
                           .Attributes.First(y => y.Name == "href");

            movieInformation.Link = (linkNode == null ? "" : "www.allocine.fr" + linkNode.Value);

            var synopsisNode = movieInformationNode.First(x => x.Attributes["class"].Value.Contains("synopsis"));

            movieInformation.Synopsis = (synopsisNode == null ? "" : synopsisNode.InnerText.Replace(Environment.NewLine, "").Trim());

            var pictureNode = movieInformationNode.First(x => x.Attributes["class"].Value.Contains("thumbnail-img"))
                              .Attributes.First(y => y.Name == "data-src");

            movieInformation.Picture = (pictureNode == null ? "" : pictureNode.Value);

            return(movieInformation);
        }
예제 #3
0
        public void TestSurLaRecuperationDesFichiersVideos_When_LeRepertoireEtLesFichiersExistent_Then_DonneLaListe()
        {
            #region ARRANGE

            string nomFilm = "phantom-thread-french-webrip-1080p-2018";

            #endregion

            #region ACT

            MovieManager manager = new MovieManager("TRUEFRENCH", "FRENCH", "FR");
            IEnumerable <MovieInformation> result = manager.GetMoviesInformations(_pathFilmsTest, TypeVideo.Movie);

            #endregion

            #region ASSERT

            Assert.AreEqual(result.Count(), 4, "Il doit y avoir 4 films dans la liste");

            var listeTemp = result.ToList();
            MovieInformation movieTest = listeTemp[3];
            Assert.AreEqual(movieTest.Annee, "2018");
            Assert.AreEqual(movieTest.Langage, "FRENCH");
            Assert.AreEqual(movieTest.Qualite, "webrip");
            Assert.AreEqual(movieTest.Resolution, "1080p");
            Assert.AreEqual(movieTest.Titre, "PHANTOM THREAD");


            #endregion
        }
예제 #4
0
        public ActionResult TheaterDetails(int TheaterList, string TimeList, string SeatList, int Quantity)
        {
            MovieBooking     moviebook = new MovieBooking();
            MovieInformation movieinfo = new MovieInformation();
            var movie        = (string)Session["MovieName"];
            var date         = (string)Session["DateList"];
            var email        = (string)Session["Email"];
            var theaterName  = movieinfo.GetTheaterName(TheaterList);
            var movieid      = movieinfo.GetMovieID(movie);
            var scheduleid   = movieinfo.GetScheduleID(date);
            var userid       = movieinfo.GetUserID(email);
            var amount       = movieinfo.GetPrice(TheaterList, SeatList, movieid);
            var amountToPaid = amount * Quantity;

            movieinfo.InsertIntoBooking(movieid, scheduleid, TheaterList, TimeList, SeatList, Quantity, amountToPaid, userid);
            moviebook.MovieName = movie;
            moviebook.Name      = theaterName;
            moviebook.Date      = Convert.ToDateTime(date);
            moviebook.ShowTime  = Convert.ToDateTime(TimeList);
            moviebook.Quantity  = Quantity;
            moviebook.SeatName  = SeatList;
            moviebook.Price     = amountToPaid;

            return(View("TicketSummary", moviebook));
        }
예제 #5
0
        public ActionResult StateRegistration(MovieRegistration movie)
        {
            MovieInformation movieinfo = new MovieInformation();

            movieinfo.StateRegistration(movie);
            return(View("Success"));
        }
예제 #6
0
    IEnumerator GetExtraMovieInfo(string query)
    {
        using (UnityWebRequest webRequest = UnityWebRequest.Get(query))

        {
            yield return(webRequest.SendWebRequest());


            if (webRequest.isNetworkError)
            {
                Debug.Log("Data not fetched : " + webRequest.error);
            }
            else
            {
                MovieInformation movie = JsonUtility.FromJson <MovieInformation>(webRequest.downloadHandler.text);

                if (movie == null)
                {
                    Debug.Log("No Data");
                }
                else
                {
                    this.extraInfoPanel.Show(movie);
                }
            }
        }
    }
예제 #7
0
 public void UpdateCell(MovieInformation movie)
 {
     MovieTitle.Text    = movie.Title;
     MovieDirector.Text = movie.Director;
     MoviePicture.Image = UIImageFromUrl(movie.Picture);
     MovieSynopsis.Text = movie.Synopsis;
 }
예제 #8
0
        public ActionResult TheaterRegistration(MovieRegistration movie, int StateNameList, int CityNameList, int AreaNameList)
        {
            var theater = movie.Name;
            MovieInformation movieinfo = new MovieInformation();

            movieinfo.TheaterRegistration(theater, CityNameList, StateNameList, AreaNameList);
            return(View());
        }
    public void Show(MovieInformation movieInformation)
    {
        this.gameObject.SetActive(true);

        this.text.text = "Title : " + movieInformation.Title + "\n" + "Released : " + movieInformation.Released + "\n" +
                         "Rated : " + movieInformation.Rated + "\n" + "Genre : " + movieInformation.Genre + "\n" +
                         "Director : " + movieInformation.Director + "\n" + "Language : " + movieInformation.Language;
    }
예제 #10
0
    public void Init(MovieInformation movieInformation, Action <string> onThumbnailClick)
    {
        this.movieInformation = movieInformation;

        this.text.text = movieInformation.Title;

        this.onThumbnailClick = onThumbnailClick;

        StartCoroutine(FetchImage(movieInformation.Poster));
    }
예제 #11
0
        public IActionResult GetVideoFile([FromBody] MovieInformation movieInformation)
        {
            var tempVideo = DownloadVideoCore(movieInformation);

            _moviesManager.SetMovieDownloaded(movieInformation);

            Log.Information("Récupération par API du film : " + movieInformation.Titre);

            return(tempVideo);
        }
예제 #12
0
        public JsonResult DateDropDown(string MovieNameList, MovieBooking moviebook)
        {
            MovieInformation movieinfo = new MovieInformation();
            var movieID  = movieinfo.GetMovieID(MovieNameList);
            var DateList = movieinfo.GetDateDropDown(movieID).ToList();

            foreach (var item in DateList)
            {
                moviebook.DateList.Add(item);
            }
            return(Json(moviebook));
        }
예제 #13
0
        public JsonResult CityDropDown(int StateNameList)
        {
            MovieInformation movieinfo = new MovieInformation();
            MovieBooking     moviebook = new MovieBooking();
            var CityName = movieinfo.GetCityDropDown(StateNameList).ToList();

            foreach (var item in CityName)
            {
                moviebook.CityNameList.Add(item);
            }
            return(Json(moviebook));
        }
예제 #14
0
        public ActionResult MovieBooking()
        {
            MovieBooking     moviebook = new MovieBooking();
            TheaterDetails   cinema    = new TheaterDetails();
            MovieInformation movieinfo = new MovieInformation();
            var StateList = movieinfo.StateNameList().ToList();

            foreach (var item in StateList)
            {
                moviebook.StateNameList.Add(item);
            }
            return(View(moviebook));
        }
예제 #15
0
        public ActionResult MoviesRegistration(MovieRegistration movie)
        {
            MovieInformation movieinfo = new MovieInformation();

            //movieinfo.StateRegistration(movie);
            var state       = (string)Session["StateName"];
            var city        = (string)Session["CityName"];
            var area        = (string)Session["AreaName"];
            var theatername = (string)Session["Name"];

            movieinfo.MovieRegistration(theatername, city, area, state, movie);
            return(View("MovieRegistrationDetails"));
        }
예제 #16
0
        public JsonResult TimeDropDown(int TheaterList)
        {
            MovieInformation movieinfo = new MovieInformation();
            MovieBooking     moviebook = new MovieBooking();
            var movie = (string)Session["MovieName"];
            var date  = (string)Session["DateList"];
            var Time  = movieinfo.GetTimeDropDown(TheaterList, movie, date).ToList();

            foreach (var item in Time)
            {
                moviebook.TimeList.Add(item);
            }
            return(Json(moviebook));
        }
예제 #17
0
        public JsonResult MovieDropDown(string CityNameList, MovieBooking moviebook)
        {
            MovieInformation movieinfo = new MovieInformation();

            moviebook = new MovieBooking();
            var CityList  = movieinfo.GetCityID(CityNameList);
            var MovieName = movieinfo.GetMovieDropdown(CityList).ToList();

            foreach (var item in MovieName)
            {
                moviebook.MovieNameList.Add(item);
            }
            return(Json(moviebook));
        }
예제 #18
0
        public ActionResult MovieBooking(int StateNameList, string CityNameList, string MovieNameList, string DateList)
        {
            MovieBooking     moviebook = new MovieBooking();
            MovieInformation movieinfo = new MovieInformation();
            var theater = movieinfo.FindTheaterName(StateNameList, CityNameList, MovieNameList, DateList);

            Session["MovieName"] = MovieNameList;
            Session["DateList"]  = DateList;
            foreach (var item in theater)
            {
                moviebook.TheaterList.Add(item);
            }
            return(View("TheaterDetails", moviebook));
        }
예제 #19
0
        /// <summary>
        /// Indication qu'il faut mettre à jour ce film, car il a été téléchargé.
        /// </summary>
        /// <param name="movieInformation"></param>
        public void SetMovieDownloaded(MovieInformation movieInformation)
        {
            MovieModel movieDownloaded = _movieModelsCollection.FirstOrDefault(x => !x.IsDownloaded &&
                                                                               x.MovieInformation.Titre == movieInformation.Titre &&
                                                                               x.MovieInformation.FileName == movieInformation.FileName);

            if (movieDownloaded == null)
            {
                // TODO : Mettre un log sur une erreur produite.
            }
            else
            {
                movieDownloaded.IsDownloaded = true;
            }
        }
예제 #20
0
        public JsonResult SeatDropDown(string TimeList)
        {
            MovieInformation movieinfo = new MovieInformation();
            MovieBooking     moviebook = new MovieBooking();
            var movie    = (string)Session["MovieName"];
            var date     = (string)Session["DateList"];
            var timeid   = movieinfo.GetTimeID(TimeList);
            var SeatList = movieinfo.GetSeatList(timeid, movie, date).ToList();

            foreach (var item in SeatList)
            {
                moviebook.SeatList.Add(item);
            }
            return(Json(moviebook));
        }
예제 #21
0
        /// <summary>
        /// Récupère les informations sur les vidéos du chemin donnée.
        /// </summary>
        /// <param name="path"></param>
        /// <param name="type">Donne le type de vidéo.</param>
        /// <returns></returns>
        public IEnumerable <MovieInformation> GetMoviesInformations(string path, TypeVideo type)
        {
            List <MovieInformation> retourInformations = new List <MovieInformation>();

            FileInfo[] videoFiles = GetAllVideoFiles(path);

            foreach (var file in videoFiles)
            {
                string           fileName    = RemoveExtension(file);
                MovieInformation information = _movieFileParser.GetInformation(fileName, file.Name, file.Length, type);
                information.PathFile = file.FullName;

                retourInformations.Add(information);
            }

            return(retourInformations);
        }
예제 #22
0
    public async Task MovieDb_Return_Success()
    {
        //arrange
        var httpClient      = new Mock <IHttpClient>();
        var jsonSerializer  = new Mock <IJsonSerializer>();
        var applicationHost = new Mock <IApplicationHost>();

        var responseModel = new MovieInformation()
        {
            Id             = 123,
            Imdb_Id        = "123",
            Title          = "Test",
            release_date   = DateTime.Now,
            Original_Title = "Test"
        };
        var responseStream = Utility.GenerateStreamFromString(JsonSerializer.Serialize(responseModel));

        jsonSerializer
        .Setup(_ => _.DeserializeFromStream <It.IsAnyType>(responseStream))
        .Returns(() => JsonSerializer.Deserialize(responseStream, typeof(MovieInformation),
                                                  new JsonSerializerOptions()));

        httpClient
        .Setup(_ => _.GetResponse(It.IsAny <HttpRequestOptions>()))
        .ReturnsAsync(() => new HttpResponseInfo()
        {
            ContentLength = 1,
            ContentType   = "application/json",
            Content       = responseStream
        });

        applicationHost
        .Setup(_ => _.ApplicationVersion)
        .Returns(() => new Version("1.1.1.1"));

        var movieDb = new MovieDb(jsonSerializer.Object, httpClient.Object, applicationHost.Object);

        //act
        var response = await movieDb.GetMovieInfo("123", CancellationToken.None);

        //assert
        response.Should().NotBeNull();
        response.Id.Should().Be(123);
        response.Imdb_Id.Should().Be("123");
    }
예제 #23
0
        private async Task ProcessMovies(MovieInformation movieInfo, ICollection <EmbyContent> content)
        {
            // Check if it exists
            var existingMovie = await _repo.GetByEmbyId(movieInfo.Id);

            if (existingMovie == null)
            {
                content.Add(new EmbyContent
                {
                    ImdbId       = movieInfo.ProviderIds.Imdb,
                    TheMovieDbId = movieInfo.ProviderIds?.Tmdb,
                    Title        = movieInfo.Name,
                    Type         = EmbyMediaType.Movie,
                    EmbyId       = movieInfo.Id,
                    AddedAt      = DateTime.UtcNow,
                });
            }
        }
예제 #24
0
        /// <summary>
        /// Permet de récupérer les informations sur un film par rapport
        /// à son titre.
        /// </summary>
        /// <param name="title">Nom du fichier sans l'extension</param>
        /// <param name="fileName">Nom du fichier avec son extension.</param>
        /// <param name="sizeByte">Taille en Bytes du fichier.</param>
        /// <param name="type">Donne le type de vidéo.</param>
        /// <returns></returns>
        public MovieInformation GetInformation(string title, string fileName, long sizeByte, TypeVideo type)
        {
            MovieInformation result = new MovieInformation();

            result.FileName  = fileName;
            result.Size      = sizeByte;
            result.TypeVideo = type;

            title = RemoveExtraInformation(title);
            title = ReplaceCharacters(title);

            result.Resolution = GetResolution(ref title, RESOLUTION_PATTERN);
            result.Qualite    = GetQuality(ref title, QUALITY_PATTERN);
            result.Annee      = GetAnneeProduction(ref title);
            result.Langage    = GetLanguage(ref title);
            result.Titre      = GetTitle(title);

            return(result);
        }
예제 #25
0
        /// <summary>
        /// Permet de faire la sélection de la "meilleur" vidéo.
        /// </summary>
        /// <param name="allMovies">Liste de résultat de video</param>
        /// <param name="movieInformation">Film recherché.</param>
        /// <returns></returns>
        private SearchMovie GetTheGoodMovie(SearchContainer <SearchMovie> allMovies, MovieInformation movieInformation)
        {
            SearchMovie retourMovie = null;

            if (allMovies.Results.Count == 1)
            {
                return(allMovies.Results[0]);
            }

            foreach (var movie in allMovies.Results)
            {
                if (movie.Title.ToUpper() == movieInformation.Titre ||
                    movie.OriginalTitle.ToUpper() == movieInformation.Titre)
                {
                    retourMovie = movie;
                    break;
                }
            }

            return(retourMovie);
        }
예제 #26
0
        // GET: Movie
        //This method calls the TheMovieDb API once more, and this time it passes the movie id to it.
        //The API sends back the JSON containing the complete information of the given movie.

        public ActionResult Index(int id)
        {
            /*Calling API https://developers.themoviedb.org/3/movie */
            string         apiKey     = ConfigurationManager.AppSettings["ApiKey"];
            HttpWebRequest apiRequest = WebRequest.Create("https://api.themoviedb.org/3/movie/" + id +
                                                          "?api_key=" + apiKey + "&language=en-US") as HttpWebRequest;

            string apiResponse = "";

            using (HttpWebResponse response = apiRequest.GetResponse() as HttpWebResponse)
            {
                StreamReader reader = new StreamReader(response.GetResponseStream());
                apiResponse = reader.ReadToEnd();
            }
            /*End*/

            /*http://json2csharp.com*/
            MovieInformation movieInformation = JsonConvert.DeserializeObject <MovieInformation>(apiResponse);

            return(View(movieInformation));
        }
예제 #27
0
        public ActionResult TheaterExistence()
        {
            MovieInformation  movieinfo = new MovieInformation();
            MovieRegistration movie     = new MovieRegistration();
            var state = movieinfo.StateNameList().ToList();
            var city  = movieinfo.CityNameList().ToList();
            var area  = movieinfo.AreaNameList().ToList();

            foreach (var item in state)
            {
                movie.StateNameList.Add(item);
            }
            foreach (var item in city)
            {
                movie.CityNameList.Add(item);
            }
            foreach (var item in area)
            {
                movie.AreaNameList.Add(item);
            }
            return(View(movie));
        }
예제 #28
0
        private async Task ProcessMovies(MovieInformation movieInfo, ICollection <EmbyContent> content)
        {
            if (string.IsNullOrEmpty(movieInfo.ProviderIds.Imdb))
            {
                Log.Error("Provider Id on movie {0} is null", movieInfo.Name);
                return;
            }
            // Check if it exists
            var existingMovie = await _repo.GetByEmbyId(movieInfo.Id);

            if (existingMovie == null)
            {
                content.Add(new EmbyContent
                {
                    ProviderId = movieInfo.ProviderIds.Imdb,
                    Title      = movieInfo.Name,
                    Type       = EmbyMediaType.Movie,
                    EmbyId     = movieInfo.Id,
                    AddedAt    = DateTime.UtcNow,
                });
            }
        }
예제 #29
0
        public ActionResult TheaterExistence(MovieRegistration movie, int StateNameList, int CityNameList, int AreaNameList)
        {
            MovieInformation movieinfo = new MovieInformation();
            var theater      = movie.Name;
            var state        = movieinfo.StateName(StateNameList);
            var city         = movieinfo.CityName(CityNameList);
            var area         = movieinfo.AreaName(AreaNameList);
            var existTheater = movieinfo.IsTheaterExist(theater, StateNameList, CityNameList, AreaNameList);

            if (existTheater == true)
            {
                Session["StateName"] = state;
                Session["CityName"]  = city;
                Session["AreaName"]  = area;
                Session["Name"]      = theater;
                return(View("MoviesRegistration", movie));
            }
            else
            {
                ViewBag.Message = "You are not registered";
                return(View());
            }
        }
예제 #30
0
        private IActionResult DownloadVideoCore(MovieInformation movieInformation)
        {
            IActionResult temp = null;

            try
            {
                Log.Logger.Information("Téléchargement de " + movieInformation.FileName);

                FileStream file = new FileStream(movieInformation.PathFile, FileMode.Open, FileAccess.Read, FileShare.Read, 4096,
                                                 true);

                Func <Stream, ActionContext, Task> funcTemp = async(outputStream, context) =>
                {
                    using (var fileStream = new WriteOnlyStreamWrapper(outputStream))
                    {
                        using (var stream = file)
                        {
                            await stream.CopyToAsync(fileStream);
                        }
                    }
                };

                temp = new FileCallbackResult("application/octet-stream", funcTemp)
                {
                    FileDownloadName = movieInformation.FileName
                };
            }
            catch (Exception exception)
            {
                Log.Error(exception, "Erreur sur la récupération du film " + movieInformation.Titre);
                temp = NoContent();
            }


            return(temp);
        }