public void FixSynchronizationMode (TestResult result)
{
const SynchronizationMode readOnlyDefaultMode = SynchronizationMode.ReplicateServerIntoOutlook;
if (result.ResourceType.HasFlag (ResourceType.Calendar))
{
if (!result.AccessPrivileges.HasFlag (AccessPrivileges.Modify)
&& OptionTasks.DoesModeRequireWriteableServerResource(_syncSettingsControl.SynchronizationMode))
{
_syncSettingsControl.SynchronizationMode = readOnlyDefaultMode;
MessageBox.Show (
string.Format (
"The specified Url is a read-only calendar. Synchronization mode set to '{0}'.",
_syncSettingsControl.AvailableSynchronizationModes.Single (m => m.Value == readOnlyDefaultMode).Name),
OptionTasks.ConnectionTestCaption);
}
}
if (result.ResourceType.HasFlag (ResourceType.AddressBook))
{
if (!result.AccessPrivileges.HasFlag (AccessPrivileges.Modify)
&& OptionTasks.DoesModeRequireWriteableServerResource(_syncSettingsControl.SynchronizationMode))
{
_syncSettingsControl.SynchronizationMode = readOnlyDefaultMode;
MessageBox.Show (
string.Format (
"The specified Url is a read-only addressbook. Synchronization mode set to '{0}'.",
_syncSettingsControl.AvailableSynchronizationModes.Single (m => m.Value == readOnlyDefaultMode).Name),
OptionTasks.ConnectionTestCaption);
}
}
}