// private static object syncRoot = new object(); // private static volatile IDirectoryAccountService instance; /** Static Methods **/ public static IDirectoryAccountService GetDirectoryAccountService() { //DirectoryAccountService service; IDirectoryAccountService instance = null; if (instance == null) { //lock (syncRoot) { string className = ConfigurationManager.AppSettings["DirectoryAccountService.ClassName"]; if (String.IsNullOrEmpty(className)) { throw new SettingsPropertyNotFoundException("DirectoryAccountService.ClassName is not found in the application or web config. \n Please add <add key=\"DirectoryAccountService.ClassName\" value=\"xyz\" /> to the config file."); } Type type = Type.GetType(className); if (type == null) { throw new ConfigurationErrorsException("Invalid class type of " + className + " configured in AppSettings "); } instance = (IDirectoryAccountService)Activator.CreateInstance(type); //} } else { //CurrentService.Open(); } return(instance); }
public void create_active_directory_service_test() { ConfigurationManager.AppSettings["DirectoryAccountService.ClassName"] = "FrameworkExtKit.Services.DirectoryServices.ActiveDirectoryAccountService"; ConfigurationManager.AppSettings["DirectoryAccountService.RootEntry"] = "LDAP://DIR.company.com"; IDirectoryAccountService service = DefaultDirectoryServiceFactory.GetDirectoryAccountService(); Assert.IsNotNull(service); Assert.IsTrue(service is ActiveDirectoryAccountService); }
public void create_db_directory_service_test() { ConfigurationManager.AppSettings["DirectoryAccountService.ClassName"] = "FrameworkExtKit.Services.DirectoryServices.DB.DbDirectoryAccountService"; ConfigurationManager.AppSettings["DirectoryAccountService.RootEntry"] = "DB://DBDirectoryService"; IDirectoryAccountService service = DefaultDirectoryServiceFactory.GetDirectoryAccountService(); Assert.IsNotNull(service); Assert.IsTrue(service is DbDirectoryAccountService); }
public void create_invalid_directory_service_test() { ConfigurationManager.AppSettings["DirectoryAccountService.ClassName"] = ""; ConfigurationManager.AppSettings["DirectoryAccountService.RootEntry"] = "DB://DBDirectoryService"; Assert.Catch <Exception>(() => { IDirectoryAccountService service = DefaultDirectoryServiceFactory.GetDirectoryAccountService(); }, "DirectoryAccountService.ClassName is not found in the application or web config. \n Please add <add key=\"DirectoryAccountService.ClassName\" value=\"xyz\" /> to the config file." ); }
public void SetUp() { service = new LdapDirectoryAccountService(); }