Example #1
0
        public CompetitionsApiSyncTarget(CompetitionsApiClient client, string licenseIssuerId = null, bool requireProviderKey = false)
        {
            this.client = client;

            log    = LogManager.GetLogger(GetType());
            source = new CompetitionsApiSyncSource(client, licenseIssuerId, requireProviderKey);
        }
Example #2
0
        private void CountFileTypes(ISyncSource source)
        {
            List <ISyncable> list = new List <ISyncable>(source.AllItems.Values);

            foreach (ISyncable syncable in list)
            {
                int? nullable2 = syncable.Properties.NullableIntForKey("Size");
                long?nullable  = nullable2.HasValue ? new long?((long)nullable2.GetValueOrDefault()) : null;
                if (syncable.Properties.BooleanForKey("Picture", false))
                {
                    this.photoCount++;
                    if (nullable.HasValue)
                    {
                        this.photoSize += (double)nullable.Value;
                    }
                }
                else
                {
                    if (syncable.Properties.BooleanForKey("Has Video", false))
                    {
                        this.videoCount++;
                        if (nullable.HasValue)
                        {
                            this.videoSize += (double)nullable.Value;
                        }
                        continue;
                    }
                    this.musicCount++;
                    if (nullable.HasValue)
                    {
                        this.musicSize += (double)nullable.Value;
                    }
                }
            }
        }
Example #3
0
        public ClubsApiSyncTarget(ClubsApiClient client)
        {
            this.client = client;

            log    = LogManager.GetLogger(GetType());
            source = new ClubsApiSyncSource(client);
        }
Example #4
0
        public Task SyncAsync(ISyncSource syncSource)
        {
            if (syncSource is null)
            {
                throw new ArgumentNullException(nameof(syncSource));
            }

            return(Task.Run(async() =>
            {
                List <RssItem> added = new();

                using (var scope = this._serviceProvider.CreateScope())
                {
                    var ctx = scope.ServiceProvider.GetRequiredService <LocalDbContext>();
                    var syncInfo = ctx.SyncSourceInfos
                                   .FirstOrDefault(z => z.SyncSourceId == syncSource.SyncSourceId);
                    added.AddRange(await SyncCoreAsync(ctx, syncSource, syncInfo, CancellationToken.None).ConfigureAwait(false));
                    ctx.SaveChanges();
                }

                this._serviceProvider.EmitEvent(EventNames.AddedRssItems, this, added);
            }));
        }
Example #5
0
        private static async Task <List <RssItem> > SyncCoreAsync(LocalDbContext ctx, ISyncSource syncSource, SyncSourceInfo syncInfo,
                                                                  CancellationToken cancellationToken)
        {
            if (syncInfo is null)
            {
                syncInfo = new SyncSourceInfo {
                    SyncSourceId = syncSource.SyncSourceId
                };
                ctx.Add(syncInfo);
            }

            var page = await syncSource.TryGetItemsAsync(syncInfo.LastSyncId, cancellationToken)
                       .ConfigureAwait(false);

            if (page.LastId is int lastId)
            {
                syncInfo.LastSyncId = lastId;
            }

            var newItems = page.GetItems().Select(z =>
            {
                var r = new RssItem();
                r.UpdateFrom(z);
                return(r);
            }).ToList();

            return(ctx.AddOrIgnoreRange(newItems));
        }
