示例#1
0
        /// <summary>
        /// Jeu
        /// </summary>
        /// <param name="ficheJeuJVC">ficheJeuJVC</param>
        /// <param name="genre">genre</param>
        public Jeu(FicheJeuJVC ficheJeuJVC, Genre genre, Machine machine) : this()
        {
            this.Titre = ficheJeuJVC.Titre;

            this.Developpeur.Nom = ficheJeuJVC.Developpeur;
            this.Editeur.Nom = ficheJeuJVC.Editeur;

            if (!String.IsNullOrEmpty(ficheJeuJVC.DateSortie))
            {
                if (ficheJeuJVC.DateSortie.Length == 4)
                {
                    this.DateSortie = new DateTime(Int32.Parse(ficheJeuJVC.DateSortie), 1, 1);
                }
                else
                {
                    this.DateSortie = DateTime.Parse(ficheJeuJVC.DateSortie);
                }
            }

            this.Synopsys = ficheJeuJVC.Description;
            this.LeGenre = genre;
            this.Photo = ficheJeuJVC.NomPhoto;
            this.LaMachine = machine;

        }
示例#2
0
        /// <summary>
        /// Désérialisation d'une liste de jeux
        /// </summary>
        /// <param name="stream"></param>
        /// <returns></returns>
        private ListeFichesJeuxJVC DeserialiserListeJeux(Stream stream)
        {
            string machine;
             string urlFiche;

            ListeFichesJeuxJVC listeFichesJeuxJVC = new ListeFichesJeuxJVC();

            try
            {
                Log.MonitoringLogger().Info(KS_NOM_MODULE + "Début DeserialiserListeJeux");


                StreamReader streamReader = new StreamReader(stream);
                string resultat = streamReader.ReadToEnd();

                int indexDebut = resultat.LastIndexOf("[")+1;
                int indexFin = resultat.IndexOf("]")-1;

                resultat = resultat.Substring(indexDebut, indexFin - indexDebut);

            
                indexDebut = resultat.IndexOf("ul>") + 3;

                resultat = resultat.Substring(indexDebut, resultat.Length - indexDebut);
                resultat = resultat.Replace("&", "and");

                XmlDocument xdoc = new XmlDocument();
                xdoc.LoadXml(resultat);

                XPathNavigator xpathNavigator;
                xpathNavigator = xdoc.CreateNavigator();

                XPathNodeIterator xpathNodeIterator;
                xpathNodeIterator = xpathNavigator.Select("/div/h3");


                 // On parcourt les chunks
                while (xpathNodeIterator.MoveNext())
                {
                    // On recupère le nom de machine
                    machine = xpathNodeIterator.Current.Value;

                    //on va à ul
                    xpathNodeIterator.Current.MoveToNext();

                    // balises li
                    xpathNodeIterator.Current.MoveToChild("li", "");

                    do
                    {
                        // Chaque balise li correspond à une fiche
                        FicheJeuJVC ficheJeuJVC = new FicheJeuJVC();
                        ficheJeuJVC.Machine = xpathNodeIterator.Current.Value;


                        xpathNodeIterator.Current.MoveToChild("a", "");

                        ficheJeuJVC.Titre = xpathNodeIterator.Current.Value;

                        urlFiche = xpathNodeIterator.Current.GetAttribute("href", "");
                        urlFiche = urlFiche.Replace("jv:/", "http://ws.jeuxvideo.com");
                       
                        ficheJeuJVC.UrlSimple = urlFiche;
                        
 
                        xpathNodeIterator.Current.MoveToParent();


                        if (xpathNodeIterator.Current.MoveToChild("strong", ""))
                        {
                            ficheJeuJVC.Machine = xpathNodeIterator.Current.Value;
                            xpathNodeIterator.Current.MoveToParent();
                        }
                        else
                        {
                            ficheJeuJVC.Machine = machine;
                        }

                        FicheJeuJVC ficheComplementaire = ObtenirFicheSimpleJeu(urlFiche);

                        ficheJeuJVC.UrlVignette = ficheComplementaire.UrlVignette;
                        ficheJeuJVC.Editeur = ficheComplementaire.Editeur;
                        ficheJeuJVC.Developpeur = ficheComplementaire.Developpeur;
                        ficheJeuJVC.DateSortie = ficheComplementaire.DateSortie;
                        ficheJeuJVC.NomJaquette = ficheComplementaire.NomJaquette;
                        ficheJeuJVC.Genre = ficheComplementaire.Genre;

                        listeFichesJeuxJVC.AjouterFicheJeuJVC(ficheJeuJVC);


                    } while (xpathNodeIterator.Current.MoveToNext());

                    xpathNodeIterator.Current.MoveToParent();
                }


                foreach (FicheJeuJVC fiche in listeFichesJeuxJVC)
                {
                    Console.WriteLine(fiche.ToString());
                }


                return listeFichesJeuxJVC;
            }
            catch (Exception ex)
            {
                Log.MonitoringLogger().Info(KS_NOM_MODULE + "Erreur = " + ex.Message);
                throw;

            }
            finally
            {

                Log.MonitoringLogger().Info(KS_NOM_MODULE + "Fin DeserialiserListeJeux");
            }
        }
