Ejemplo n.º 1
0
 private void OniFolderFileSyncEvent(object o, FileSyncEventArgs args)
 {
     if (args == null || args.CollectionID == null || args.Name == null)
     return;
        if (args.SizeRemaining == args.SizeToSync)
        {
     if (startingSync || (objectsToSync <= 0))
     {
      startingSync = false;
      try
      {
       SyncSize syncSize = ifws.CalculateSyncSize(args.CollectionID);
       objectsToSync = syncSize.SyncNodeCount;
      }
      catch(Exception e)
      {
       objectsToSync = 1;
      }
     }
     if (!args.Direction.Equals(Simias.Client.Event.Direction.Local))
     {
      if (objectsToSync <= 0)
       objectsToSync = 0;
      else
       objectsToSync--;
      TreeIter iter = TreeIter.Zero;
      iFolderHolder ifHolder = null;
      if (ifolderIters.ContainsKey(args.CollectionID))
      {
       iter = (TreeIter)ifolderIters[args.CollectionID];
       ifHolder = (iFolderHolder)iFolderListStore.GetValue(iter, 0);
      }
      if (ifHolder != null)
      {
       if (ifHolder.State != iFolderState.Synchronizing)
        ifHolder.State = iFolderState.Synchronizing;
       ifHolder.ObjectsToSync = objectsToSync;
       TreePath path = iFolderListStore.GetPath(iter);
       if (path != null)
       {
        iFolderChangedHandler changedHandler =
       new iFolderChangedHandler(path, iter, iFolderListStore);
        GLib.Idle.Add(changedHandler.IdleHandler);
       }
      }
     }
        }
        if (args.Status != SyncStatus.Success)
     bFileSyncFailed = true;
 }
Ejemplo n.º 2
0
 private void OniFolderSyncEvent(object o, CollectionSyncEventArgs args)
 {
     if (args == null || args.ID == null || args.Name == null)
     return;
        TreeIter iter = TreeIter.Zero;
        iFolderHolder ifHolder = null;
        if (ifolderIters.ContainsKey(args.ID))
        {
     iter = (TreeIter)ifolderIters[args.ID];
     ifHolder = (iFolderHolder)iFolderListStore.GetValue(iter, 0);
        }
        if (ifHolder == null) return;
        switch(args.Action)
        {
     case Simias.Client.Event.Action.StartLocalSync:
      ifHolder.State = iFolderState.SynchronizingLocal;
      break;
     case Simias.Client.Event.Action.StartSync:
      startingSync = true;
      bFileSyncFailed = false;
      ifHolder.State = iFolderState.Synchronizing;
      break;
     case Simias.Client.Event.Action.StopSync:
      try
      {
       ReadiFolder(args.ID);
       SyncSize syncSize = ifws.CalculateSyncSize(args.ID);
       objectsToSync = syncSize.SyncNodeCount;
       ifHolder.ObjectsToSync = objectsToSync;
      }
      catch
      {}
      if (ifHolder.ObjectsToSync > 0)
      {
       if (bFileSyncFailed)
        ifHolder.State = iFolderState.FailedSync;
       else
        ifHolder.State = iFolderState.Normal;
      }
      else
      {
       if (args.Connected || ifHolder.iFolder.Role == "Master")
        ifHolder.State = iFolderState.Normal;
       else
        ifHolder.State = iFolderState.Disconnected;
      }
      objectsToSync = 0;
      break;
     default:
      break;
        }
        TreePath path = iFolderListStore.GetPath(iter);
        if (path != null)
        {
      iFolderChangedHandler changedHandler =
        new iFolderChangedHandler( path, iter, iFolderListStore);
      GLib.Idle.Add(changedHandler.IdleHandler);
        }
 }
