/// <summary> /// Get a list of ADConnectors.User created since a give date /// </summary> /// <param name="configuration"></param> /// <param name="earliest"></param> /// <returns></returns> private static (List <User>, List <Dictionary <string, string> >) CheckNewAccount(IConfiguration configuration, DateTime earliest) { List <User> users = new List <User>(); List <Dictionary <string, string> > incompletedUsers = new List <Dictionary <string, string> >(); using (IADSearcher ad = Creater.GetADConnector(configuration.GetSection("AD"))) { List <Dictionary <string, string> > results = ad.Search(earliest); Log.Information($"Total user found: {results.Count}"); int i = 0; foreach (var user in results) { i++; Console.WriteLine("User {0}: {1} ({2} {3})", i, user["samaccountname"], user["givenname"], user["sn"]); Log.Debug("User {0}: {1} ({2} {3})", i, user["samaccountname"], user["givenname"], user["sn"]); try { users.Add(new User(user)); } catch (KeyNotFoundException) { incompletedUsers.Add(user); } } }; return(users, incompletedUsers); }
public IndexModel(ILogger <IndexModel> logger, IADSearcher aDSearcher, ITokenConsumer crmClient) { _logger = logger; _aDSearcher = aDSearcher; _crmClient = crmClient; NewAccounts = new List <Dictionary <string, string> >(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc(); eRSA = Creater.GetADConnector(Configuration.GetSection("AD")); services.AddSingleton <IADSearcher>(eRSA); try { CRMClient crmClient = new CRMClient(Configuration["Dynamics:Authority"], Configuration["Dynamics:Resource"], Configuration["Dynamics:ClientId"], Configuration["Dynamics:ClientSecret"], Configuration["Dynamics:Version"]); services.AddSingleton <ITokenConsumer>(crmClient); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); throw new ApplicationException("Cannot continue because saved token file is not found."); } Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(Configuration) .CreateLogger(); services.AddLogging(loggingBuilder => loggingBuilder.AddSerilog(dispose: true)); Log.Logger.Debug("All services have been set up."); }
static void Main(string[] args) { Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.File("adconnectors.log") .CreateLogger(); IConfiguration configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("ad_connection.json") .Build(); DateTime earliest = new DateTime(2017, 9, 1); using (IADSearcher ad = Creater.GetADConnector(configuration)) { List <Dictionary <string, string> > results = ad.Search(earliest); Console.WriteLine(results.Count); Dictionary <string, string> lastAccount = ad.GetUser(int.Parse(results[results.Count - 1]["uidnumber"]), true); Console.WriteLine("Searching non existing account resulting zero number of key:"); Dictionary <string, string> nonExisting = ad.GetUser(1089); Console.WriteLine(nonExisting == null); }; }
public SearchModel(ILogger <SearchModel> logger, IADSearcher aDSearcher, ITokenConsumer crmClient) { _logger = logger; _aDSearcher = aDSearcher; _crmClient = crmClient; }
public UserModel(IADSearcher aDSearcher) { _aDSearcher = aDSearcher; }