public override void HarvestSetting(ref object setting) { syncAppointmentSetting appointmentSetting = setting as syncAppointmentSetting; if (appointmentSetting != null) { base.HarvestSetting(ref setting); } }
public override void SetSetting(object setting) { syncAppointmentSetting appointmentSetting = setting as syncAppointmentSetting; if (appointmentSetting != null) { base.SetSetting(setting); } }
/// <summary> /// Sets the setting. /// </summary> /// <param name="setting">The setting.</param> public virtual void SetSetting(object setting) { syncAppointmentSetting appointmentSetting = setting as syncAppointmentSetting; if (appointmentSetting != null) { cbDirection.SelectedItem = ((IEnumerable <KeyValuePair <string, SyncDirectionOrder> >)cbDirection.DataSource).First(x => x.Value == (SyncDirectionOrder)appointmentSetting.syncDirection); cbConflictPolicy.SelectedItem = ((IEnumerable <KeyValuePair <string, ConflictResolutionPolicy> >)cbConflictPolicy.DataSource).First(x => x.Value == (ConflictResolutionPolicy)appointmentSetting.syncConflictResolution); tbSyncFolder.Text = appointmentSetting.localFolder; chkboxIncludeSubfolder.Checked = appointmentSetting.recursive; cbRemoteSyncTarget.SelectedItem = appointmentSetting.remoteFolder; } }
/// <summary> /// Harvests the setting. /// </summary> /// <param name="setting">The setting.</param> public virtual void HarvestSetting(ref object setting) { syncAppointmentSetting appSetting = setting as syncAppointmentSetting; if (appSetting != null) { appSetting.localFolder = tbSyncFolder.Text; appSetting.recursive = chkboxIncludeSubfolder.Checked; object selectedItem = cbRemoteSyncTarget.SelectedItem; if (selectedItem != null) { appSetting.remoteFolder = selectedItem.ToString(); } appSetting.syncDirection = (int)((KeyValuePair <string, SyncDirectionOrder>)cbDirection.SelectedItem).Value; appSetting.syncConflictResolution = (int)((KeyValuePair <string, ConflictResolutionPolicy>)cbConflictPolicy.SelectedItem).Value; } }
//this method must call in Addin thread public static UIController CreateInstance(AddinModule addinModule) { if (addinModule == null) { throw new ArgumentNullException("addinModule"); } if (_instance != null) { return(_instance); } //Set LogFilePath DebugAssistant.LogFilePath = ApplicationConfig.LogPathFile; FormSyncOptions syncOptionsForm = new FormSyncOptions(); FormSyncItem syncForm = new FormSyncItem(); FormSyncConflictResolution syncConflictResForm = new FormSyncConflictResolution(); OutlookListener listener = new OutlookListener(addinModule); IntPtr handle = listener.Handle; OutlookApplication outlookApplication = OutlookApplication.CreateInstance(listener); SyncApplication syncApp = SyncApplication.CreateInstance(outlookApplication); if (syncApp == null) { throw new NullReferenceException("syncApp"); } UIController retVal = new UIController(addinModule, listener, syncApp, syncForm, syncOptionsForm, syncConflictResForm); if (syncConflictResForm != null) { //Force create control handle = syncConflictResForm.Handle; } if (syncForm != null) { //Subscribe events SyncApp(Model) retVal.HookEvents(syncApp); //Sunscribe events syncForm(View) retVal.HookEvents(syncForm); //Force create control handle = syncForm.Handle; //TODO: Нужно прочитать историю последней синхронизации и установить статус прошлой синхронизации syncForm.AddSyncMenuItem(Outlook.OlItemType.olAppointmentItem); syncForm.AddSyncMenuItem(Outlook.OlItemType.olContactItem); syncForm.AddSyncMenuItem(Outlook.OlItemType.olTaskItem); syncForm.AddSyncMenuItem(Outlook.OlItemType.olNoteItem); //Appointment SyncItemInfo status = new SyncItemInfo(); syncAppointmentSetting apppointSetting = syncApp.CurrentSettings.CurrentSyncAppointentSetting; if (apppointSetting != null) { status.Status = (eSyncStatus)apppointSetting.lastSyncStatus; if (status.Status != eSyncStatus.Unknow) { status.LastSyncDate = new DateTime(TimeSpan.TicksPerSecond * apppointSetting.lastSyncDate); } if (status.Status == eSyncStatus.Ok || status.Status == eSyncStatus.Unknow) { status.Status = eSyncStatus.Ready; } } syncForm.ThrSetSyncItemStatus(Outlook.OlItemType.olAppointmentItem, status); //Contact //Task status = new SyncItemInfo(); status.Status = eSyncStatus.Ready; syncForm.ThrSetSyncItemStatus(Outlook.OlItemType.olTaskItem, status); //Note status = new SyncItemInfo(); status.Status = eSyncStatus.Unknow; syncForm.ThrSetSyncItemStatus(Outlook.OlItemType.olContactItem, status); syncForm.ThrSetSyncItemStatus(Outlook.OlItemType.olNoteItem, status); retVal._syncItemForm = syncForm; } if (syncOptionsForm != null) { //Force create control handle = syncOptionsForm.Handle; //Sunscribe events syncOptionsForm(View) retVal.HookEvents(syncOptionsForm); } _instance = retVal; return(retVal); }
public static AppointmentSyncProvider CreateInstance(syncAppointmentSetting settings, OutlookApplication outlookApplication) { return(new AppointmentSyncProvider(settings, outlookApplication)); }
private AppointmentSyncProvider(syncAppointmentSetting settings, OutlookApplication outlookApplication) { _outlookApplication = outlookApplication; _activeSyncSetting = settings; }