Ejemplo n.º 3
0
 public void Refresh()
 {
     lock (instanceLock)
        {
     ClearOrphanediFolders();
     iFolderWeb[] ifolders;
     try
     {
      ifolders = ifws.GetAlliFolders();
     }
     catch(Exception e)
     {
      ifolders = null;
     }
     if(ifolders != null && ifolders.Length >0)
     {
      Hashtable ifolderItersClone = null;
      try
      {
       ifolderItersClone = (Hashtable) ifolderIters.Clone();
      }
      catch(Exception ex)
      {
       Debug.PrintLine(string.Format("Exception while cloning hashtable. {0}", ex.Message));
      }
      foreach (iFolderWeb ifolder in ifolders)
      {
       string ifolderID =
        ifolder.IsSubscription ?
     ifolder.CollectionID :
     ifolder.ID;
       if (ifolderIters.ContainsKey(ifolderID))
       {
        TreeIter iter = (TreeIter)ifolderIters[ifolderID];
        iFolderHolder existingHolder = null;
        try
        {
     existingHolder = (iFolderHolder)
      iFolderListStore.GetValue(iter, 0);
        }
        catch(Exception e)
        {
     Debug.PrintLine(e.Message);
        }
        if ((existingHolder != null) && (existingHolder.iFolder.OwnerID != ifolder.OwnerID))
        {
     existingHolder.iFolder = ifolder;
     TreePath path = iFolderListStore.GetPath(iter);
     if (path != null)
     {
      iFolderChangedHandler changedHandler =
     new iFolderChangedHandler( path, iter, iFolderListStore);
                                 GLib.Idle.Add(changedHandler.IdleHandler);
                             }
        }
        try
        {
     if( ifolderItersClone.ContainsKey(ifolderID))
      ifolderItersClone.Remove( ifolderID);
        }
        catch(Exception ex)
        {
     Debug.PrintLine(string.Format("Exception while removing from ht. {0}", ex.Message));
        }
       }
       else
       {
        AddiFolder(ifolder);
       }
      }
      try
      {
       foreach(string key in ifolderItersClone.Keys)
       {
        try
        {
     Debug.PrintLine(string.Format("Removing entry: {0}", key));
     try
     {
      if( ifws.CheckiFolder( key ) == false)
       throw new Exception( "Invalid iFolderID");
     }
     catch(Exception ex)
     {
      DeliFolder(key);
     }
        }
        catch(Exception ex)
        {
     Debug.PrintLine(string.Format("exception in real delete. {0}", ex.Message));
        }
       }
      }
      catch(Exception ex)
      {
       Debug.PrintLine(string.Format("Exception in removing. Outer for only. {0}", ex.Message));
      }
     }
        }
 }
Ejemplo n.º 4
0
 private iFolderHolder AddiFolder(iFolderWeb ifolder)
 {
     lock (instanceLock)
        {
     iFolderHolder ifHolder = null;
     string ifolderID =
      ifolder.IsSubscription ?
       ifolder.CollectionID :
       ifolder.ID;
     if (ifolderIters.ContainsKey(ifolderID))
     {
      TreeIter iter = (TreeIter)ifolderIters[ifolderID];
      ifHolder = (iFolderHolder)
       iFolderListStore.GetValue(iter, 0);
      if (ifHolder != null)
      {
       ifHolder.iFolder = ifolder;
       TreePath path = iFolderListStore.GetPath(iter);
       if (path != null)
       {
        iFolderChangedHandler changedHandler =
     new iFolderChangedHandler(
      path, iter, iFolderListStore);
        GLib.Idle.Add(changedHandler.IdleHandler);
       }
      }
     }
     else
     {
      ifHolder = new iFolderHolder(ifolder);
      ifHolder.State = iFolderState.Initial;
      iFolderAddHandler addHandler =
       new iFolderAddHandler(ifHolder, this);
      GLib.Idle.Add(addHandler.IdleHandler);
     }
     return ifHolder;
        }
 }
