Factory()
        {
            var personProjectRepository         = new Mock <IPersonProjectRepository>();
            var projectRepository               = new Mock <IProjectRepository>();
            var personUserGroupRepository       = new Mock <IPersonUserGroupRepository>();
            var userGroupRepository             = new Mock <IUserGroupRepository>();
            var personRestrictionRoleRepository = new Mock <IPersonRestrictionRoleRepository>();
            var restrictionRoleRepository       = new Mock <IRestrictionRoleRepository>();
            var personProjectHistoryRepository  = new Mock <IPersonProjectHistoryRepository>();
            var privilegeService     = new Mock <IPrivilegeService>();
            var personService        = new Mock <IPersonService>();
            var logger               = new Mock <ILogger <PersonProjectService> >();
            var personCreatedByCache = new PersonCreatedByCache(111);

            var service = new PersonProjectService(
                personProjectRepository.Object,
                projectRepository.Object,
                privilegeService.Object,
                personProjectHistoryRepository.Object,
                personService.Object,
                logger.Object,
                personCreatedByCache);

            return(service, personProjectRepository, projectRepository, personUserGroupRepository, userGroupRepository,
                   personRestrictionRoleRepository, restrictionRoleRepository, personProjectHistoryRepository,
                   personService, personCreatedByCache);
        }
 public PersonServiceTests()
 {
     _personRepository        = new Mock <IPersonRepository>();
     _graphService            = new Mock <IGraphService>();
     _projectRepository       = new Mock <IProjectRepository>();
     _personProjectRepository = new Mock <IPersonProjectRepository>();
     _personServiceLogger     = new Mock <ILogger <PersonService> >();
     _personCreatedByCache    = new PersonCreatedByCache(111);
     _service = new PersonService(
         _personRepository.Object,
         _graphService.Object,
         _projectRepository.Object,
         _personCreatedByCache,
         _personProjectRepository.Object,
         _personServiceLogger.Object);
 }
示例#3
0
        public static (AccessService, Mock <IGraphService>) Factory(QueueReceiverServiceContext context)
        {
            var personCreatedByCache = new PersonCreatedByCache(111)
            {
                Username = "******"
            };

            var personRepository            = new PersonRepository(context);
            var graphServiceMock            = new Mock <IGraphService>();
            var projectRepositoryMock       = new Mock <IProjectRepository>();
            var personProjectRepositoryMock = new Mock <IPersonProjectRepository>();
            var personServiceLoggerMock     = new Mock <ILogger <PersonService> >();
            var personService = new PersonService(personRepository,
                                                  graphServiceMock.Object,
                                                  projectRepositoryMock.Object,
                                                  personCreatedByCache,
                                                  personProjectRepositoryMock.Object,
                                                  personServiceLoggerMock.Object);
            var personProjectRepository         = new PersonProjectRepository(context);
            var projectRepository               = new ProjectRepository(context);
            var personUserGroupRepository       = new PersonUserGroupRepository(context);
            var userGroupRepository             = new  UserGroupRepository(context);
            var personRestrictionRoleRepository = new PersonRestrictionRoleRepository(context);
            var restrictionRoleRepository       = new RestrictionRoleRepository(context);
            var privilegeService = new PrivilegeService(restrictionRoleRepository, personRestrictionRoleRepository, userGroupRepository, personUserGroupRepository, personCreatedByCache);
            var personProjectHistoryRepository = new PersonProjectHistoryRepository(context);
            var plantRepository                = new PlantRepository(context);
            var plantService                   = new PlantService(plantRepository);
            var AccessServiceloggerMock        = new Mock <ILogger <AccessService> >();
            var personProjectServiceLoggerMock = new Mock <ILogger <PersonProjectService> >();

            var personProjectService = new PersonProjectService(
                personProjectRepository,
                projectRepository,
                privilegeService,
                personProjectHistoryRepository,
                personService,
                personProjectServiceLoggerMock.Object,
                personCreatedByCache);

            var service = new AccessService(personService, personProjectService, plantService, AccessServiceloggerMock.Object, context, personCreatedByCache);

            return(service, graphServiceMock);
        }
        public AccessServiceTests()
        {
            var personCreatedByCache = new PersonCreatedByCache(111)
            {
                Username = "******"
            };

            _personService        = new Mock <IPersonService>();
            _personProjectService = new Mock <IPersonProjectService>();
            _plantService         = new Mock <IPlantService>();
            _unitOfWork           = new Mock <IUnitOfWork>();
            _logger  = new Mock <ILogger <AccessService> >();
            _service = new AccessService(
                _personService.Object,
                _personProjectService.Object,
                _plantService.Object,
                _logger.Object,
                _unitOfWork.Object,
                personCreatedByCache);
        }
        static async Task Main(string[] args)
        {
            var plants = new List <string>();

            if (args.Length > 1)
            {
                Console.WriteLine(@"Error: Invalid number of arguments.");
                return;
            }

            if (args.Length == 1)
            {
                var argPlants = args[0].Split(',');

                foreach (var plant in argPlants)
                {
                    if (!plant.StartsWith("PCS$"))
                    {
                        Console.WriteLine(@"Error: Plant names must start with 'PCS$'");
                        return;
                    }

                    plants.Add(plant);
                }
            }

            var path = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName);

            var config = new ConfigurationBuilder()
                         .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
                         .AddJsonFile($"{path}\\hosting.json", false, true)
                         .AddUserSecrets <Program>()
                         .Build();

            var removeUserAccess = bool.Parse(config["RemoveUserAccessEnabled"]);

            var personCreatedById    = long.Parse(config["PersonCreatedById"], CultureInfo.InvariantCulture);
            var personCreatedByCache = new PersonCreatedByCache(personCreatedById);

            var graphSettings = new GraphSettings();

            config.Bind(nameof(GraphSettings), graphSettings);

            //setup our DI
            var serviceCollection = new ServiceCollection()
                                    .AddLogging(loggingBuilder =>
            {
                loggingBuilder.AddConfiguration(config.GetSection("Logging"));
                loggingBuilder.AddConsole();
            })
                                    .AddApplicationInsightsTelemetryWorkerService(config["ApplicationInsights:InstrumentationKey"])
                                    .AddSingleton <ISyncService, SyncService>()
                                    .AddSingleton(personCreatedByCache)
                                    .AddSingleton(graphSettings)
                                    .AddServices()
                                    .AddRepositories()
                                    .AddDbContext(config["ConnectionString"]);

            var services = serviceCollection.BuildServiceProvider();

            var logger = services.GetRequiredService <ILogger <Program> >();

            var syncService = services.GetService <ISyncService>();

            try
            {
                await syncService.StartAccessSync(plants, removeUserAccess);
            }
            catch (Exception e)
            {
                logger.LogError($"[GroupSync Error] : {e.Message}");
                logger.LogError(e.StackTrace);
            }

            // Take a break to allow AI to finish logging.
            await Task.Delay(10000);
        }