--- 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>