Ejemplo n.º 5
0
 public iFolderHolder ReadiFolder(string ifolderID)
 {
     lock(instanceLock)
        {
     iFolderHolder ifHolder = null;
     if (ifolderIters.ContainsKey(ifolderID))
     {
      TreeIter iter = (TreeIter)ifolderIters[ifolderID];
      ifHolder = (iFolderHolder)
       iFolderListStore.GetValue(iter, 0);
     }
     try
     {
      iFolderWeb ifolder =
       ifws.GetiFolder(ifolderID);
      if (ifolder != null)
      {
       if (ifHolder != null)
       {
        ifHolder.iFolder = ifolder;
        if (ifolderIters.ContainsKey(ifolder.ID))
        {
     TreeIter iter = (TreeIter)
      ifolderIters[ifolder.ID];
     TreePath path = iFolderListStore.GetPath(iter);
     if (path != null)
     {
      iFolderChangedHandler changedHandler =
       new iFolderChangedHandler(
        path, iter, iFolderListStore);
      GLib.Idle.Add(changedHandler.IdleHandler);
     }
        }
       }
       else
       {
        ifHolder = AddiFolder(ifolder);
       }
      }
     }
     catch(Exception e)
     {
      ifHolder = null;
     }
     return ifHolder;
        }
 }
Ejemplo n.º 6
0
 public iFolderHolder ReadAvailableiFolder( string ifolderID,
      string collectionID)
 {
     lock(instanceLock)
        {
     iFolderHolder ifHolder = GetAvailableiFolder(ifolderID);
     try
     {
      iFolderWeb ifolder = ifws.GetiFolderInvitation(
     collectionID, ifolderID);
      if (ifolder == null || !ifolder.State.Equals("Available"))
       return null;
      if(ifHolder != null)
      {
       if(!IsiFolder(ifolder.CollectionID))
       {
        ifHolder.iFolder = ifolder;
        if (ifolderIters.ContainsKey(ifolder.CollectionID))
        {
     TreeIter iter = (TreeIter)
      ifolderIters[ifolder.CollectionID];
     TreePath path = iFolderListStore.GetPath(iter);
     if (path != null)
     {
      iFolderChangedHandler changedHandler =
       new iFolderChangedHandler(
        path, iter, iFolderListStore);
      GLib.Idle.Add(changedHandler.IdleHandler);
     }
        }
       }
      }
      else
      {
       if (!deletediFolders.Contains(ifolder.CollectionID)
        && !IsiFolder(ifolder.CollectionID))
       {
     ifHolder = AddiFolder(ifolder);
       }
      }
     }
     catch(Exception e)
     {
      ifHolder = null;
     }
     return ifHolder;
        }
 }
Ejemplo n.º 7
0
 private iFolderHolder AddiFolder(iFolderWeb ifolder)
 {
     Console.WriteLine("AddiFolder()");
     Console.WriteLine(Environment.StackTrace);
        lock (instanceLock)
        {
     iFolderHolder ifHolder = null;
     if (ifolder.CollectionID == null)
     {
      Console.WriteLine("**** CollectionID is null ****");
     }
     else if (ifolder.ID == null)
     {
      Console.WriteLine("**** ID is null ****");
     }
     Console.WriteLine("\t1");
     string ifolderID =
      ifolder.IsSubscription ?
       ifolder.CollectionID :
       ifolder.ID;
     Console.WriteLine("\t{0}", ifolderID);
     if (ifolderIters.ContainsKey(ifolderID))
     {
     Console.WriteLine("\t3");
      TreeIter iter = (TreeIter)ifolderIters[ifolderID];
     Console.WriteLine("\t4");
      ifHolder = (iFolderHolder)
       iFolderListStore.GetValue(iter, 0);
     Console.WriteLine("\t5");
      if (ifHolder != null)
      {
     Console.WriteLine("\t6");
       ifHolder.iFolder = ifolder;
       TreePath path = iFolderListStore.GetPath(iter);
     Console.WriteLine("\t7");
       if (path != null)
       {
     Console.WriteLine("\t8");
        iFolderChangedHandler changedHandler =
     new iFolderChangedHandler(
      path, iter, iFolderListStore);
     Console.WriteLine("\t9");
        GLib.Idle.Add(changedHandler.IdleHandler);
       }
      }
      else
      {
     Console.WriteLine("*** SOMETHING WENT BAD IN iFolderData.AddiFolder() ***");
      }
     }
     else
     {
     Console.WriteLine("\t10");
      ifHolder = new iFolderHolder(ifolder);
     Console.WriteLine("\t11");
      iFolderAddHandler addHandler =
       new iFolderAddHandler(ifHolder, this);
     Console.WriteLine("\t12");
      GLib.Idle.Add(addHandler.IdleHandler);
     }
     Console.WriteLine("\t13");
     return ifHolder;
        }
 }
