private void SyncClickItems() { bool removeAzureAudioIfAccountInvalid = false; bool removeWatsonAudioIfAccountInvalid = false; if (IsAzureVoiceSelected()) { removeAzureAudioIfAccountInvalid = !AzureRuntimeService.IsAzureAccountPresentAndValid; } if (IsWatsonVoiceSelected()) { removeWatsonAudioIfAccountInvalid = !WatsonRuntimeService.IsWatsonAccountPresentAndValid; } // also align eLL first item click No to be the same as first click No on animation pane SyncCustomAnimationToTaskpane(uncheckAzureAudio: removeAzureAudioIfAccountInvalid, uncheckWatsonAudio: removeWatsonAudioIfAccountInvalid); List <ExplanationItem> items = Items.Where(x => x is ExplanationItem) .Cast <ExplanationItem>().ToList(); ELearningService eLearningService = new ELearningService(slide, items); RemoveLabAnimationsFromAnimationPane(eLearningService); // align first click No on animation pane to be the same as eLL first click No AlignFirstClickNumberForCustomItem(); ELearningLabTextStorageService.StoreSelfExplanationTextToSlide( Items.Where(x => x is ExplanationItem && !((ExplanationItem)x).IsEmpty) .Cast <ExplanationItem>().ToList(), slide); SyncLabItemToAnimationPane(eLearningService); }