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; }
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); } }
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)); } } } }
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; } }
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; } }
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; } }
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; } }
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; } }
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; } }