Ejemplo n.º 8
0
 public iFolderHolder ReadiFolder(string ifolderID)
 {
     Console.WriteLine("iFolderData.ReadiFolder()");
     Console.WriteLine(Environment.StackTrace);
        lock(instanceLock)
        {
     iFolderHolder ifHolder = null;
     if (ifolderIters.ContainsKey(ifolderID))
     {
      TreeIter iter = (TreeIter)ifolderIters[ifolderID];
      ifHolder = (iFolderHolder)
       iFolderListStore.GetValue(iter, 0);
     }
     try
     {
      iFolderWeb ifolder =
       ifws.GetiFolder(ifolderID);
      if (ifolder != null)
      {
       if (ifHolder != null)
       {
        ifHolder.iFolder = ifolder;
        if (ifolderIters.ContainsKey(ifolder.ID))
        {
     TreeIter iter = (TreeIter)
      ifolderIters[ifolder.ID];
     TreePath path = iFolderListStore.GetPath(iter);
     if (path != null)
     {
      iFolderChangedHandler changedHandler =
       new iFolderChangedHandler(
        path, iter, iFolderListStore);
      GLib.Idle.Add(changedHandler.IdleHandler);
     }
     else
     {
     Console.WriteLine("*** SOMETHING WENT BAD IN iFolderData.ReadiFolder() ***");
     }
        }
       }
       else
       {
        ifHolder = AddiFolder(ifolder);
       }
      }
     }
     catch(Exception e)
     {
      ifHolder = null;
     }
     return ifHolder;
        }
 }
Ejemplo n.º 9
0
 public iFolderHolder ReadAvailableiFolder( string ifolderID,
      string collectionID)
 {
     Console.WriteLine("iFolderData.ReadAvailableiFolder()");
     Console.WriteLine(Environment.StackTrace);
        lock(instanceLock)
        {
     iFolderHolder ifHolder = GetAvailableiFolder(ifolderID);
     try
     {
      iFolderWeb ifolder = ifws.GetiFolderInvitation(
     collectionID, ifolderID);
      if (ifolder == null || !ifolder.State.Equals("Available"))
       return null;
      if(ifHolder != null)
      {
       if(!IsiFolder(ifolder.CollectionID))
       {
        ifHolder.iFolder = ifolder;
        if (ifolderIters.ContainsKey(ifolder.CollectionID))
        {
     TreeIter iter = (TreeIter)
      ifolderIters[ifolder.CollectionID];
     TreePath path = iFolderListStore.GetPath(iter);
     if (path != null)
     {
      iFolderChangedHandler changedHandler =
       new iFolderChangedHandler(
        path, iter, iFolderListStore);
      GLib.Idle.Add(changedHandler.IdleHandler);
     }
     else
     {
     Console.WriteLine("*** SOMETHING WENT BAD IN iFolderData.ReadAvailableiFolder() ***");
     }
        }
       }
      }
      else
      {
     if (deletediFolders.Contains(ifolder.CollectionID))
     {
     Console.WriteLine(" ---> This iFolder is in the deletediFolders Hashtable <--- ");
     }
       if (!deletediFolders.Contains(ifolder.CollectionID)
        && !IsiFolder(ifolder.CollectionID))
       {
     ifHolder = AddiFolder(ifolder);
       }
      }
     }
     catch(Exception e)
     {
      ifHolder = null;
     }
     return ifHolder;
        }
 }