client/src/Iri.Modernisation.Data/Models/VideoBook.cs
author totetm <>
Thu, 11 Feb 2010 17:29:23 +0100
changeset 42 594fdedecf7f
parent 40 581829b5ddd9
permissions -rw-r--r--
Fixed| bouton close sur BookTimeLine Fixed| loading blocker sur les éléments du corpus vidéolivre (book a charger) Fixed| afficher l'état sur on load et loader sur les éléments du corpus vidéolivre ("book a charger") Fixed| bug du title sur book timline Fixed| Actualisation de l'affichage des annotations sur seek de la timline sans play Fixed| Seek possible quand play Fixed| Bug sur le placement tetris ? Fixed| texte par default sur les champs d'annotations
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;
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
    15
using System.IO;
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    16
namespace Iri.Modernisation.Data.Models
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    17
{
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    18
    /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    19
    /// Classe VideoLivre
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    20
    /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    21
    public class VideoBook
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    22
    {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    23
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    24
        /// Titre du VideoLivre
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    25
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    26
        public String Title { get; set; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    27
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    28
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    29
        /// Auteur du VideoLivre
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    30
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    31
        public User Author { get; set; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    32
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    33
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    34
        /// Chapitre du VideoLivre
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    35
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    36
        public VideoChapter[] Chapters { get; set; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    37
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    38
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    39
        /// Durée du VideoLivre
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    40
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    41
        public TimeSpan Duration { get; set; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    42
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    43
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    44
        /// Chemin de la vidéo fini
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    45
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    46
        public String MediaPath { get; set; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    47
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    48
        /// <summary>
34
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    49
        /// Chemin du projet .ldt
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    50
        /// </summary>
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    51
        public String LdtPath { get; set; }
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    52
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    53
        /// <summary>
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    54
        /// Chemin du .iri
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    55
        /// </summary>
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    56
        public String IriPath { get; set; }
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    57
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
    58
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    59
        public List<PolemicLink> BasicLinks { get; set; }
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    60
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    61
        public List<PolemicLink> PolemicLinks { get; set; }
34
4d9ebc6fbbe8 Web Migration Update
totetm <>
parents: 32
diff changeset
    62
        /// <summary>
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    63
        /// Constructeur par défaut
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    64
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    65
        public VideoBook()
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    66
        {
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    67
            BasicLinks = new List<PolemicLink>();
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    68
            PolemicLinks = new List<PolemicLink>();
27
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    69
            Chapters = new VideoChapter[FactoryVideoLivre.VideoChapterDescriptions.Length];
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    70
            for (int nbChapitre = 0; nbChapitre < FactoryVideoLivre.VideoChapterDescriptions.Length; nbChapitre++)
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    71
            {
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    72
                Chapters[nbChapitre] = new VideoChapter(this,
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    73
                                                         FactoryVideoLivre.VideoChapterDescriptions[nbChapitre].Id,
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    74
                                                         FactoryVideoLivre.VideoChapterDescriptions[nbChapitre].Title,
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    75
                                                         FactoryVideoLivre.VideoChapterDescriptions[nbChapitre].Color);
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    76
f292db96b050 Generalization of Book Structure
Matthieu Totet
parents: 18
diff changeset
    77
            }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    78
         
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    79
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    80
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    81
        public LDTFile GetLDTFile()
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    82
        {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    83
            LDTFile ldt = new LDTFile();
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    84
            ldt.Project = new LDTProject()
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    85
             {
42
594fdedecf7f Fixed| bouton close sur BookTimeLine
totetm <>
parents: 40
diff changeset
    86
                 Title = this.Title,
594fdedecf7f Fixed| bouton close sur BookTimeLine
totetm <>
parents: 40
diff changeset
    87
                 User = this.Author.UserName
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    88
             };
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    89
            ldt.Medias = new List<LDTMedia>()
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    90
             {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    91
                 new LDTMedia()
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    92
                 {
40
581829b5ddd9 Bug fix on annotation load and save
totetm <>
parents: 39
diff changeset
    93
                     Src = IriPath,
581829b5ddd9 Bug fix on annotation load and save
totetm <>
parents: 39
diff changeset
    94
                     
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    95
                 }
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    96
             };
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    97
            foreach (VideoChapter Vc in Chapters)
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    98
            {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
    99
                ldt.Annotations.Add(
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   100
                       new LDTAnnotationsContent()
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   101
                       {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   102
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   103
                       });
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   104
                foreach (Annotation An in Vc.Annotations)
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   105
                {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   106
                    LDTAnnotationsDecoupage decoupage = new LDTAnnotationsDecoupage()
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   107
                    {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   108
                        Title = Vc.Title,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   109
                        Author = SettingsProject.ActualUser.UserName
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   110
                    };
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   111
                    decoupage.Elements.Add(
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   112
                                            new LDTElement()
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   113
                                            {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   114
                                                Id = An.Id,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   115
                                                Title = An.Title,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   116
                                                Abstract = An.Description,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   117
                                                Date = DateTime.Now,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   118
                                                Begin = An.TimerIn.TotalMilliseconds,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   119
                                                Dur = An.Duration.TotalMilliseconds,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   120
                                                Tags = An.Tags,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   121
                                                Author = SettingsProject.ActualUser.UserName,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   122
                                            }
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   123
                                                );
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   124
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   125
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   126
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   127
                    ldt.Annotations[ldt.Annotations.Count - 1].Content.Add(decoupage);
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   128
                }
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   129
                foreach (PolemicLink Pl in BasicLinks)
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   130
                {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   131
                    ldt.BasicRelations.Add(new LDTRelation()
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   132
                    {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   133
                        Type = Pl.Type.Title,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   134
                        IdElementFrom = Pl.FromElement.Id,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   135
                        IdElementTo = Pl.ToElement.Id,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   136
                        Title = Pl.ToElement.Title
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   137
                    });
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   138
                }
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   139
                foreach (PolemicLink Pl in PolemicLinks)
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   140
                {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   141
                    ldt.PolemicRelations.Add(new LDTRelation()
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   142
                    {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   143
                        Type = Pl.Type.Title,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   144
                        IdElementFrom = Pl.FromElement.Id,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   145
                        IdElementTo = Pl.ToElement.Id,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   146
                        Title = Pl.ToElement.Title
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   147
                    });
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   148
                   
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   149
                }
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   150
               
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   151
            }
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   152
            return ldt;
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   153
        }
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   154
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   155
      
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   156
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   157
        /// <summary>
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   158
        /// Méthode static pour le Loader de la list de videoBook
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   159
        /// </summary>
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   160
        /// <param name="XDoc">XDoc du fichier pointant tous les chemin .ldt des videoLivre disponible</param>
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   161
        /// <returns>List des VideoLivre (non chargé)</returns>
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   162
        public static List<VideoBook> GetListVideoBook(XDocument XDoc)
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   163
        {
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   164
            
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   165
            List<VideoBook> ListReturn = new List<VideoBook>();
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   166
            
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   167
            foreach (XElement XVideoBook in XDoc.Root.Elements())
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   168
            {
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   169
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   170
                VideoBook temp = new VideoBook();
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   171
                temp.LdtPath = XVideoBook.Attribute("metafile").Value; ;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   172
                temp.Title = XVideoBook.Attribute("title").Value;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   173
                ListReturn.Add(temp);
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   174
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   175
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   176
            }
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   177
            return ListReturn;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   178
        }
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   179
           
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   180
        
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   181
        
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   182
    }
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   183
    public class VideoBookUploader
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   184
    {
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   185
        private static Loader<LDTFile> loaderLdt = new Loader<LDTFile>(LDTFile.FromXML);
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   186
        private static LDTFile ldt = new LDTFile();
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   187
        private static VideoBook videoBookToUpdate;
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   188
        private static StreamWriter Sw;
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   189
        public static void UpdateAnnotation(VideoBook update,StreamWriter sw)
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   190
        {
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   191
            Sw = sw;
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   192
            videoBookToUpdate = update;
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   193
            loaderLdt.LoaderFinished += new EventHandler<EventArgs>(loaderLdt_LoaderFinished);
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   194
            loaderLdt.Load(videoBookToUpdate.LdtPath);
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   195
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   196
        }
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   197
        public static void UpdateAnnotation(VideoBook update)
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   198
        {
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   199
            videoBookToUpdate = update;
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   200
            loaderLdt.LoaderFinished += new EventHandler<EventArgs>(loaderLdt_LoaderFinished);
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   201
            loaderLdt.Load(videoBookToUpdate.LdtPath);
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   202
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   203
        }
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   204
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   205
        static void loaderLdt_LoaderFinished(object sender, EventArgs e)
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   206
        {
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   207
            ldt = ((LoaderEventArgs<LDTFile>)e).CreatedObject;
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   208
            ldt.Annotations.Clear();
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   209
            
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   210
            foreach (VideoChapter Vc in videoBookToUpdate.Chapters)
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   211
            {
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   212
                 ldt.Annotations.Add(
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   213
                        new LDTAnnotationsContent()
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   214
                        {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   215
                         
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   216
                        });
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   217
                foreach(Annotation An in Vc.Annotations)
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   218
                {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   219
                    LDTAnnotationsDecoupage decoupage = new LDTAnnotationsDecoupage()
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   220
                    {
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   221
                        Title = Vc.Title,
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   222
                        Author = SettingsProject.ActualUser.UserName
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   223
                    };
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   224
                    decoupage.Elements.Add(
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   225
                                            new LDTElement()
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   226
                                            {
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   227
                                                Id = An.Id,
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   228
                                                Title = An.Title,
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   229
                                                Abstract = An.Description,
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   230
                                                Date = DateTime.Now,
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   231
                                                Begin = An.TimerIn.TotalMilliseconds,
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   232
                                                Dur = An.Duration.TotalMilliseconds,
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   233
                                                Tags = An.Tags,
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   234
                                                Author = SettingsProject.ActualUser.UserName,
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   235
                                            }
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   236
                                                );
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   237
                  
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   238
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   239
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   240
                    ldt.Annotations[ldt.Annotations.Count - 1].Content.Add(decoupage);
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   241
                }
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   242
                foreach (PolemicLink Pl in videoBookToUpdate.BasicLinks)
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   243
                {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   244
                    ldt.BasicRelations.Add(new LDTRelation()
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   245
                        {
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   246
                            Type = Pl.Type.Title,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   247
                            IdElementFrom = Pl.FromElement.Id,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   248
                            IdElementTo = Pl.ToElement.Id,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   249
                            Title = Pl.ToElement.Title
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   250
                        });
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   251
                }
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   252
                foreach (PolemicLink Pl in videoBookToUpdate.PolemicLinks)
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   253
                {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   254
                    ldt.PolemicRelations.Add(new LDTRelation()
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   255
                    {
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   256
                        Type = Pl.Type.Title,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   257
                        IdElementFrom = Pl.FromElement.Id,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   258
                        IdElementTo = Pl.ToElement.Id,
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   259
                        Title = Pl.ToElement.Title
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   260
                    });
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   261
                }
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   262
            }
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   263
           
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   264
                     WebClient WebWriter = new WebClient();
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   265
            
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   266
               
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   267
                     WebWriter.OpenWriteCompleted +=new OpenWriteCompletedEventHandler(WebWriter_OpenWriteCompleted);
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   268
          WebWriter.OpenWriteAsync(new Uri(videoBookToUpdate.LdtPath, UriKind.RelativeOrAbsolute));
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   269
                 //    WebWriter.UploadStringCompleted += new UploadStringCompletedEventHandler(WebWriter_UploadStringCompleted);
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   270
                //     WebWriter.UploadStringAsync(new Uri(videoBookToUpdate.LdtPath, UriKind.RelativeOrAbsolute),"azerty");
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   271
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   272
        }
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   273
    
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   274
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   275
        static void WebWriter_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   276
        {
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   277
          
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   278
        }
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   279
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   280
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   281
        static void WebWriter_OpenWriteCompleted(object sender, OpenWriteCompletedEventArgs e)
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   282
        {
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   283
           
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   284
            
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   285
           /*using (Stream fs = e.Result)
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   286
            {
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   287
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   288
                // Add some information to the file.
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   289
                byte[] info = new System.Text.UTF8Encoding(true).GetBytes("This is some text in the file.");
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   290
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   291
                fs.Write(info, 0, info.Length);
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   292
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   293
                fs.Close();
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   294
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   295
            }*/
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   296
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   297
            StreamWriter fs = Sw;
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   298
         
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   299
                  
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   300
                    fs.Write(ldt.ToString());
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   301
                    fs.Close();
39
0f2bde8fdfeb WebService-like
totetm <>
parents: 38
diff changeset
   302
               
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   303
            
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   304
            /*StreamWriter fs = new StreamWriter(e.Result);
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   305
            //MessageBox.Show(ldt.ToString());
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   306
            fs.Write(ldt.ToString());
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   307
            fs.Flush();
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   308
            fs.Close();*/
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   309
        }
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   310
    }
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   311
    public class VideoBookLoader
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   312
    {
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   313
        private Loader<IRIFile> _iriFile;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   314
        private Loader<LDTFile> _ldtFile;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   315
        private IRIFile _loadedIriFile;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   316
        private LDTFile _loadedLdtFile;
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   317
        public VideoBookLoader()
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   318
        {
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   319
            _iriFile = new Loader<IRIFile>(IRIFile.FromXML);
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   320
            _ldtFile = new Loader<LDTFile>(LDTFile.FromXML);
36
b6df6fce6e5d Sync init XML download.
totetm <>
parents: 35
diff changeset
   321
            _ldtFile.LoaderFinished += new EventHandler<EventArgs>(_ldtFile_LoaderFinished);
b6df6fce6e5d Sync init XML download.
totetm <>
parents: 35
diff changeset
   322
            _iriFile.LoaderFinished += new EventHandler<EventArgs>(_iriFile_LoaderFinished);
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   323
        }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   324
36
b6df6fce6e5d Sync init XML download.
totetm <>
parents: 35
diff changeset
   325
        void _iriFile_LoaderFinished(object sender, EventArgs e)
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   326
        {
36
b6df6fce6e5d Sync init XML download.
totetm <>
parents: 35
diff changeset
   327
            _loadedIriFile = ((LoaderEventArgs<IRIFile>)e).CreatedObject;
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   328
            
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   329
            LoaderFinished(this,new LoaderEventArgs<VideoBook>(LDTFileReader.ConvertToVideoBook(_loadedLdtFile,_loadedIriFile)));
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   330
        }
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   331
36
b6df6fce6e5d Sync init XML download.
totetm <>
parents: 35
diff changeset
   332
        void _ldtFile_LoaderFinished(object sender, EventArgs e)
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   333
        {
36
b6df6fce6e5d Sync init XML download.
totetm <>
parents: 35
diff changeset
   334
            _loadedLdtFile = ((LoaderEventArgs<LDTFile>)e).CreatedObject;
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   335
            _loadedLdtFile.Path = _ldtFile.Path;
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   336
            _iriFile.Load(_loadedLdtFile.Medias[0].Src);
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   337
            
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   338
        }
38
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   339
        public void Load(String ldtPath)
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   340
        {
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   341
            _ldtFile.Load(ldtPath);
bd33267300aa - FranceCulture Project
totetm <>
parents: 36
diff changeset
   342
        }
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   343
        public event EventHandler<LoaderEventArgs<VideoBook>> LoaderFinished;
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   344
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   345
        
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   346
    }
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   347
35
43bb1b8ed555 IRIFiles Class
totetm <>
parents: 34
diff changeset
   348
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   349
    /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   350
    /// Comparateur pour Trier les livres
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   351
    /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   352
    public class VideoBookComparer : IComparer<VideoBook>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   353
    {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   354
        public int Compare(VideoBook x, VideoBook y)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   355
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   356
            return x.Title.CompareTo(y.Title);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   357
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   358
    }
30
644e3cd48034 Introduce in Web context
totetm <>
parents: 27
diff changeset
   359
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   360
}