public override void CMD_provider(Arguments args, Guid rootId) { List <string> providers = new List <string>(); var dynTypes = ModuleBuilderManager.GetManager().Provider.GetDynamicModuleTypes(); MultisiteManager msManager = MultisiteManager.GetManager(); var links = msManager.GetSiteDataSourceLinks(); foreach (var datalink in links.Where(l => !l.DataSourceName.StartsWith("Telerik.Sitefinity."))) { if (dynTypes.Where(mt => mt.ModuleName == datalink.DataSourceName).FirstOrDefault() != null) { providers.Add(ProviderName(datalink.ProviderName)); } } // Displays the list of providers if (args.Count == 0) { string currentProvider = ProviderName(svc.Get_Provider()); summary = string.Join("\n", providers.Select(provider => provider + (provider == currentProvider ? " <=" : ""))); return; } // Selects a provider string newProvider = providers.Where(provider => provider.ToLower() == args.FirstKey).FirstOrDefault(); if (newProvider == null) { svc.Set_Error("Invalid provider: " + args.FirstKey); return; } if (rootId != Guid.Empty) { var dynType = ModuleBuilderManager.GetManager().Provider.GetDynamicModuleType(rootId); Type type = TypeResolutionService.ResolveType(dynType.GetFullTypeName()); svc.Set_Path(newProvider + " - " + type.FullName.Substring(38)); } newProvider = newProvider == "Default" ? "OpenAccessProvider" : newProvider; svc.Set_Provider(newProvider); }