public SynchronizationService(IQueryExecutor queryExecutor, IProcessingStrategyFactory strategyFactory,
                                      IQueryBuilder queryBuilder)
        {
            InitializeComponent();

            this.queryExecutor   = queryExecutor;
            this.strategyFactory = strategyFactory;
            this.queryBuilder    = queryBuilder;
        }
Пример #2
0
 private void InitializePrerequisites(JobDataMap dataMap)
 {
     try
     {
         this.queryBuilder              = (IQueryBuilder)dataMap[QueryBuilderArgumentName];
         this.queryExecutor             = (IQueryExecutor)dataMap[QueryExecutorArgumentName];
         this.processingStrategyFactory = (IProcessingStrategyFactory)dataMap[ProcessingStrategyFactoryArgumentName];
         this.logger.Info("Initialized prerequisites for database synchronization.");
     }
     catch (Exception ex)
     {
         this.logger.FatalFormat("Initializing prerequisites failed: {0}", ex);
         throw ex;
     }
 }
Пример #3
0
 private void InitializePrerequisites(JobDataMap dataMap)
 {
     try
     {
         this.queryBuilder = (IQueryBuilder)dataMap[QueryBuilderArgumentName];
         this.queryExecutor = (IQueryExecutor)dataMap[QueryExecutorArgumentName];
         this.processingStrategyFactory = (IProcessingStrategyFactory)dataMap[ProcessingStrategyFactoryArgumentName];
         this.logger.Info("Initialized prerequisites for database synchronization.");
     }
     catch (Exception ex)
     {
         this.logger.FatalFormat("Initializing prerequisites failed: {0}", ex);
         throw ex;
     }
 }
        public async static Task ExecuteSynchronization(IQueryExecutor queryExecutor, IQueryBuilder queryBuilder,
            IProcessingStrategyFactory processingStrategyFactory)
        {
            var allQueries = GetQueriesForGameObjects(queryBuilder);

            foreach (var query in allQueries)
            {
                try
                {
                    var queryResponse = await queryExecutor.ExecuteQuery(query);
                    var currentQueryProcessingStrategy = processingStrategyFactory.GetProcessingStrategy(queryResponse.QueryObjectType);
                    await currentQueryProcessingStrategy.ProcessQueryResponse(queryResponse);
                }
                catch (Exception ex)
                {
                    string fatalFormat = string.Format("Exception caught while trying to synchronize {0}s to the database: {1}",
                            query.ObjectType, ex);
                    logger.FatalFormat(fatalFormat);
                    EmailNotifier.SendExceptionEmail(ExceptionEmailSubject, fatalFormat);
                }
            }
        }
        public async static Task ExecuteSynchronization(IQueryExecutor queryExecutor, IQueryBuilder queryBuilder,
                                                        IProcessingStrategyFactory processingStrategyFactory)
        {
            var allQueries = GetQueriesForGameObjects(queryBuilder);

            foreach (var query in allQueries)
            {
                try
                {
                    var queryResponse = await queryExecutor.ExecuteQuery(query);

                    var currentQueryProcessingStrategy = processingStrategyFactory.GetProcessingStrategy(queryResponse.QueryObjectType);
                    await currentQueryProcessingStrategy.ProcessQueryResponse(queryResponse);
                }
                catch (Exception ex)
                {
                    string fatalFormat = string.Format("Exception caught while trying to synchronize {0}s to the database: {1}",
                                                       query.ObjectType, ex);
                    logger.FatalFormat(fatalFormat);
                    EmailNotifier.SendExceptionEmail(ExceptionEmailSubject, fatalFormat);
                }
            }
        }