示例#3
0
        /// <summary>
        /// Téléchargement d'une jaquette
        /// </summary>
        /// <param name="pUrlFilm"></param>
        /// <param name="film"></param>
        private void DownloadJaquette(FicheJeuJVC ficheJeu)
        {
            try
            {
                Log.MonitoringLogger().Info(KS_NOM_MODULE + "Début DownloadJaquette");

                // Construction de l'url de recherche
                string url = string.Format(Properties.Settings.Default.UrlScreenshotsJVC, ficheJeu.CodeJeu);

                // Création de la requête
                HttpWebRequest request = CreateWebRequest(url);

                // Récupération de la réponse
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                if (response.StatusCode != HttpStatusCode.OK)
                {
                    string message = String.Format("POST failed. Received HTTP {0}", response.StatusCode);
                    throw new ApplicationException(message);
                }

                // Récupération du flux
                Stream responseStream = response.GetResponseStream();
                StreamReader streamReader = new StreamReader(responseStream);
                string resultat = streamReader.ReadToEnd();

                // Récupération de l'url de la jaquette
                XmlDocument xdoc = new XmlDocument();
                xdoc.LoadXml(resultat);

                XPathNavigator xpathNavigator;
                xpathNavigator = xdoc.CreateNavigator();

                XPathNodeIterator xpathNodeIterator;
                xpathNodeIterator = xpathNavigator.Select("/screenshots/screenshot");

                //TODO : accéder directement au bon
                // On parcourt les item screenshot jusqu'à la jaquette
                while (xpathNodeIterator.MoveNext() && ficheJeu.UrlJaquette == null)
                {
                    // balises id
                    xpathNodeIterator.Current.MoveToChild("id", "");

                    // On recupère le nom de machine
                    string id = xpathNodeIterator.Current.Value;
                    Console.WriteLine(id);

                    // le screenshot correspond à la jaquette
                    if (id == IdScreenShotFront)
                    {
                        //on va à url_screenshot
                        xpathNodeIterator.Current.MoveToNext("url_screenshot", "");
                        ficheJeu.UrlJaquette = xpathNodeIterator.Current.Value;
                    }

                    xpathNodeIterator.Current.MoveToParent();
                }

                string nomJaquette = ficheJeu.Titre + ".jpg";

                if (nomJaquette.IndexOf(":") > 0)
                {
                    nomJaquette = nomJaquette.Remove(nomJaquette.IndexOf(":"), 1);
                }

                // Enregistrement dans Temp
                string cheminFichier = Properties.Settings.Default.RepertoireTemp + nomJaquette;

                //Création du controle client
                WebClient webClient = new WebClient();

                webClient.DownloadFile(ficheJeu.UrlJaquette, cheminFichier);

                ficheJeu.NomJaquette = nomJaquette;
            }
            catch (Exception ex)
            {
                Log.MonitoringLogger().Info(KS_NOM_MODULE + "Erreur", ex);
                throw ex;
            }
            finally
            {
                Log.MonitoringLogger().Info(KS_NOM_MODULE + "Fin DownloadJaquette");
            }

        }
