public static void Enqueue(AppCommands commandType, IEntityBase entity, ExecutionTrigger trigger, object value, ModifyAction modifyAction) { var command = new QueuedCommand { CommandType = commandType, Target = entity.UniqueId, Status = ExecutionStatus.Pending, TriggerType = trigger, Value = value.ToString(), ModifyAction = modifyAction, DateCreated = DateTime.Now, DateScheduled = DateTime.Now }; ThreadPool.QueueUserWorkItem(delegate { ClientState.Current.DataService.Save(command); switch (trigger) { case ExecutionTrigger.Connection: EventBroker.Publish(AppEvents.RequestCommands); break; case ExecutionTrigger.Send: EventBroker.Publish(AppEvents.RequestSend); break; case ExecutionTrigger.Receive: EventBroker.Publish(AppEvents.RequestReceive); break; } }); }
public ExecuteCommandsTask(ExecutionTrigger trigger) { this.trigger = trigger; }
private void ImportJobForm_Load(object sender, EventArgs e) { Cancelled = false; //Few changes based on form mode (create or edit) Text = ImportJobDetail == null ? Resources.Add_import_job : string.Format(Resources.Edit_job_0, ImportJobDetail.Key.Name); addToolStripButton.Text = ImportJobDetail == null ? Resources.Add_to_schedule : Resources.Edit_job; jobName.Enabled = ImportJobDetail == null; jobGroupComboBox.DataSource = Properties.Settings.Default.JobGroups; jobGroupComboBox.ValueMember = null; jobGroupComboBox.DisplayMember = "Name"; jobGroupComboBox.Enabled = ImportJobDetail == null; instanceComboBox.DataSource = Properties.Settings.Default.Instances; instanceComboBox.ValueMember = null; instanceComboBox.DisplayMember = "Name"; appRegistrationComboBox.DataSource = Properties.Settings.Default.AadApplications.Where(x => x.AuthenticationType == AuthenticationType.User).ToList(); appRegistrationComboBox.ValueMember = null; appRegistrationComboBox.DisplayMember = "Name"; userComboBox.DataSource = Properties.Settings.Default.Users; userComboBox.ValueMember = null; userComboBox.DisplayMember = "Login"; orderByComboBox.DataSource = Enum.GetValues(typeof(OrderByOptions)); importJobStartAtDateTimePicker.Value = DateTime.Now; monitoringJobStartAtDateTimePicker.Value = DateTime.Now; inputFolderTextBox.Text = Properties.Settings.Default.UploadInputFolder; uploadSuccessFolderTextBox.Text = Properties.Settings.Default.UploadSuccessFolder; uploadErrorsFolderTextBox.Text = Properties.Settings.Default.UploadErrorsFolder; processingSuccessFolderTextBox.Text = Properties.Settings.Default.ProcessingSuccessFolder; processingErrorsFolderTextBox.Text = Properties.Settings.Default.ProcessingErrorsFolder; importFromPackageTextBox.Text = PackageApiActions.ImportFromPackageActionPath; getAzureWriteUrlTextBox.Text = PackageApiActions.GetAzureWriteUrlActionPath; getExecutionSummaryStatusTextBox.Text = PackageApiActions.GetExecutionSummaryStatusActionPath; getExecutionSummaryPageUrlTextBox.Text = PackageApiActions.GetExecutionSummaryPageUrlActionPath; getImportTargetErrorKeysFileUrlTextBox.Text = PackageApiActions.GetImportTargetErrorKeysFileUrlPath; generateImportTargetErrorKeysFileTextBox.Text = PackageApiActions.GenerateImportTargetErrorKeysFilePath; getExecutionErrorsTextBox.Text = PackageApiActions.GetExecutionErrorsPath; if (ImportJobDetail != null) { jobName.Text = ImportJobDetail.Key.Name; var jobGroup = ((IEnumerable <JobGroup>)jobGroupComboBox.DataSource).FirstOrDefault(x => x.Name == ImportJobDetail.Key.Group); jobGroupComboBox.SelectedItem = jobGroup; jobDescription.Text = ImportJobDetail.Description; useStandardSubfolder.Checked = false; inputFolderTextBox.Text = ImportJobDetail.JobDataMap.GetString(SettingsConstants.InputDir); uploadSuccessFolderTextBox.Text = ImportJobDetail.JobDataMap.GetString(SettingsConstants.UploadSuccessDir); uploadErrorsFolderTextBox.Text = ImportJobDetail.JobDataMap.GetString(SettingsConstants.UploadErrorsDir); packageTemplateTextBox.Text = ImportJobDetail.JobDataMap.GetString(SettingsConstants.PackageTemplate); legalEntityTextBox.Text = ImportJobDetail.JobDataMap.GetString(SettingsConstants.Company); statusFileExtensionTextBox.Text = ImportJobDetail.JobDataMap.GetString(SettingsConstants.StatusFileExtension); dataProject.Text = ImportJobDetail.JobDataMap.GetString(SettingsConstants.DataProject); overwriteDataProjectCheckBox.Checked = ImportJobDetail.JobDataMap.GetBooleanValue(SettingsConstants.OverwriteDataProject); executeImportCheckBox.Checked = ImportJobDetail.JobDataMap.GetBooleanValue(SettingsConstants.ExecuteImport); delayBetweenFilesNumericUpDown.Value = ImportJobDetail.JobDataMap.GetInt(SettingsConstants.DelayBetweenFiles); serviceAuthRadioButton.Checked = ImportJobDetail.JobDataMap.GetBooleanValue(SettingsConstants.UseServiceAuthentication); if (!serviceAuthRadioButton.Checked) { User axUser = null; if (!ImportJobDetail.JobDataMap.GetString(SettingsConstants.UserName).IsNullOrWhiteSpace()) { axUser = ((IEnumerable <User>)userComboBox.DataSource).FirstOrDefault(x => x.Login == ImportJobDetail.JobDataMap.GetString(SettingsConstants.UserName)); } if (axUser == null) { axUser = new User { Login = ImportJobDetail.JobDataMap.GetString(SettingsConstants.UserName), Password = ImportJobDetail.JobDataMap.GetString(SettingsConstants.UserPassword) }; Properties.Settings.Default.Users.Add(axUser); userComboBox.DataSource = Properties.Settings.Default.Users; } userComboBox.SelectedItem = axUser; } var application = ((IEnumerable <AadApplication>)appRegistrationComboBox.DataSource).FirstOrDefault(app => app.ClientId == ImportJobDetail.JobDataMap.GetString(SettingsConstants.AadClientId)); if (application == null) { if (!serviceAuthRadioButton.Checked) { application = new AadApplication { ClientId = ImportJobDetail.JobDataMap.GetString(SettingsConstants.AadClientId) ?? Guid.Empty.ToString(), Name = $"{Resources.IMPORTED_CHANGE_THIS} {DateTime.Now.ToShortDateString()} {DateTime.Now.ToLongTimeString()}", AuthenticationType = AuthenticationType.User }; } else { application = new AadApplication { ClientId = ImportJobDetail.JobDataMap.GetString(SettingsConstants.AadClientId) ?? Guid.Empty.ToString(), Secret = ImportJobDetail.JobDataMap.GetString(SettingsConstants.AadClientSecret) ?? String.Empty, Name = $"{Resources.IMPORTED_CHANGE_THIS} {DateTime.Now.ToShortDateString()} {DateTime.Now.ToLongTimeString()}", AuthenticationType = AuthenticationType.Service }; } Properties.Settings.Default.AadApplications.Add(application); appRegistrationComboBox.DataSource = Properties.Settings.Default.AadApplications; } appRegistrationComboBox.SelectedItem = application; var axInstance = ((IEnumerable <Instance>)instanceComboBox.DataSource).FirstOrDefault(x => (x.AosUri == ImportJobDetail.JobDataMap.GetString(SettingsConstants.AosUri)) && (x.AadTenant == ImportJobDetail.JobDataMap.GetString(SettingsConstants.AadTenant)) && (x.AzureAuthEndpoint == ImportJobDetail.JobDataMap.GetString(SettingsConstants.AzureAuthEndpoint))); if (axInstance == null) { axInstance = new Instance { AosUri = ImportJobDetail.JobDataMap.GetString(SettingsConstants.AosUri), AadTenant = ImportJobDetail.JobDataMap.GetString(SettingsConstants.AadTenant), AzureAuthEndpoint = ImportJobDetail.JobDataMap.GetString(SettingsConstants.AzureAuthEndpoint), UseADAL = ImportJobDetail.JobDataMap.GetBooleanValue(SettingsConstants.UseADAL), Name = $"{Resources.IMPORTED_CHANGE_THIS} {DateTime.Now.ToShortDateString()} {DateTime.Now.ToLongTimeString()}" }; Properties.Settings.Default.Instances.Add(axInstance); instanceComboBox.DataSource = Properties.Settings.Default.Instances; } instanceComboBox.SelectedItem = axInstance; searchPatternTextBox.Text = ImportJobDetail.JobDataMap.GetString(SettingsConstants.SearchPattern) ?? "*.*"; orderByComboBox.DataSource = Enum.GetValues(typeof(OrderByOptions)); var selectedOrderBy = OrderByOptions.FileName; if (!ImportJobDetail.JobDataMap.GetString(SettingsConstants.OrderBy).IsNullOrWhiteSpace()) { selectedOrderBy = (OrderByOptions)Enum.Parse(typeof(OrderByOptions), ImportJobDetail.JobDataMap.GetString(SettingsConstants.OrderBy)); } orderByComboBox.SelectedItem = selectedOrderBy; orderDescendingRadioButton.Checked = ImportJobDetail.JobDataMap.GetBooleanValue(SettingsConstants.ReverseOrder); inputFilesArePackagesCheckBox.Checked = ImportJobDetail.JobDataMap.GetBooleanValue(SettingsConstants.InputFilesArePackages); pauseIndefinitelyCheckBox.Checked = ImportJobDetail.JobDataMap.GetBooleanValue(SettingsConstants.IndefinitePause); if (ImportTrigger.GetType() == typeof(SimpleTriggerImpl)) { var localTrigger = (SimpleTriggerImpl)ImportTrigger; importJobSimpleTriggerRadioButton.Checked = true; importJobHoursDateTimePicker.Value = DateTime.Now.Date + localTrigger.RepeatInterval; importJobMinutesDateTimePicker.Value = DateTime.Now.Date + localTrigger.RepeatInterval; importJobStartAtDateTimePicker.Value = localTrigger.StartTimeUtc.UtcDateTime.ToLocalTime(); } else if (ImportTrigger.GetType() == typeof(CronTriggerImpl)) { var localTrigger = (CronTriggerImpl)ImportTrigger; importJobCronTriggerRadioButton.Checked = true; importJobCronExpressionTextBox.Text = localTrigger.CronExpressionString; } retriesCountUpDown.Value = ImportJobDetail.JobDataMap.GetInt(SettingsConstants.RetryCount); retriesDelayUpDown.Value = ImportJobDetail.JobDataMap.GetInt(SettingsConstants.RetryDelay); pauseOnExceptionsCheckBox.Checked = ImportJobDetail.JobDataMap.GetBooleanValue(SettingsConstants.PauseJobOnException); importFromPackageTextBox.Text = ImportJobDetail.JobDataMap.GetString(SettingsConstants.ImportFromPackageActionPath) ?? PackageApiActions.ImportFromPackageActionPath; getAzureWriteUrlTextBox.Text = ImportJobDetail.JobDataMap.GetString(SettingsConstants.GetAzureWriteUrlActionPath) ?? PackageApiActions.GetAzureWriteUrlActionPath; multicompanyCheckBox.Checked = ImportJobDetail.JobDataMap.GetBooleanValue(SettingsConstants.MultiCompanyImport); getLegalEntityFromFilenameRadioButton.Checked = ImportJobDetail.JobDataMap.GetBooleanValue(SettingsConstants.GetLegalEntityFromFilename); filenameSeparatorTextBox.Text = ImportJobDetail.JobDataMap.GetString(SettingsConstants.FilenameSeparator); legalEntityTokenPositionNumericUpDown.Value = ImportJobDetail.JobDataMap.GetInt(SettingsConstants.LegalEntityTokenPosition); verboseLoggingCheckBox.Checked = ImportJobDetail.JobDataMap.GetBooleanValue(SettingsConstants.LogVerbose); Properties.Settings.Default.Save(); } if ((ExecutionJobDetail != null) && (ExecutionTrigger != null)) { useMonitoringJobCheckBox.Checked = true; processingSuccessFolderTextBox.Text = ExecutionJobDetail.JobDataMap.GetString(SettingsConstants.ProcessingSuccessDir); processingErrorsFolderTextBox.Text = ExecutionJobDetail.JobDataMap.GetString(SettingsConstants.ProcessingErrorsDir); if (ExecutionTrigger.GetType() == typeof(SimpleTriggerImpl)) { var localTrigger = (SimpleTriggerImpl)ExecutionTrigger; monitoringJobSimpleTriggerRadioButton.Checked = true; monitoringJobHoursDateTimePicker.Value = DateTime.Now.Date + localTrigger.RepeatInterval; monitoringJobMinutesDateTimePicker.Value = DateTime.Now.Date + localTrigger.RepeatInterval; monitoringJobStartAtDateTimePicker.Value = localTrigger.StartTimeUtc.UtcDateTime.ToLocalTime(); } else if (ExecutionTrigger.GetType() == typeof(CronTriggerImpl)) { var localTrigger = (CronTriggerImpl)ExecutionTrigger; monitoringJobCronTriggerRadioButton.Checked = true; monitoringJobCronExpressionTextBox.Text = localTrigger.CronExpressionString; } getExecutionSummaryStatusTextBox.Text = ExecutionJobDetail.JobDataMap.GetString(SettingsConstants.GetExecutionSummaryStatusActionPath) ?? PackageApiActions.GetExecutionSummaryStatusActionPath; getExecutionSummaryPageUrlTextBox.Text = ExecutionJobDetail.JobDataMap.GetString(SettingsConstants.GetExecutionSummaryPageUrlActionPath) ?? PackageApiActions.GetExecutionSummaryPageUrlActionPath; getImportTargetErrorKeysFileUrlTextBox.Text = ExecutionJobDetail.JobDataMap.GetString(SettingsConstants.GetImportTargetErrorKeysFileUrlPath) ?? PackageApiActions.GetImportTargetErrorKeysFileUrlPath; generateImportTargetErrorKeysFileTextBox.Text = ExecutionJobDetail.JobDataMap.GetString(SettingsConstants.GenerateImportTargetErrorKeysFilePath) ?? PackageApiActions.GenerateImportTargetErrorKeysFilePath; getExecutionErrorsTextBox.Text = ExecutionJobDetail.JobDataMap.GetString(SettingsConstants.GetExecutionErrorsPath) ?? PackageApiActions.GetExecutionErrorsPath; downloadErrorKeysFileCheckBox.Checked = ExecutionJobDetail.JobDataMap.GetBooleanValue(SettingsConstants.GetImportTargetErrorKeysFile); getExecutionErrorsCheckBox.Checked = ExecutionJobDetail.JobDataMap.GetBooleanValue(SettingsConstants.GetExecutionErrors); statusCheckDelayNumericUpDown.Value = ExecutionJobDetail.JobDataMap.GetInt(SettingsConstants.DelayBetweenStatusCheck); } FormsHelper.SetDropDownsWidth(this); }