/// <summary> /// Gets all registered aligners in core folder and addins (optional) folders /// </summary> /// <returns>List of registered aligners</returns> private static IEnumerable <ISequenceAligner> GetAligners() { IList <ISequenceAligner> registeredAligners = new List <ISequenceAligner>(); IList <ISequenceAligner> addInAligners = RegisteredAddIn.GetComposedInstancesFromAssemblyPath <ISequenceAligner>( "NetBioSequenceAlignersExport", RegisteredAddIn.AddinFolderPath, RegisteredAddIn.DLLFilter); if (null != addInAligners && addInAligners.Count > 0) { foreach (ISequenceAligner aligner in addInAligners.Where( aligner => aligner != null && registeredAligners.All(sa => string.Compare(sa.Name, aligner.Name, StringComparison.OrdinalIgnoreCase) != 0))) { registeredAligners.Add(aligner); } } return(registeredAligners); }
/// <summary> /// Gets all registered alphabets in core folder and addins (optional) folders. /// </summary> /// <returns>List of registered alphabets.</returns> private static IList <IAlphabet> GetAlphabets() { IList <IAlphabet> registeredAlphabets = new List <IAlphabet>(); IList <IAlphabet> addInAlphabets = RegisteredAddIn.GetComposedInstancesFromAssemblyPath <IAlphabet>( "NetBioAlphabetsExport", RegisteredAddIn.AddinFolderPath, RegisteredAddIn.DLLFilter); if (null != addInAlphabets) { foreach (IAlphabet alphabet in addInAlphabets.Where( alphabet => alphabet != null && !registeredAlphabets.Any( ra => String.Compare(ra.Name, alphabet.Name, StringComparison.OrdinalIgnoreCase) == 0))) { registeredAlphabets.Add(alphabet); } } return(registeredAlphabets); }