client/src/Iri.Modernisation.Data/Models/VideoBook.cs
author totetm <>
Fri, 15 Jan 2010 11:31:05 +0100
changeset 32 36302cc9688d
parent 30 644e3cd48034
child 34 4d9ebc6fbbe8
permissions -rw-r--r--
Web InitParams
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>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    48
        /// Constructeur par défaut
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    49
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    50
        public VideoBook()
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    51
        {
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    52
            Chapters = new VideoChapter[FactoryVideoLivre.VideoChapterDescriptions.Length];
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    53
            for (int nbChapitre = 0; nbChapitre < FactoryVideoLivre.VideoChapterDescriptions.Length; nbChapitre++)
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    54
            {
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    55
                Chapters[nbChapitre] = new VideoChapter(this,
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    56
                                                         FactoryVideoLivre.VideoChapterDescriptions[nbChapitre].Id,
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    57
                                                         FactoryVideoLivre.VideoChapterDescriptions[nbChapitre].Title,
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    58
                                                         FactoryVideoLivre.VideoChapterDescriptions[nbChapitre].Color);
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    59
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    60
            }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    61
         
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    62
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    63
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    64
     
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    65
     
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    66
           
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    67
        
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    68
        
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    69
    }
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    70
    public class VideoBookLoaderHelper
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    71
    {
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    72
        private WebClient webclient;
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    73
        private List<VideoBook> returnVideoBookList;
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    74
        private int nbOfBook;
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    75
        public VideoBookLoaderHelper(String path)
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    76
        {
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    77
            nbOfBook = 0;
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    78
            returnVideoBookList = new List<VideoBook>();
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    79
            webclient = new WebClient();
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    80
            webclient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webclient_DownloadStringCompleted);
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    81
            webclient.DownloadStringAsync(new Uri(path,UriKind.RelativeOrAbsolute ));
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    82
        }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    83
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    84
        void webclient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    85
        {
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    86
            XDocument XDoc = XDocument.Parse(e.Result);
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    87
            List<VideoBook> ListReturn = new List<VideoBook>();
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    88
           
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    89
            foreach (XElement XVideoBook in XDoc.Root.Elements())
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    90
            {
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    91
                Loader<VideoBook> LoaderVideoBook = new Loader<VideoBook>(LDTFileReader.ConvertToVideoBook);
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    92
                LoaderVideoBook.LoaderFinished += new EventHandler<LoaderEventArgs<VideoBook>>(LoaderVideoBook_LoaderFinished);
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    93
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    94
                LoaderVideoBook.LoadAvailableVideoBooks(XVideoBook.Attribute("metafile").Value);
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    95
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    96
                nbOfBook++;
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    97
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    98
            }
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
    99
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   100
        
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   101
        }
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   102
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   103
        void LoaderVideoBook_LoaderFinished(object sender, LoaderEventArgs<VideoBook> e)
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   104
        {
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   105
            returnVideoBookList.Add(e.CreatedObject);
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   106
            if(returnVideoBookList.Count == nbOfBook)
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   107
            {
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   108
                if(LoaderFinished!=null)
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   109
                {
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   110
                    LoaderFinished(this,new LoaderEventArgs<List<VideoBook>>(returnVideoBookList));
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   111
                }
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   112
            }
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   113
        }
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   114
        public event EventHandler<LoaderEventArgs<List<VideoBook>>> LoaderFinished;
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   115
         /*public List<VideoBook> LoadFromXml(XDocument XDoc)
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   116
        {
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   117
           
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   118
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   119
        }*/
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   120
        
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   121
    }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   122
    /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   123
    /// Comparateur pour Trier les livres
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   124
    /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   125
    public class VideoBookComparer : IComparer<VideoBook>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   126
    {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   127
        public int Compare(VideoBook x, VideoBook y)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   128
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   129
            return x.Title.CompareTo(y.Title);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   130
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   131
    }
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   132
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   133
}