Example #6
0
		public bool CheckCredentials(ISyncSource source)
		{
			if (source.NeedAuthorization && source.Credentials == null)
			{

				ISyncSourceProfile logon = null;
				if (IsXP)
					logon = new LogonWindowXP();
				else
					logon = new LogonWindow();

				logon.ProviderName = source.DisplayName;

				Bitmap providerImage = source.Image;
				BitmapSource imageSource = null;

				if (providerImage != null)
				{
					IntPtr HBitmap = providerImage.GetHbitmap();
					imageSource = Imaging.CreateBitmapSourceFromHBitmap(HBitmap, IntPtr.Zero,
						Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
					providerImage.Dispose();
					logon.ImageSource = imageSource;
				}

				(logon as Window).ShowDialog();

				bool? b = (logon as Window).DialogResult;
				if (b == null || b == false)
				{
					return false;
				}

				if (logon.RememberSettings)
				{
					source.ClearCredentials = false;
				}
				else
					source.ClearCredentials = true;
				source.Credentials = new NetworkCredential(logon.Login, logon.Password);
				if (logon.HumanNotation)
				{
					source.Notation = NameNotation.Human;
				}
				else
				{
					source.Notation = NameNotation.Formal;
				}
				return true;
			}
			else
				return true;
		}
Example #7
0
		public DateTime LastSyncTime(ISyncSource source, string FullName)
		{
			string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
			string appDataSynrcContacts = appData + "/Synrc/Contact Manager/" + source.Name;

			if (File.Exists(appDataSynrcContacts + "/" + FullName + ".contact"))
			{
				Contact contact = new Contact(appDataSynrcContacts + "/" + FullName + ".contact");
				if (contact != null && contact.Dates["LastSync"] != null)
				{
					return contact.Dates["LastSync"].Value;
				} 

			}
			
			return DateTime.MinValue;
		}
Example #8
0
		public void SaveTask(ISyncSource source, bool updateFutureManList, DateTime lastSyncTime)
		{
			if (SyncCanceled) return;

			string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
			string appDataSynrcContacts = appData + "/Synrc/Contact Manager/" + source.Name;

			if (Directory.Exists(appDataSynrcContacts))
				Directory.Delete(appDataSynrcContacts, true);

			DirectoryInfo dirinfo = Directory.CreateDirectory(appDataSynrcContacts);

			//Dispatcher.BeginInvoke(new VoidDelegate(owner.ClearProgressBar));
			//Dispatcher.BeginInvoke(new VoidInt(owner.SetBarLimits), source.Contacts.Count);

			CurrentTotal = source.Contacts.Count;
			CurrentItemNum = 0;

			foreach (Contact contact in source.Contacts.Values)
			{
				//if (owner != null)
				//	Dispatcher.BeginInvoke(new VoidString(owner.IncBarPosition), "Saving " + source.Name);

				if (owner != null)
				{
					Dispatcher.Invoke(new SyncProgressEventHandler(owner.Progress), source,
							"Saving " + source.Name + " (" + CurrentItemNum + "/" + CurrentTotal + ")",
							CurrentItemNum, CurrentTotal);
					CurrentItemNum++;
				}

				if (contact.Dates["LastSync"] != null)
					contact.Dates["LastSync"] = lastSyncTime;
				else
					contact.Dates.Add(lastSyncTime, "LastSync");

				//ClearReplicatedTo(contact, source.Name);
				contact.Save(appDataSynrcContacts + "/" + contact.FullName + ".contact");

				if (updateFutureManList)
					futureManList.Add(new Man { FullName = contact.FullName, Phone = contact.Phone, EMail = contact.EMail });

			}
		}
		private void SyncGMAIL(object sender, RoutedEventArgs e)
		{
			//ISyncSource currentProvider = null;
			if (currentProvider == null)
				currentProvider = gmail;
			if (syncEngine != null)
			{
				syncEngine.Sync(gmail, currentProvider);
			}
		}
		private void SyncGMAIL(object sender, RoutedEventArgs e) {
			if (currentProvider == null)
				currentProvider = gmail;
			syncEngine.Sync(gmail, currentProvider);
		}
		private void SyncLiveContacts(object sender, RoutedEventArgs e) {
			if (currentProvider == null)
				currentProvider = live;
			syncEngine.Sync(live, currentProvider);
		}
		private void SyncWindowsContacts(object sender, RoutedEventArgs e) {
			if (currentProvider == null)
				currentProvider = vista;
			syncEngine.Sync(vista, currentProvider);
		}
		// CORE LOGIC

        private void SyncOutlookPIM(object sender, RoutedEventArgs e) {
			if (currentProvider == null)
				currentProvider = outlook;
			syncEngine.Sync(outlook, currentProvider);
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
			syncEngine = new SyncEngine(this, false);

			this.lastSyncMessage.Content = "Choose your current provider.";
			this.lastSyncMessage.Visibility = Visibility.Visible;

			try
			{
				if (!IsNET35Installed())
					throw new System.Exception("Windows Live is unavailable. Install .NET 3.5 Framework.");

				Assembly a = LoadLocalAssembly(
					System.IO.Path.GetDirectoryName(
						Assembly.GetExecutingAssembly().Location) 
					+ "\\Synrc.WindowsLive.dll");
				
				Type t = a.GetType("Synrc.LiveContactsProvider");
				live = Activator.CreateInstance(t, new object[] { this, syncEngine }) as ISyncSource;

				//live = new LiveContactsProvider(this, syncEngine);
			}
			catch (Exception excp)
			{
				syncButton.DropDown.Items.Remove(GetSyncMenuItemByName("WindowsLive"));

				this.lastSyncMessage.Content = excp.Message;
				this.lastSyncMessage.Visibility = Visibility.Visible;
			}

			try
			{
				if (!IsOutlookInstalled())
				throw new System.Exception("Outlook not installed.");

				//Assembly a = LoadLocalAssembly("Synrc.Outlook.dll");
				//Type t = a.GetType("Synrc.OutlookContactsProvider");
				//outlook = Activator.CreateInstance(t, new object[] { this, syncEngine}) as ISyncSource;

				outlook = new OutlookContactsProvider(this, syncEngine);
			}
			catch
			{
				syncButton.DropDown.Items.Remove(GetSyncMenuItemByName("Outlook"));
			}

			vista = new WindowsContactsProvider(this, syncEngine);
			gmail = new GmailContactsProvider(this, syncEngine);
			

			if (IsNokiaInstalled())
			{
				nokia = new NokiaContactsProvider(this, syncEngine);
				nokiaDiscoverer = new NokiaDiscoverer(this, nokia as NokiaContactsProvider);
				this.syncButton.DropDown.Opened += new RoutedEventHandler(DropDown_Opened);
				nokiaDiscoverer.DiscoveryTask();
			}
			
			currentProvider = null;

			//searchContext = syncEngine.Sync(currentProvider, currentProvider);

			DataContext = searchContext;
        }
Example #15
0
		private void SyncWindowsContacts(object sender, RoutedEventArgs e)
		{
			//ISyncSource currentProvider = null;
			if (currentProvider == null)
				currentProvider = vista;
			if (syncEngine != null)
				syncEngine.Sync(vista, currentProvider);
		}
Example #16
0
		private void SyncLiveContacts(object sender, RoutedEventArgs e)
		{
			//ISyncSource currentProvider = null;
			if (currentProvider == null)
				currentProvider = live;
			if (syncEngine != null) 
				syncEngine.Sync(live, currentProvider);
		}
		public  void SyncNokia(object sender, RoutedEventArgs e) {
			if (currentProvider == null)
				currentProvider = nokia;
			syncEngine.Sync(nokia, currentProvider);
		}
Example #18
0
		public void SyncNokia(object sender, RoutedEventArgs e)
		{
			//ISyncSource currentProvider = null;
			if (currentProvider == null)
				currentProvider = nokia;
			if (syncEngine != null) 
				syncEngine.Sync(nokia, currentProvider);
		}
Example #19
0
        public static void Update(string ObjectName, ISyncSource SourceUtils, ISyncStore StoreUtils)
        {
            SyncObject sourceObject = new SyncObject();

            if (!SourceUtils.GetObject(ObjectName, sourceObject))
            {
                throw new NullReferenceException("目标数据源无此对象:" + ObjectName);
            }
            SyncObject storeObject = new SyncObject();

            if (!StoreUtils.GetObject(ObjectName, storeObject))
            {
                storeObject.ObjectName    = ObjectName;
                storeObject.ObjectVersion = "";
            }

            if (sourceObject.ObjectVersion == storeObject.ObjectVersion)
            {
                //比对版本,一致则退出
                return;
            }
            //加载本地数据信息
            List <SyncDataOP> storeDataList = new List <SyncDataOP>();

            StoreUtils.GetObjectDatas(ObjectName, storeDataList);

            List <SyncData> sourceDataList = new List <SyncData>();

            SourceUtils.GetDataList(ObjectName, sourceDataList);

            //遍历数据源索引
            foreach (var item in sourceDataList)
            {
                //本地仓储无数据则条件索引
                if (!storeDataList.Exists((SyncDataOP s) => s.Key == item.Key))
                {
                    SyncDataOP dop = new SyncDataOP();
                    dop.Key     = item.Key;
                    dop.Json    = item.Json;
                    dop.Version = item.Version;
                    dop.OP      = 1;
                    storeDataList.Add(dop);
                }
                else
                {
                    //已有不同则更新
                    if (storeDataList.Find((SyncDataOP s) => s.Key == item.Key).Version != item.Version)
                    {
                        storeDataList.Find((SyncDataOP s) => s.Key == item.Key).Version = item.Version;
                        storeDataList.Find((SyncDataOP s) => s.Key == item.Key).Json    = item.Json;
                        storeDataList.Find((SyncDataOP s) => s.Key == item.Key).OP      = 2;
                    }
                }
            }
            //判断本地仓储是否有删除的
            foreach (var item in storeDataList)
            {
                if (!sourceDataList.Exists((SyncData s) => s.Key == item.Key))
                {
                    item.OP = 3;
                }
            }

            //保存本地存储索引信息
            foreach (var item in storeDataList)
            {
                SyncData d = new SyncData();
                d.Key     = item.Key;
                d.Json    = item.Json;
                d.Version = item.Version;
                if (item.OP == 0)
                {
                    continue;
                }
                if (item.OP == 1)
                {
                    StoreUtils.AddData(storeObject.ObjectName, d);
                }
                if (item.OP == 2)
                {
                    StoreUtils.UpdateData(storeObject.ObjectName, d);
                }
                if (item.OP == 3)
                {
                    StoreUtils.DeleteData(storeObject.ObjectName, d);
                }
                StoreUtils.AddUserIndex(storeObject, d, item.OP);
            }
            //保存本地对象版本信息
            if (storeObject.ObjectVersion == "")
            {
                storeObject.ObjectVersion = sourceObject.ObjectVersion;
                StoreUtils.AddObject(storeObject);
            }
            else
            {
                storeObject.ObjectVersion = sourceObject.ObjectVersion;
                StoreUtils.UpdateObject(storeObject);
            }
        }
Example #20
0
		public void MergeContacts(ISyncSource local, ISyncSource remote, string FullName, bool copylabels)
		{
			Contact localLastSyncContact = LastSyncContact(localSyncSource, FullName);
			Contact remoteLastSyncContact = LastSyncContact(remoteSyncSource, FullName);

			Contact m1 = Merge(remoteSyncSource.Contacts[FullName], localSyncSource.Contacts[FullName]);
			Contact m2 = Merge(remoteSyncSource.Contacts[FullName], localSyncSource.Contacts[FullName]);

			if (copylabels)
			{
				CopyReplicatedToLabelsFromTo(localLastSyncContact, m1);
				CopyReplicatedToLabelsFromTo(remoteLastSyncContact, m1);
				CopyReplicatedToLabelsFromTo(localLastSyncContact, m2);
				CopyReplicatedToLabelsFromTo(remoteLastSyncContact, m2);
			}
			else
			{
				ClearLabelsFrom(m1);
				ClearLabelsFrom(m2);
			}

			SetReplicatedTo(m1, localSyncSource.Name);
			SetReplicatedTo(m2, remoteSyncSource.Name);

			remoteSyncSource.MapUpdated[FullName] = m1;
			localSyncSource.MapUpdated[FullName] = m2;
		}
Example #21
0
		// GUI CALLBACKS

		public void Progress(ISyncSource source, string s, int c, int max)
		{
			if (syncEngine.SyncCanceled)
				return;

			this.lastSyncMessage.Visibility = Visibility.Hidden;
			this.url.Visibility = Visibility.Hidden;

			this.progressBar.Maximum = max;
			this.progressBar.Minimum = 0;
			this.progressBar.Value = c;
			this.progressBar.Height = 25;
			this.progressBar.Visibility = System.Windows.Visibility.Visible;

			this.statusLabel.Content = s;
			this.statusLabel.Visibility = Visibility.Visible;

			this.syncButton.IsEnabled = false;
		}
Example #22
0
		public Contact LastSyncContact(ISyncSource source, string FullName)
		{
			string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
			string appDataSynrcContacts = appData + "/Synrc/Contact Manager/" + source.Name;
			if (File.Exists(appDataSynrcContacts + "/" + FullName + ".contact"))
			{
				Contact contact = new Contact(appDataSynrcContacts + "/" + FullName + ".contact");
				return contact;

			}
			return null;
		}
Example #23
0
		public void EndSync(ISyncSource source, ISyncSource destination) // EndSync
		{
			//Cursor cur = this.Cursor;
			//this.Cursor = Cursors.Wait;

			currentProvider = destination;

			HideProgressBar();
			UpdateItems();

			if (source != destination)
				this.lastSyncMessage.Content = "Last sync was made between " + source.DisplayName + " and " + destination.DisplayName;
			else
				this.lastSyncMessage.Content = "Contacts refreshed from " + source.DisplayName;

			
			wasGoodSync = true;

			if (source == destination && noneProvider)
			{
				MenuItem mi = GetSyncMenuItemByName(source.Name);
				mi.FontWeight = FontWeights.Bold;
				//mi.Header = source.DisplayName + " (Refresh)";
			}

			//this.Cursor = cur;
		}
Example #24
0
		public void StartThreads()
		{
			CleanupResources();

			CurrentTotal = 0;
			CurrentItemNum = 0;

			lastSyncSource = localSyncSource;

			localSyncSource.FetchSem.WaitOne();
			fetchThreadLocal = new Thread(localSyncSource.FetchTask);
			fetchThreadLocal.Priority = ThreadPriority.Highest;
			fetchThreadLocal.SetApartmentState(ApartmentState.STA);
			fetchThreadLocal.Start();

			remoteSyncSource.FetchSem.WaitOne();
			fetchThreadRemote = new Thread(remoteSyncSource.FetchTask);
			fetchThreadRemote.Priority = ThreadPriority.Highest;
			fetchThreadRemote.SetApartmentState(ApartmentState.STA);
			fetchThreadRemote.Start();

			SyncSemForLocal.WaitOne();
			SyncSemForRemote.WaitOne();
			localSyncSource.SyncSem = SyncSemForLocal;
			remoteSyncSource.SyncSem = SyncSemForRemote;
			syncThread = new Thread(SyncTask);
			syncThread.Priority = ThreadPriority.Highest;
			syncThread.Start();

			localSyncSource.UpdateSem.WaitOne();
			updateThreadLocal = new Thread(localSyncSource.UpdateTask);
			updateThreadLocal.Priority = ThreadPriority.Highest;
			updateThreadLocal.Start();

			remoteSyncSource.UpdateSem.WaitOne();
			updateThreadRemote = new Thread(remoteSyncSource.UpdateTask);
			updateThreadRemote.Priority = ThreadPriority.Highest;
			updateThreadRemote.Start();

			LastSyncSaverSem.WaitOne();
			lastSyncSaverThread = new Thread(lastSyncSaverThreadTask);
			lastSyncSaverThread.Priority = ThreadPriority.Highest;
			lastSyncSaverThread.Start();

		}
Example #25
0
		public void CancelSync(ISyncSource source, string message, string link)
		{
			syncEngine.SyncCanceled = true;

			HideProgressBar();
			UpdateItems();

			this.lastSyncMessage.Content = message;
			if (link != null)
			{
				this.url.Visibility = Visibility.Visible;
				Hyperlink o = this.url.Content as Hyperlink;
				o.NavigateUri = new Uri(link);
			}

			//if (!wasGoodSync)
			//	currentProvider = null;

			//wasGoodSync = false;
		}
Example #26
0
		public IList<IMan> Sync(ISyncSource local, ISyncSource remote)
		{
			futureManList = new List<IMan>();
			cancelSync = false;
			if (local != remote && local != null && remote != null)
			{
				localSyncSource = local;
				remoteSyncSource = remote;
				if (!CheckCredentials(localSyncSource))
				{
					cancelSync = true;
					return futureManList;
				}

				if (!CheckCredentials(remoteSyncSource))
				{
					cancelSync = true;
					return futureManList;
				}
				StartThreads();
			}
			else if (local == remote && local != null)
			{
				localSyncSource = local;
				remoteSyncSource = remote;
				if (!CheckCredentials(localSyncSource))
				{
					cancelSync = true;
					return futureManList;
				}
				StartRetrievingLocal();
			}
			return futureManList;
		}
Example #27
0
		public void Init(string providerSpecified, bool noneProvider)
		{
			syncEngine = new SyncEngine(this, Owner is EssentialWindow);
			
			this.noneProvider = noneProvider;

			if (noneProvider)
			{
				this.lastSyncMessage.Content = "Choose your current provider.";
				this.lastSyncMessage.Visibility = Visibility.Visible;
			}

			try
			{
				if (!IsNET35Installed())
					throw new System.Exception("Windows Live is unavailable. Install .NET 3.5 Framework.");

				Assembly a = LoadLocalAssembly(
					System.IO.Path.GetDirectoryName(
						Assembly.GetExecutingAssembly().Location)
					+ "\\Synrc.WindowsLive.dll");

				Type t = a.GetType("Synrc.LiveContactsProvider");
				live = Activator.CreateInstance(t, new object[] { this, syncEngine }) as ISyncSource;

				//live = new LiveContactsProvider(this, syncEngine);
			}
			catch (Exception excp)
			{
				syncButton.DropDown.Items.Remove(GetSyncMenuItemByName("WindowsLive"));

				this.lastSyncMessage.Content = excp.Message;
				this.lastSyncMessage.Visibility = Visibility.Visible;
			}

			try
			{
				if (!IsOutlookInstalled())
					throw new System.Exception("Outlook not installed.");

				//Assembly a = LoadLocalAssembly("Synrc.Outlook.dll");
				//Type t = a.GetType("Synrc.OutlookContactsProvider");
				//outlook = Activator.CreateInstance(t, new object[] { this, syncEngine}) as ISyncSource;

				outlook = new OutlookContactsProvider(this, syncEngine);
			}
			catch (System.IO.FileNotFoundException e)
			{
				Process reg = new Process();
				reg.StartInfo.FileName = "regsvr32.exe";
				reg.StartInfo.Arguments = "/s Redemption.dll";
				reg.StartInfo.UseShellExecute = false;
				reg.StartInfo.CreateNoWindow = true;
				reg.StartInfo.RedirectStandardOutput = true;
				reg.Start();
				reg.WaitForExit();
				reg.Close();

				outlook = new OutlookContactsProvider(this, syncEngine);
			}
			catch (Exception e)
			{
				syncButton.DropDown.Items.Remove(GetSyncMenuItemByName("Outlook"));
			}

			vista = new WindowsContactsProvider(this, syncEngine);
			gmail = new GmailContactsProvider(this, syncEngine);


			if (IsNokiaInstalled())
			{
				nokia = new NokiaContactsProvider(this, syncEngine);
				nokiaDiscoverer = new NokiaDiscoverer(this, nokia as NokiaContactsProvider);
				this.syncButton.DropDown.Opened += new RoutedEventHandler(DropDown_Opened);
				nokiaDiscoverer.DiscoveryTask();
			}

			if (!noneProvider)
			{
				switch (providerSpecified)
				{
					case "gmail": currentProvider = gmail; break;
					case "windows": currentProvider = vista; break;
					case "live": currentProvider = live; break;
					case "outlook": currentProvider = outlook; break;
					default: currentProvider = vista; break;
				}

				syncButton.DropDown.Items.Remove(GetSyncMenuItemByName(currentProvider.Name));

				searchContext = syncEngine.Sync(currentProvider, currentProvider);
			}

			DataContext = searchContext;
		}
Example #28
0
 private void CountFileTypes(ISyncSource source)
 {
     List<ISyncable> list = new List<ISyncable>(source.AllItems.Values);
     foreach (ISyncable syncable in list)
     {
         int? nullable2 = syncable.Properties.NullableIntForKey("Size");
         long? nullable = nullable2.HasValue ? new long?((long) nullable2.GetValueOrDefault()) : null;
         if (syncable.Properties.BooleanForKey("Picture", false))
         {
             this.photoCount++;
             if (nullable.HasValue)
             {
                 this.photoSize += (double) nullable.Value;
             }
         }
         else
         {
             if (syncable.Properties.BooleanForKey("Has Video", false))
             {
                 this.videoCount++;
                 if (nullable.HasValue)
                 {
                     this.videoSize += (double) nullable.Value;
                 }
                 continue;
             }
             this.musicCount++;
             if (nullable.HasValue)
             {
                 this.musicSize += (double) nullable.Value;
             }
         }
     }
 }
Example #29
0
		private void SyncOutlookPIM(object sender, RoutedEventArgs e)
		{
			//ISyncSource currentProvider = null;
			if (currentProvider == null)
				currentProvider = outlook;
			if (syncEngine != null)
				syncEngine.Sync(outlook, currentProvider);
		}