client/src/Iri.Modernisation.Data/Models/VideoBook.cs
changeset 35 43bb1b8ed555
parent 34 4d9ebc6fbbe8
child 36 b6df6fce6e5d
--- a/client/src/Iri.Modernisation.Data/Models/VideoBook.cs	Tue Jan 19 09:49:56 2010 +0100
+++ b/client/src/Iri.Modernisation.Data/Models/VideoBook.cs	Mon Jan 25 09:30:22 2010 +0100
@@ -54,6 +54,8 @@
         /// </summary>
         public String IriPath { get; set; }
 
+        
+
         /// <summary>
         /// Constructeur par défaut
         /// </summary>
@@ -71,61 +73,66 @@
          
         }
 
-     
-     
+        /// <summary>
+        /// Méthode static pour le Loader de la list de videoBook
+        /// </summary>
+        /// <param name="XDoc">XDoc du fichier pointant tous les chemin .ldt des videoLivre disponible</param>
+        /// <returns>List des VideoLivre (non chargé)</returns>
+        public static List<VideoBook> GetListVideoBook(XDocument XDoc)
+        {
+            
+            List<VideoBook> ListReturn = new List<VideoBook>();
+            
+            foreach (XElement XVideoBook in XDoc.Root.Elements())
+            {
+
+                VideoBook temp = new VideoBook();
+                temp.LdtPath = XVideoBook.Attribute("metafile").Value; ;
+                temp.Title = XVideoBook.Attribute("title").Value;
+                ListReturn.Add(temp);
+
+
+            }
+            return ListReturn;
+        }
            
         
         
     }
-    public class VideoBookLoaderHelper
+
+    public class VideoBookLoader
     {
-        private WebClient webclient;
-        private List<VideoBook> returnVideoBookList;
-        private int nbOfBook;
-        public VideoBookLoaderHelper(String path)
+        private Loader<IRIFile> _iriFile;
+        private Loader<LDTFile> _ldtFile;
+        private IRIFile _loadedIriFile;
+        private LDTFile _loadedLdtFile;
+        public VideoBookLoader()
         {
-            nbOfBook = 0;
-            returnVideoBookList = new List<VideoBook>();
-            webclient = new WebClient();
-            webclient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webclient_DownloadStringCompleted);
-            webclient.DownloadStringAsync(new Uri(path,UriKind.RelativeOrAbsolute ));
+            _iriFile = new Loader<IRIFile>(IRIFile.FromXML);
+            _ldtFile = new Loader<LDTFile>(LDTFile.FromXML);
+            _ldtFile.LoaderFinished += new EventHandler<LoaderEventArgs<LDTFile>>(_ldtFile_LoaderFinished);
+            _iriFile.LoaderFinished += new EventHandler<LoaderEventArgs<IRIFile>>(_iriFile_LoaderFinished);
         }
 
-        void webclient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
+        void _iriFile_LoaderFinished(object sender, LoaderEventArgs<IRIFile> e)
         {
-            XDocument XDoc = XDocument.Parse(e.Result);
-            List<VideoBook> ListReturn = new List<VideoBook>();
-           
-            foreach (XElement XVideoBook in XDoc.Root.Elements())
-            {
-                Loader<VideoBook> LoaderVideoBook = new Loader<VideoBook>(LDTFileReader.ConvertToVideoBook);
-                LoaderVideoBook.LoaderFinished += new EventHandler<LoaderEventArgs<VideoBook>>(LoaderVideoBook_LoaderFinished);
+            _loadedIriFile = e.CreatedObject;
+            LoaderFinished(this,new LoaderEventArgs<VideoBook>(LDTFileReader.ConvertToVideoBook(_loadedLdtFile,_loadedIriFile)));
+        }
 
-                LoaderVideoBook.Load(XVideoBook.Attribute("metafile").Value);
+        void _ldtFile_LoaderFinished(object sender, LoaderEventArgs<LDTFile> e)
+        {
+            _loadedLdtFile = e.CreatedObject;
+            _iriFile.Load(_loadedLdtFile.Medias[0].Src);
+            
+        }
 
-                nbOfBook++;
-
-            }
+        public event EventHandler<LoaderEventArgs<VideoBook>> LoaderFinished;
 
         
-        }
+    }
 
-        void LoaderVideoBook_LoaderFinished(object sender, LoaderEventArgs<VideoBook> e)
-        {
-            e.CreatedObject.LdtPath = ((Loader<VideoBook>)sender).Path ;
-            returnVideoBookList.Add(e.CreatedObject);
-            if(returnVideoBookList.Count == nbOfBook)
-            {
-                if(LoaderFinished!=null)
-                {
-                    LoaderFinished(this,new LoaderEventArgs<List<VideoBook>>(returnVideoBookList));
-                }
-            }
-        }
-        public event EventHandler<LoaderEventArgs<List<VideoBook>>> LoaderFinished;
-      
-        
-    }
+
     /// <summary>
     /// Comparateur pour Trier les livres
     /// </summary>