示例#4
0
        /// <summary>
        /// Fonction qui retourne la fiche détaillée d'un jeu
        /// </summary>
        /// <param name="critere"></param>
        public FicheJeuJVC ObtenirFicheDetailleJeu(FicheJeuJVC ficheJeuSimple)
        {
            Log.MonitoringLogger().Info(KS_NOM_MODULE + "Début ObtenirFicheDetailleJeu");

            try
            {
                string responseValue = String.Empty;

                // Construction de l'url de recherche
                string url = string.Format(Properties.Settings.Default.UrlObtenirFicheJVC, ficheJeuSimple.CodeJeu);

                // Création de la requête
                HttpWebRequest request = CreateWebRequest(url);

                // Récupération de la réponse
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                if (response.StatusCode != HttpStatusCode.OK)
                {
                    string message = String.Format("POST failed. Received HTTP {0}", response.StatusCode);
                    throw new ApplicationException(message);
                }

                // Récupération du flux
                Stream responseStream = response.GetResponseStream();

                StringBuilder resultat = new StringBuilder(Properties.Settings.Default.EnteteXML);

                StreamReader streamReader = new StreamReader(responseStream);
                resultat.Append(streamReader.ReadToEnd());

                resultat.Replace("<details_jeu>", "<jeu>");
                resultat.Replace("</details_jeu>", "</jeu>");
                resultat.Replace("<![CDATA[","");
                resultat.Replace("]]>", "");
                resultat.Replace("&", "");

                StringReader sr = new StringReader(resultat.ToString());
              
                // Désérialisation
                FicheJeuJVC ficheJeu = DeserialiserJeu(sr);

                ficheJeu.CodeJeu = ficheJeuSimple.CodeJeu;
                ficheJeu.DateSortie = ficheJeuSimple.DateSortie;
                ficheJeu.Developpeur = ficheJeuSimple.Developpeur;
                ficheJeu.Editeur = ficheJeuSimple.Editeur;
                ficheJeu.Genre = ficheJeuSimple.Genre;
                ficheJeu.Machine = ficheJeuSimple.Machine;
                ficheJeu.NomJaquette = ficheJeuSimple.NomJaquette;
                ficheJeu.Note = ficheJeuSimple.Note;
                ficheJeu.Titre = ficheJeuSimple.Titre;
                ficheJeu.UrlJaquette = ficheJeuSimple.UrlJaquette;
                ficheJeu.UrlVignette = ficheJeuSimple.UrlVignette;
                ficheJeu.UrlSimple = ficheJeuSimple.UrlSimple;
                ficheJeu.UrlDetaille = url;

 
                DownloadJaquette(ficheJeu);

                return ficheJeu;

            }
            catch (Exception ex)
            {
                Log.MonitoringLogger().Info(KS_NOM_MODULE + "Erreur = " + ex.Message);
                throw;
            }
            finally
            {
                Log.MonitoringLogger().Info(KS_NOM_MODULE + "Fin ObtenirFicheFilm");
            }
        }
