client/src/Iri.Modernisation.Data/Models/VideoBook.cs
author totetm <>
Mon, 25 Jan 2010 09:30:22 +0100
changeset 35 43bb1b8ed555
parent 34 4d9ebc6fbbe8
child 36 b6df6fce6e5d
permissions -rw-r--r--
IRIFiles Class Web Loader and Sender
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     1
using System;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     2
using System.Net;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     3
using System.Windows;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     4
using System.Windows.Controls;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     5
using System.Windows.Documents;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     6
using System.Windows.Ink;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     7
using System.Windows.Input;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     8
using System.Windows.Media;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     9
using System.Windows.Media.Animation;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    10
using System.Windows.Shapes;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    11
using System.Collections.Generic;
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    12
using System.Xml.Linq;
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    13
using System.Threading;
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    14
using Iri.Modernisation.Data.LDTClass;
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    15
namespace Iri.Modernisation.Data.Models
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    16
{
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    17
    /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    18
    /// Classe VideoLivre
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    19
    /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    20
    public class VideoBook
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    21
    {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    22
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    23
        /// Titre du VideoLivre
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    24
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    25
        public String Title { get; set; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    26
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    27
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    28
        /// Auteur du VideoLivre
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    29
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    30
        public User Author { get; set; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    31
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    32
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    33
        /// Chapitre du VideoLivre
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    34
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    35
        public VideoChapter[] Chapters { get; set; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    36
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    37
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    38
        /// Durée du VideoLivre
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    39
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    40
        public TimeSpan Duration { get; set; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    41
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    42
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    43
        /// Chemin de la vidéo fini
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    44
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    45
        public String MediaPath { get; set; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    46
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    47
        /// <summary>
34
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    48
        /// Chemin du projet .ldt
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    49
        /// </summary>
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    50
        public String LdtPath { get; set; }
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    51
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    52
        /// <summary>
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    53
        /// Chemin du .iri
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    54
        /// </summary>
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    55
        public String IriPath { get; set; }
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    56
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    57
        
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    58
34
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    59
        /// <summary>
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    60
        /// Constructeur par défaut
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    61
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    62
        public VideoBook()
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    63
        {
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    64
            Chapters = new VideoChapter[FactoryVideoLivre.VideoChapterDescriptions.Length];
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    65
            for (int nbChapitre = 0; nbChapitre < FactoryVideoLivre.VideoChapterDescriptions.Length; nbChapitre++)
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    66
            {
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    67
                Chapters[nbChapitre] = new VideoChapter(this,
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    68
                                                         FactoryVideoLivre.VideoChapterDescriptions[nbChapitre].Id,
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    69
                                                         FactoryVideoLivre.VideoChapterDescriptions[nbChapitre].Title,
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    70
                                                         FactoryVideoLivre.VideoChapterDescriptions[nbChapitre].Color);
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    71
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    72
            }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    73
         
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    74
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    75
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    76
        /// <summary>
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    77
        /// Méthode static pour le Loader de la list de videoBook
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    78
        /// </summary>
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    79
        /// <param name="XDoc">XDoc du fichier pointant tous les chemin .ldt des videoLivre disponible</param>
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    80
        /// <returns>List des VideoLivre (non chargé)</returns>
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    81
        public static List<VideoBook> GetListVideoBook(XDocument XDoc)
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    82
        {
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    83
            
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    84
            List<VideoBook> ListReturn = new List<VideoBook>();
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    85
            
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    86
            foreach (XElement XVideoBook in XDoc.Root.Elements())
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    87
            {
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    88
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    89
                VideoBook temp = new VideoBook();
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    90
                temp.LdtPath = XVideoBook.Attribute("metafile").Value; ;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    91
                temp.Title = XVideoBook.Attribute("title").Value;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    92
                ListReturn.Add(temp);
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    93
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    94
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    95
            }
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    96
            return ListReturn;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    97
        }
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    98
           
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    99
        
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   100
        
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   101
    }
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   102
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   103
    public class VideoBookLoader
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   104
    {
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   105
        private Loader<IRIFile> _iriFile;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   106
        private Loader<LDTFile> _ldtFile;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   107
        private IRIFile _loadedIriFile;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   108
        private LDTFile _loadedLdtFile;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   109
        public VideoBookLoader()
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   110
        {
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   111
            _iriFile = new Loader<IRIFile>(IRIFile.FromXML);
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   112
            _ldtFile = new Loader<LDTFile>(LDTFile.FromXML);
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   113
            _ldtFile.LoaderFinished += new EventHandler<LoaderEventArgs<LDTFile>>(_ldtFile_LoaderFinished);
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   114
            _iriFile.LoaderFinished += new EventHandler<LoaderEventArgs<IRIFile>>(_iriFile_LoaderFinished);
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   115
        }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   116
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   117
        void _iriFile_LoaderFinished(object sender, LoaderEventArgs<IRIFile> e)
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   118
        {
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   119
            _loadedIriFile = e.CreatedObject;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   120
            LoaderFinished(this,new LoaderEventArgs<VideoBook>(LDTFileReader.ConvertToVideoBook(_loadedLdtFile,_loadedIriFile)));
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   121
        }
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   122
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   123
        void _ldtFile_LoaderFinished(object sender, LoaderEventArgs<LDTFile> e)
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   124
        {
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   125
            _loadedLdtFile = e.CreatedObject;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   126
            _iriFile.Load(_loadedLdtFile.Medias[0].Src);
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   127
            
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   128
        }
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   129
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   130
        public event EventHandler<LoaderEventArgs<VideoBook>> LoaderFinished;
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   131
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   132
        
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   133
    }
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   134
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   135
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   136
    /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   137
    /// Comparateur pour Trier les livres
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   138
    /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   139
    public class VideoBookComparer : IComparer<VideoBook>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   140
    {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   141
        public int Compare(VideoBook x, VideoBook y)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   142
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   143
            return x.Title.CompareTo(y.Title);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   144
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   145
    }
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   146
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   147
}