コード例 #1
0
        /// <summary>
        /// Método que inicializa los schedulers en el caso de alguna configuración en el modulo General Settings
        /// </summary>
        /// <param name="configuration"></param>
        /// <param name="countryId"></param>
        /// <param name="currencyId"></param>
        public void GeneralSettingsStart(GeneralSettingsConfigurationScheduler configuration, int countryId, int currencyId)
        {
            PostACHConfigurationScheduler          postACHConfiguration          = new PostACHConfigurationScheduler();
            SettlementConfigurationScheduler       settlementConfiguration       = new SettlementConfigurationScheduler();
            ClosingProcessesConfigurationScheduler closingProcessesConfiguration = new ClosingProcessesConfigurationScheduler();

            postACHConfiguration.PostACHConfiguration        = configuration.PostACHConfiguration;
            postACHConfiguration.GeneralSettingConfiguration = configuration.GeneralSettingConfiguration;

            settlementConfiguration.GeneralSettingConfiguration = configuration.GeneralSettingConfiguration;
            settlementConfiguration.SettlementConfiguration     = configuration.SettlementConfiguration;

            closingProcessesConfiguration.GeneralSettingConfiguration   = configuration.GeneralSettingConfiguration;
            closingProcessesConfiguration.ClosingProcessesConfiguration = configuration.ClosingProcessesConfiguration;

            if (postACHConfiguration.PostACHConfiguration != null)
            {
                this.PostACHStart(postACHConfiguration, countryId, currencyId);
            }

            if (settlementConfiguration.SettlementConfiguration.Any())
            {
                this.SettlementStart(settlementConfiguration, countryId, currencyId);
            }

            if (closingProcessesConfiguration.ClosingProcessesConfiguration != null)
            {
                this.ClosingProcessesStart(closingProcessesConfiguration, countryId, currencyId);
            }
        }
コード例 #2
0
        /// <summary>
        /// Método que inicializa la configuración del scheduler en el caso del proceso Close Batch
        /// </summary>
        /// <param name="configuration"></param>
        /// <param name="countryId"></param>
        /// <param name="currencyId"></param>
        public void ClosingProcessesStart(ClosingProcessesConfigurationScheduler configuration, int countryId, int currencyId)
        {
            string countryName = configuration.ClosingProcessesConfiguration.Country.Name.Trim();
            string group       = string.Format("{0}_{1}_closingProcessesGroup", countryName, currencyId);

            string[] groupsToDelete = new string[] { group };

            if (RemoveJobsByGroup(groupsToDelete))
            {
                if (configuration.ClosingProcessesConfiguration.ExecutionModeId == Utilitarios.Base.ExecutionMode.Automatic)
                {
                    string   daysToExecute    = GenerateDaysOfWeek(configuration.GeneralSettingConfiguration);
                    TimeSpan timeToExecute    = (TimeSpan)configuration.ClosingProcessesConfiguration.CloseBatchTime;
                    int      secondsToExecute = timeToExecute.Seconds;
                    int      minutesToExecute = timeToExecute.Minutes;
                    int      hoursToExecute   = timeToExecute.Hours;
                    string   cronExpression   = string.Format("{0} {1} {2} {3} {4} {5}", secondsToExecute.ToString(),
                                                              minutesToExecute.ToString(),
                                                              hoursToExecute.ToString(),
                                                              "?",
                                                              "*",
                                                              daysToExecute);

                    //string cronExpression = "0 * 8-19 * * ?";
                    var id = Guid.NewGuid();

                    IJobDetail job = JobBuilder.Create <ClosingProcessesTask>()
                                     .StoreDurably(true)
                                     .WithIdentity(string.Format("job_CP_{0}_{1}_{2}", countryName, currencyId, id), group)
                                     .UsingJobData("countryId", countryId.ToString())
                                     .UsingJobData("currencyId", currencyId.ToString())
                                     .Build();

                    ITrigger trigger = TriggerBuilder.Create()
                                       .WithIdentity(string.Format("tgr_CP_{0}_{1}_{2}", countryName, currencyId, id), group)
                                       .ForJob(job)
                                       .WithSchedule(CronScheduleBuilder.CronSchedule(cronExpression)
                                                     .InTimeZone(TimeZoneInfo.FindSystemTimeZoneById(configuration.GeneralSettingConfiguration.TimeZone)))
                                       .Build();

                    this.scheduler.ScheduleJob(job, trigger);
                    this.scheduler.Start();
                }
            }
        }