示例#5
0
        /// <summary>
        /// Create depuis la liste des fiches trouvées dans Allocine
        /// GET: /Home/Create
        /// </summary>
        /// <param name="codeJeuAllocine">codeJeuAllocine</param>
        /// <returns></returns>
        public ActionResult Create(string codeJeuJVC)
        {
            if (Request.IsAuthenticated)
            {
                try
                {
                    MediaViewModel mediaViewModel = new MediaViewModel(Modele.Constantes.EnumTypeMedia.JEU);

                    mediaViewModel.ListeProprietaire = DataManager.ListeProprietaires;
                    mediaViewModel.ListeMachines = DataManager.ListeMachines;
                    mediaViewModel.ListeGenres = DataManager.ObtenirListeGenre(Modele.Constantes.EnumTypeMedia.JEU);
                    mediaViewModel.ListeEtatsMedia = DataManager.ListeEtatsMedia;

                    if (String.IsNullOrEmpty(codeJeuJVC))
                    {

                    }
                    else
                    {
                        //Ajout via JVC
                        GestionnaireJVC gestionnaireJVC = new GestionnaireJVC();

                        //FicheJeuJVC ficheJeuJVC = gestionnaireJVC.ObtenirFicheSimpleJeu(codeJeuJVC);
                        FicheJeuJVC ficheJeuJVC = new FicheJeuJVC();
                        ficheJeuJVC.CodeJeu = codeJeuJVC;
                        ficheJeuJVC = gestionnaireJVC.ObtenirFicheDetailleJeu(ficheJeuJVC);

                        Genre genre = mediaViewModel.ListeGenres.Find(
                        item => item.Libelle.ToLower().Replace(" ", "").Replace("-", "").Contains(
                            ficheJeuJVC.Genre.ToLower().Replace(" ", "").Replace("-", "")));

                        Machine machine = mediaViewModel.ListeMachines.Find(item => item.Nom.ToLower().Equals(ficheJeuJVC.Machine.ToLower()));

                        FileInfo sourceFile = new FileInfo("C:\\Temp\\" + ficheJeuJVC.NomPhoto);
                        if (sourceFile.Exists)
                        {
                            FileInfo destFile = new FileInfo("D:\\Jaymz\\Images\\Pochettes\\Jeux\\" + ficheJeuJVC.NomPhoto);

                            if (destFile.Exists)
                            {
                                destFile.Delete();
                            }

                            sourceFile.MoveTo(destFile.FullName);
                        }

                        mediaViewModel.LeJeu = new Jeu(ficheJeuJVC, genre, machine);
                        mediaViewModel.Developpeur = ficheJeuJVC.Developpeur;
                        mediaViewModel.Editeur = ficheJeuJVC.Editeur;
                        mediaViewModel.AnneeSortie = ficheJeuJVC.DateSortie;
                 
                    }

                    //Sélection du propriétaire par défaut pour la création de l'exemplaire
                    mediaViewModel.LeProprietaire.Code = mediaViewModel.ListeProprietaire.Find(
                        item => item.Login.Equals(System.Web.HttpContext.Current.User.Identity.Name)).Code;


                    return View(mediaViewModel);

                }
                catch (Exception ex)
                {
                    HandleErrorInfo error = new HandleErrorInfo(ex, "Jeu", "Create");
                    return View("Error", error);
                }

            }
            else
            {
                return RedirectToAction("LogOn", "Account");
            }
        }
示例#6
0
        /// <summary>
        /// Téléchargement d'une jaquette
        /// </summary>
        /// <param name="pUrlFilm"></param>
        /// <param name="film"></param>
        private void DownloadPhoto(FicheJeuJVC ficheJeu)
        {
            try
            {
                Log.MonitoringLogger().Info(KS_NOM_MODULE + "Début DownloadPhoto");

                string nomPhoto = ficheJeu.Titre + ".jpg";

                if (nomPhoto.IndexOf(":") > 0)
                {
                    nomPhoto = nomPhoto.Remove(nomPhoto.IndexOf(":"), 1);
                }

                // Enregistrement dans Temp
                string cheminFichier = Properties.Settings.Default.RepertoireTemp + nomPhoto;

                //Création du controle client
                WebClient webClient = new WebClient();

                webClient.DownloadFile(ficheJeu.UrlVignetteGrande, cheminFichier);

                ficheJeu.NomPhoto = nomPhoto;
            }
            catch (Exception ex)
            {
                Log.MonitoringLogger().Info(KS_NOM_MODULE + "Erreur", ex);
                throw ex;
            }
            finally
            {
                Log.MonitoringLogger().Info(KS_NOM_MODULE + "Fin DownloadPhoto");
            }

        }