client/src/Iri.Modernisation.Controls/ViewModel/NavigationBar/ConsultMenuVM.cs
author Matthieu Totet
Fri, 18 Dec 2009 16:45:30 +0100
changeset 25 a9c815025a1b
parent 0 249d70e7b32d
child 42 594fdedecf7f
permissions -rw-r--r--
Update ProductionView + Cleanning Code
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 SLExtensions.Input;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    12
using Iri.Modernisation.BaseMVVM.Commands;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    13
using Iri.Modernisation.BaseMVVM.ViewModel;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    14
using Iri.Modernisation.Data.Models;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    15
using System.Collections.Generic;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    16
using System.Linq;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    17
namespace Iri.Modernisation.Controls.ViewModel
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    18
{
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    19
    public class ConsultMenuVM : BaseMVVM.ViewModel.ViewModel
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    20
    {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    21
      private List<VideoBook> _videoBooks = new List<VideoBook>();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    22
      private List<VideoBook> list = new List<VideoBook>();
25
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    23
        /// <summary>
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    24
        /// VideoBooks Disponible
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    25
        /// </summary>
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    26
      public List<VideoBook> VideoBooks
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    27
      {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    28
          get 
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    29
          {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    30
              _videoBooks.Sort(new VideoBookComparer());
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    31
              if (SearchWord != String.Empty)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    32
              {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    33
                  return list;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    34
              }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    35
              else
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    36
              {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    37
                  return _videoBooks;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    38
              }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    39
          
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    40
          }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    41
          set
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    42
          {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    43
              list = value;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    44
              OnPropertyChanged("VideoBooks");
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    45
          }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    46
      }
25
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    47
      private bool _searchAuthor;
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    48
        /// <summary>
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    49
        /// Recherche par Auteur activée
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    50
        /// </summary>
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    51
      public bool SearchAuthor
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    52
      {
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    53
          get
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    54
          {
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    55
              return _searchAuthor;
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    56
          }
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    57
          set
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    58
          {
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    59
              _searchAuthor = value;
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    60
              OnPropertyChanged("SearchAuthor");
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    61
          }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    62
25
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    63
      }
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    64
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    65
      private bool _searchContributer;
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    66
        /// <summary>
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    67
        /// Recherche par Contributeur activée
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    68
        /// </summary>
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    69
      public bool SearchContributer
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    70
      {
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    71
          get
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    72
          {
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    73
              return _searchContributer;
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    74
          }
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    75
          set
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    76
          {
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    77
              _searchContributer = value;
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    78
              OnPropertyChanged("SearchContributer");
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    79
          }
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    80
      }
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    81
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    82
      private bool _searchTag;
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    83
        /// <summary>
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    84
        /// Recherche par Tag
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    85
        /// </summary>
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    86
      public bool SearchTag
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    87
      {
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    88
          get
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    89
          {
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    90
              return _searchTag;
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    91
          }
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    92
          set
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    93
          {
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    94
              _searchTag = value;
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    95
              OnPropertyChanged("SearchTag");
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    96
          }
a9c815025a1b Update ProductionView + Cleanning Code
Matthieu Totet
parents: 0
diff changeset
    97
      }
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    98
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    99
      private String _searchWord= "";
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   100
      public String SearchWord 
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   101
      { 
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   102
          get
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   103
          {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   104
              return _searchWord;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   105
          }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   106
          
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   107
          set 
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   108
          {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   109
              _searchWord = value;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   110
              OnPropertyChanged("SearchWord");
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   111
          } 
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   112
      }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   113
     
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   114
        public ConsultMenuVM()
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   115
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   116
            SearchAuthor = true;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   117
          InitializeCommands();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   118
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   119
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   120
        private void InitializeCommands()
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   121
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   122
           Commands.ConsultMenu.GetBook.Executed += new EventHandler<ExecutedEventArgs>(GetBook_Executed);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   123
         }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   124
        public ConsultMenuVM(List<VideoBook> argList)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   125
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   126
            _videoBooks = argList;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   127
            SearchAuthor = true;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   128
            InitializeCommands();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   129
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   130
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   131
        
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   132
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   133
        void GetBook_Executed(object sender, ExecutedEventArgs e)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   134
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   135
           
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   136
           if (SearchAuthor)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   137
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   138
                var query = from c in _videoBooks
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   139
                            where c.Author.UserName.Contains(_searchWord)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   140
                            select c;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   141
                VideoBooks = query.ToList();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   142
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   143
            if (SearchContributer)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   144
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   145
                List<VideoBook> temp = new List<VideoBook>();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   146
                foreach (VideoBook Book in _videoBooks)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   147
                {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   148
                    foreach (VideoChapter Chapter in Book.Chapters)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   149
                    {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   150
                        foreach (Annotation Annotation in Chapter.Annotations)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   151
                        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   152
                            if ( Annotation.Contributer.UserName.Contains(_searchWord))
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   153
                            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   154
                                temp.Add(Book);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   155
                            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   156
                        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   157
                    }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   158
                }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   159
                VideoBooks = temp;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   160
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   161
            if(SearchTag)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   162
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   163
                List<VideoBook> temp = new List<VideoBook>();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   164
                foreach (VideoBook Book in _videoBooks)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   165
                {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   166
                    foreach (VideoChapter Chapter in Book.Chapters)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   167
                    {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   168
                        foreach (Annotation Annotation in Chapter.Annotations)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   169
                        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   170
                            if (Annotation.Tags.Contains(_searchWord))
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   171
                            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   172
                                temp.Add(Book);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   173
                            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   174
                        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   175
                        foreach (SegmentIndex Segment in Chapter.Index)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   176
                        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   177
                            if (Segment.Tags.Contains(_searchWord))
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   178
                            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   179
                                temp.Add(Book);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   180
                            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   181
                        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   182
                    }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   183
                }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   184
                VideoBooks = temp;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   185
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   186
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   187
       
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   188
    }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   189
}