public async Task Test_ContactSynchronizerWithSogoDistLists()
        {
            var synchronizer = await _synchronizerFactory.CreateSynchronizer(
                new Options
            {
                CalenderUrl                     = "http://server",
                ConflictResolution              = ConflictResolution.Automatic,
                IgnoreSynchronizationTimeRange  = true,
                IsChunkedSynchronizationEnabled = false,
                MappingConfiguration            = new ContactMappingConfiguration
                {
                    MapDistributionLists = true,
                    DistributionListType = DistributionListType.Sogo
                },
                SynchronizationMode  = SynchronizationMode.MergeInBothDirections,
                OutlookFolderEntryId = "eid",
                OutlookFolderStoreId = "sid",
                ServerAdapterType    = ServerAdapterType.WebDavHttpClientBased
            },
                new GeneralOptions());

            CheckGraph(synchronizer, "ContactSynchronizerWithSogoDistLists.txt");
        }
        public async void DiplayBEntityAsync(Guid synchronizationProfileId, string entityId)
        {
            try
            {
                var options = GetOptionsOrNull(synchronizationProfileId);
                if (options == null)
                {
                    return;
                }

                SynchronizerFactory.AvailableSynchronizerComponents availableSynchronizerComponents;

                _synchronizerFactory.CreateSynchronizer(options, out availableSynchronizerComponents);

                if (availableSynchronizerComponents.CalDavDataAccess != null)
                {
                    var entityName = new WebResourceName {
                        Id = entityId, OriginalAbsolutePath = entityId
                    };
                    var entities = await availableSynchronizerComponents.CalDavDataAccess.GetEntities(new[] { entityName });

                    DisplayFirstEntityIfAvailable(entities);
                }
                else if (availableSynchronizerComponents.CardDavDataAccess != null)
                {
                    var entityName = new WebResourceName {
                        Id = entityId, OriginalAbsolutePath = entityId
                    };
                    var entities = await availableSynchronizerComponents.CardDavDataAccess.GetEntities(new[] { entityName });

                    DisplayFirstEntityIfAvailable(entities);
                }
                else
                {
                    MessageBox.Show($"The type of profile '{options.Name}' doesn't provide a way to display server entities.");
                }
            }
            catch (Exception x)
            {
                ExceptionHandler.Instance.DisplayException(x, s_logger);
            }
        }