/// <summary>
        /// Constructeur pour l'objet Application.
        /// </summary>
        public App()
        {
            // Gestionnaire global pour les exceptions non interceptées. 
            UnhandledException += Application_UnhandledException;

            // Initialisation Silverlight standard
            InitializeComponent();

            // Initialisation spécifique au téléphone
            InitializePhoneApplication();

            // Affichez des informations de profilage graphique lors du débogage.
            if (System.Diagnostics.Debugger.IsAttached)
            {
                // Affichez les compteurs de fréquence des trames actuels.
                //Application.Current.Host.Settings.EnableFrameRateCounter = true;

                // Affichez les zones de l'application qui sont redessinées dans chaque frame.
                //Application.Current.Host.Settings.EnableRedrawRegions = true;

                // Activez le mode de visualisation d'analyse hors production, 
                // qui montre les zones d'une page sur lesquelles une accélération GPU est produite avec une superposition colorée.
                //Application.Current.Host.Settings.EnableCacheVisualization = true;

                // Désactivez la détection d'inactivité de l'application en définissant la propriété UserIdleDetectionMode de l'objet
                // PhoneApplicationService de l'application sur Désactivé.
                // Attention :- À utiliser uniquement en mode de débogage. Les applications qui désactivent la détection d'inactivité de l'utilisateur continueront de s'exécuter
                // et seront alimentées par la batterie lorsque l'utilisateur ne se sert pas du téléphone.
                PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
            }

            string DBConnectionString = "Data Source=isostore:/Claroline.sdf";

            // Create database if not exists
            using (ClarolineDataContext db = new ClarolineDataContext(DBConnectionString))
            {
#if(DEBUG)
                //db.DeleteDatabase();
#endif
                if (!db.DatabaseExists())
                {
                    try
                    {
                        db.CreateDatabase();
                    }
                    catch (Exception)
                    {
                        db.DeleteDatabase();
                        throw;
                    }
                }
            }
        }
        public async Task<Cours> PrepareCoursForOpeningAsync(Cours coursToPrepare)
        {
            bool r = await GetResourcesListForThisCoursAsync(coursToPrepare);

            if (r)
            {
                foreach (ResourceList rl in (from ResourceList l
                                             in ClarolineDB.ResourceList_Table
                                             where l.Cours.Equals(coursToPrepare)
                                             select l))
                {
                    if (Enum.IsDefined(typeof(SupportedModules), rl.GetSupportedModule()))
                    {
                        await GetResourcesForThisListAsync(rl);
                    }
                }
                ClearResOfCours(coursToPrepare);

                using (ClarolineDataContext cdc = new ClarolineDataContext(ClarolineDataContext.DBConnectionString))
                {
                    coursToPrepare = (from Cours c in cdc.Cours_Table where c.Equals(coursToPrepare) select c).Single();
                    coursToPrepare.loaded = DateTime.Now;
                    int count = coursToPrepare.Resources.Count;
                    cdc.SubmitChanges();
                }
            }
            return coursToPrepare;
        }
 public void ClearResOfCours(Cours coursToClear)
 {
     using (ClarolineDataContext cdc = new ClarolineDataContext(ClarolineDataContext.DBConnectionString))
     {
         (from ResourceModel rm
              in cdc.Resources_Table
          where rm.ResourceList.Cours.Equals(coursToClear)
          select rm).ToList()
              .ForEach(rm =>
              {
                  if (rm.updated)
                  {
                      rm.updated = false;
                  }
                  else
                  {
                      DeleteResource(rm);
                  }
              });
         cdc.SubmitChanges();
     }
 }
 public void ClearCoursList()
 {
     using (ClarolineDataContext cdc = new ClarolineDataContext(ClarolineDataContext.DBConnectionString))
     {
         (from Cours c
          in cdc.Cours_Table
          select c).ToList()
          .ForEach(c =>
          {
              if (c.updated)
              {
                  c.updated = false;
              }
              else
              {
                  DeleteCours(c);
              }
          });
         cdc.SubmitChanges();
     }
 }
        public virtual void AddNotification(Notification newNot, ResourceModel attachedResource)
        {
            using (ClarolineDataContext cdc = new ClarolineDataContext(ClarolineDataContext.DBConnectionString))
            {

                Notification lastNotificationFromDB = cdc.Notifications_Table.OrderByDescending(n => n.date)
                                                                                     .FirstOrDefault(n => n.resource == newNot.resource);

                if (lastNotificationFromDB != null)
                {
                    if (lastNotificationFromDB.date.CompareTo(newNot.date) >= 0)
                    {
                        return;
                    }
                }

                newNot.resource = cdc.Resources_Table.Single(r => r.Id == attachedResource.Id);
                cdc.Notifications_Table.InsertOnSubmit(newNot);
                cdc.SubmitChanges();
            }
        }
 public TopicPageVM(ISettings settings, int topicId, int forumUId)
     : base(settings)
 {
     if (!DesignerProperties.IsInDesignTool)
     {
         using (ClarolineDataContext cdc = new ClarolineDataContext(ClarolineDataContext.DBConnectionString))
         {
             currentTopic = (from Topic t in cdc.Topics_Table
                             where t.resourceId == topicId && t.Forum.UniqueIdentifier == forumUId
                             select t).Single();
             var p = posts;
         }
     }
 }
        // Class constructor, create the data context object.

        public Obsolete_ClarolineViewModel(string DBConnectionString)
        {
            ClarolineDB = new ClarolineDataContext(DBConnectionString);
        }