Merge pull request #1 from microsoft/master

Refresh fork from microsoft/Recurring-Integrations-Scheduler
This commit is contained in:
rubenis 2019-12-18 09:53:51 +00:00 коммит произвёл GitHub
Родитель b8e6e0195f 11fc8a6058
Коммит 272cd0cbf1
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
72 изменённых файлов: 2604 добавлений и 2371 удалений

Просмотреть файл

@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RecurringIntegrationsScheduler.Common</RootNamespace>
<AssemblyName>RecurringIntegrationsScheduler.Common</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
@ -23,6 +23,7 @@
<WarningLevel>4</WarningLevel>
<RunCodeAnalysis>false</RunCodeAnalysis>
<CodeAnalysisIgnoreGeneratedCode>false</CodeAnalysisIgnoreGeneratedCode>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -31,6 +32,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
@ -49,6 +51,7 @@
</Compile>
<Compile Include="Contracts\ContractEnums.cs" />
<Compile Include="Contracts\OdataActionsConstants.cs" />
<Compile Include="Helpers\AuthenticationHelper.cs" />
<Compile Include="Helpers\FileOperationsHelper.cs" />
<Compile Include="JobSettings\ExportJobSettings.cs" />
<Compile Include="JobSettings\ImportJobSettings.cs" />
@ -63,7 +66,6 @@
<Compile Include="Contracts\DequeueResponse.cs" />
<Compile Include="Contracts\DataMessage.cs" />
<Compile Include="Contracts\SettingsConstants.cs" />
<Compile Include="Helpers\AuthenticationHelper.cs" />
<Compile Include="Helpers\EncryptDecrypt.cs" />
<Compile Include="Helpers\Extensions.cs" />
<Compile Include="Helpers\HttpClientHelper.cs" />
@ -81,14 +83,14 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.IdentityModel.Clients.ActiveDirectory">
<Version>3.19.8</Version>
<PackageReference Include="Microsoft.Identity.Client">
<Version>4.7.1</Version>
</PackageReference>
<PackageReference Include="Newtonsoft.Json">
<Version>11.0.2</Version>
<Version>12.0.3</Version>
</PackageReference>
<PackageReference Include="Polly">
<Version>6.1.0</Version>
<Version>7.2.0</Version>
</PackageReference>
<PackageReference Include="Quartz">
<Version>3.0.7</Version>

Просмотреть файл

@ -6,7 +6,7 @@ namespace RecurringIntegrationsScheduler.Common.Contracts
/// <summary>
/// Class holding all constant values related to the Odata actions used in this solution
/// </summary>
public class OdataActionsConstants
public static class OdataActionsConstants
{
public const string GetAzureWriteUrlActionPath = "data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.GetAzureWriteUrl";
public const string GetExecutionSummaryStatusActionPath = "data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.GetExecutionSummaryStatus";
@ -17,6 +17,8 @@ namespace RecurringIntegrationsScheduler.Common.Contracts
public const string ExportToPackageActionPath = "data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.ExportToPackage";
public const string ExportFromPackageActionPath = "data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.ExportFromPackage";
public const string GetMessageStatusActionPath = "data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.GetMessageStatus";
public const string GetImportTargetErrorKeysFileUrlPath = "data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.GetImportTargetErrorKeysFileUrl";
public const string GenerateImportTargetErrorKeysFilePath = "data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.GenerateImportTargetErrorKeysFile";
}
}

Просмотреть файл

@ -8,7 +8,6 @@ namespace RecurringIntegrationsScheduler.Common.Contracts
/// </summary>
public static class SettingsConstants
{
#region Common settings
/// <summary>
/// The AOS URI
/// </summary>
@ -55,10 +54,15 @@ namespace RecurringIntegrationsScheduler.Common.Contracts
public const string ActivityId = "ActivityId";
/// <summary>
/// The execution interval
/// The delay between files processing
/// </summary>
public const string Interval = "Interval";
/// <summary>
/// The delay between status check of export job
/// </summary>
public const string StatusCheckInterval = "StatusCheckInterval";
/// <summary>
/// The retry count
/// </summary>
@ -124,6 +128,16 @@ namespace RecurringIntegrationsScheduler.Common.Contracts
/// </summary>
public const string GetMessageStatusActionPath = "GetMessageStatusActionPath";
/// <summary>
/// The relative path to the GenerateImportTargetErrorKeysFile Odata action
/// </summary>
public const string GenerateImportTargetErrorKeysFilePath = "GenerateImportTargetErrorKeysFilePath";
/// <summary>
/// The relative path to the GetImportTargetErrorKeysFileUrl Odata action
/// </summary>
public const string GetImportTargetErrorKeysFileUrlPath = "GetImportTargetErrorKeysFileUrlPath";
/// <summary>
/// The download job
/// </summary>
@ -153,9 +167,7 @@ namespace RecurringIntegrationsScheduler.Common.Contracts
/// The execution monitor job
/// </summary>
public const string ExecutionJob = "RecurringIntegrationsScheduler.Job.ExecutionMonitor";
#endregion
#region Upload Job settings
/// <summary>
/// Input folder
/// </summary>
@ -210,9 +222,7 @@ namespace RecurringIntegrationsScheduler.Common.Contracts
/// Reverse order
/// </summary>
public const string ReverseOrder = "ReverseOrder";
#endregion
#region Processing Job settings
/// <summary>
/// Processing success folder
/// </summary>
@ -222,9 +232,7 @@ namespace RecurringIntegrationsScheduler.Common.Contracts
/// Processing errors folder
/// </summary>
public const string ProcessingErrorsDir = "ProcessingErrorsDir";
#endregion
#region Download Job settings
/// <summary>
/// Download success folder
/// </summary>
@ -254,9 +262,7 @@ namespace RecurringIntegrationsScheduler.Common.Contracts
/// Upload in order
/// </summary>
public const string UploadInOrder = "UploadInOrder";
#endregion
#region Import Job settings
/// <summary>
/// Is execution job present
/// </summary>
@ -282,6 +288,9 @@ namespace RecurringIntegrationsScheduler.Common.Contracts
/// </summary>
public const string PackageTemplate = "PackageTemplate";
#endregion
/// <summary>
/// Get import target error keys file
/// </summary>
public const string GetImportTargetErrorKeysFile = "GetImportTargetErrorKeysFile";
}
}

Просмотреть файл

@ -1,11 +1,12 @@
/* Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. */
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Polly;
using Microsoft.Identity.Client;
using Polly.Retry;
using RecurringIntegrationsScheduler.Common.JobSettings;
using System;
using System.Net.Http.Headers;
using System.Linq;
using System.Security;
using System.Threading.Tasks;
namespace RecurringIntegrationsScheduler.Common.Helpers
@ -17,14 +18,14 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
{
private readonly Settings _settings;
private string _authorizationHeader;
private readonly Policy _retryPolicy;
private readonly AsyncRetryPolicy _retryPolicy;
/// <summary>
/// Initializes a new instance of the <see cref="AuthenticationHelper"/> class.
/// </summary>
/// <param name="jobSettings">Job settings</param>
/// <param name="retryPolicy">Retry policy</param>
public AuthenticationHelper(Settings jobSettings, Policy retryPolicy)
public AuthenticationHelper(Settings jobSettings, Polly.Retry.AsyncRetryPolicy retryPolicy)
{
_settings = jobSettings;
_retryPolicy = retryPolicy;
@ -47,32 +48,41 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
if (!string.IsNullOrEmpty(_authorizationHeader) &&
(DateTime.UtcNow.AddSeconds(60) < AuthenticationResult.ExpiresOn)) return _authorizationHeader;
var uri = new UriBuilder(_settings.AzureAuthEndpoint)
{
Path = _settings.AadTenant
};
var aosUriAuthUri = new Uri(_settings.AosUri);
string aosUriAuth = aosUriAuthUri.GetLeftPart(UriPartial.Authority);
//var authenticationContext = new AuthenticationContext(uri.ToString());
var authenticationContext = new AuthenticationContext(uri.ToString(), validateAuthority: false);
IConfidentialClientApplication appConfidential;
IPublicClientApplication appPublic;
var aosUriAuthUri = new Uri(_settings.AosUri);
string authority = "https://login.microsoftonline.com/"+ _settings.AadTenant;
string[] scopes = new string[] { aosUriAuthUri.AbsoluteUri + ".default" };
if (_settings.UseServiceAuthentication)
{
var credentials = new ClientCredential(_settings.AadClientId.ToString(), _settings.AadClientSecret);
//AuthenticationResult = await _retryPolicy.ExecuteAsync(() => authenticationContext.AcquireTokenAsync(_settings.AosUri, credentials));
AuthenticationResult = await _retryPolicy.ExecuteAsync(() => authenticationContext.AcquireTokenAsync(aosUriAuth, credentials));
appConfidential = ConfidentialClientApplicationBuilder.Create(_settings.AadClientId.ToString())
.WithClientSecret(_settings.AadClientSecret)
.WithAuthority(authority)
.Build();
AuthenticationResult = await _retryPolicy.ExecuteAsync(() => appConfidential.AcquireTokenForClient(scopes).ExecuteAsync());
}
else
{
var credentials = new UserPasswordCredential(_settings.UserName, _settings.UserPassword);
appPublic = PublicClientApplicationBuilder.Create(_settings.AadClientId.ToString())
.WithAuthority(authority)
.Build();
var accounts = await _retryPolicy.ExecuteAsync(() => appPublic.GetAccountsAsync());
//AuthenticationResult = await _retryPolicy.ExecuteAsync(() => authenticationContext.AcquireTokenAsync(_settings.AosUri, _settings.AadClientId.ToString(), credentials));
AuthenticationResult = await _retryPolicy.ExecuteAsync(() => authenticationContext.AcquireTokenAsync(aosUriAuth, _settings.AadClientId.ToString(), credentials));
if (accounts.Any())
{
AuthenticationResult = await _retryPolicy.ExecuteAsync(() => appPublic.AcquireTokenSilent(scopes, accounts.FirstOrDefault()).ExecuteAsync());
}
else
{
using var securePassword = new SecureString();
foreach (char c in _settings.UserPassword)
securePassword.AppendChar(c);
AuthenticationResult = await _retryPolicy.ExecuteAsync(() => appPublic.AcquireTokenByUsernamePassword(scopes, _settings.UserName, securePassword).ExecuteAsync());
}
}
return _authorizationHeader = AuthenticationResult.CreateAuthorizationHeader();
}
@ -80,25 +90,12 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
/// Gets valid authentication header
/// </summary>
/// <returns>
/// AuthenticationHeaderValue object
/// string
/// </returns>
public async Task<AuthenticationHeaderValue> GetValidAuthenticationHeader()
public async Task<string> GetValidAuthenticationHeader()
{
_authorizationHeader = await AuthorizationHeader();
return ParseAuthenticationHeader(_authorizationHeader);
}
/// <summary>
/// Parses authentication header.
/// </summary>
/// <param name="authorizationHeader">Authorization header.</param>
/// <returns>AuthenticationHeaderValue object</returns>
private static AuthenticationHeaderValue ParseAuthenticationHeader(string authorizationHeader)
{
var split = authorizationHeader.Split(' ');
var scheme = split[0];
var parameter = split[1];
return new AuthenticationHeaderValue(scheme, parameter);
return _authorizationHeader;
}
}
}

Просмотреть файл

@ -61,11 +61,9 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
throw new DirectoryNotFoundException();
Directory.CreateDirectory(targetDirectoryName);
using (var fileStream = File.Create(filePath))
{
sourceStream.Seek(0, SeekOrigin.Begin);
sourceStream.CopyTo(fileStream);
}
using var fileStream = File.Create(filePath);
sourceStream.Seek(0, SeekOrigin.Begin);
sourceStream.CopyTo(fileStream);
}
/// <summary>
@ -269,10 +267,8 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
}
var statusData = JsonConvert.SerializeObject(dataMessage, Formatting.Indented, new StringEnumConverter());
using (var statusFileMemoryStream = new MemoryStream(Encoding.Default.GetBytes(statusData)))
{
Create(statusFileMemoryStream, Path.Combine(Path.GetDirectoryName(dataMessage.FullPath) ?? throw new InvalidOperationException(), Path.GetFileNameWithoutExtension(dataMessage.FullPath) + statusFileExtension));
}
using var statusFileMemoryStream = new MemoryStream(Encoding.Default.GetBytes(statusData));
Create(statusFileMemoryStream, Path.Combine(Path.GetDirectoryName(dataMessage.FullPath) ?? throw new InvalidOperationException(), Path.GetFileNameWithoutExtension(dataMessage.FullPath) + statusFileExtension));
}
/// <summary>
@ -290,10 +286,8 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
var logFilePath = Path.Combine(Path.GetDirectoryName(targetDataMessage.FullPath) ?? throw new InvalidOperationException(), Path.GetFileNameWithoutExtension(targetDataMessage.FullPath) + statusFileExtension);
var logData = JsonConvert.SerializeObject(httpResponse, Formatting.Indented, new StringEnumConverter());
using (var logMemoryStream = new MemoryStream(Encoding.Default.GetBytes(logData)))
{
Create(logMemoryStream, logFilePath);
}
using var logMemoryStream = new MemoryStream(Encoding.Default.GetBytes(logData));
Create(logMemoryStream, logFilePath);
}
/// <summary>
@ -325,10 +319,8 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
logData = Resources.Unknown_error;
}
using (var logMemoryStream = new MemoryStream(Encoding.Default.GetBytes(logData)))
{
Create(logMemoryStream, logFilePath);
}
using var logMemoryStream = new MemoryStream(Encoding.Default.GetBytes(logData));
Create(logMemoryStream, logFilePath);
}
}
}

Просмотреть файл

@ -3,7 +3,7 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Polly;
using Polly.Retry;
using RecurringIntegrationsScheduler.Common.JobSettings;
using RecurringIntegrationsScheduler.Common.Properties;
using System;
@ -22,20 +22,15 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
private readonly Settings _settings;
private readonly HttpClient _httpClient;
private readonly AuthenticationHelper _authenticationHelper;
private Uri _enqueueUri;
private Uri _dequeueUri;
private Uri _ackUri;
private bool _disposed;
private readonly Policy _retryPolicy;
private readonly AsyncRetryPolicy _retryPolicy;
/// <summary>
/// Initializes a new instance of the <see cref="HttpClientHelper"/> class.
/// </summary>
/// <param name="jobSettings">Job settings</param>
/// <param name="retryPolicy">Retry policy</param>
public HttpClientHelper(Settings jobSettings, Policy retryPolicy)
public HttpClientHelper(Settings jobSettings, Polly.Retry.AsyncRetryPolicy retryPolicy)
{
_settings = jobSettings;
_retryPolicy = retryPolicy;
@ -67,7 +62,7 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
public async Task<HttpResponseMessage> PostStreamRequestAsync(Uri uri, Stream bodyStream, string externalCorrelationHeaderValue = null)
{
_httpClient.DefaultRequestHeaders.Clear();
_httpClient.DefaultRequestHeaders.Authorization = await _authenticationHelper.GetValidAuthenticationHeader();
_httpClient.DefaultRequestHeaders.Add("Authorization", await _authenticationHelper.GetValidAuthenticationHeader());
// Add external correlation id header if specified and valid
if (!string.IsNullOrEmpty(externalCorrelationHeaderValue))
@ -99,7 +94,7 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
public async Task<HttpResponseMessage> PostStringRequestAsync(Uri uri, string bodyString, string externalCorrelationHeaderValue = null)
{
_httpClient.DefaultRequestHeaders.Clear();
_httpClient.DefaultRequestHeaders.Authorization = await _authenticationHelper.GetValidAuthenticationHeader();
_httpClient.DefaultRequestHeaders.Add("Authorization", await _authenticationHelper.GetValidAuthenticationHeader());
_httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// Add external correlation id header if specified and valid
@ -133,7 +128,7 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
_httpClient.DefaultRequestHeaders.Clear();
if(addAuthorization)
{
_httpClient.DefaultRequestHeaders.Authorization = await _authenticationHelper.GetValidAuthenticationHeader();
_httpClient.DefaultRequestHeaders.Add("Authorization", await _authenticationHelper.GetValidAuthenticationHeader());
}
return await _retryPolicy.ExecuteAsync(() => _httpClient.GetAsync(uri));
}
@ -144,32 +139,29 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
/// <returns>
/// Data job enqueue request Uri
/// </returns>
public Uri GetEnqueueUri()
public Uri GetEnqueueUri(string legalEntity = null)
{
if (_enqueueUri != null)
return _enqueueUri;
var uploadSettings = _settings as UploadJobSettings;
var enqueueUri = new UriBuilder(GetAosRequestUri("api/connector/enqueue/" + uploadSettings.ActivityId));
if (_settings is UploadJobSettings uploadSettings)
if (!string.IsNullOrEmpty(legalEntity))
{
var enqueueUri = new UriBuilder(GetAosRequestUri("api/connector/enqueue/" + uploadSettings.ActivityId));
if (uploadSettings.IsDataPackage)
{
if (!string.IsNullOrEmpty(uploadSettings.Company))
enqueueUri.Query = "company=" + uploadSettings.Company;
}
else // Individual file
{
// entity name is required
var enqueueQuery = "entity=" + uploadSettings.EntityName;
// Append company if it is specified
if (!string.IsNullOrEmpty(uploadSettings.Company))
enqueueQuery += "&company=" + uploadSettings.Company;
enqueueUri.Query = enqueueQuery;
}
return _enqueueUri = enqueueUri.Uri;
enqueueUri.Query = "company=" + legalEntity;
}
return null;
else
{
if (!string.IsNullOrEmpty(uploadSettings.Company))
{
enqueueUri.Query = "company=" + uploadSettings.Company;
}
}
if (!uploadSettings.IsDataPackage)// Individual file
{
// entity name is required
enqueueUri.Query += "entity=" + uploadSettings.EntityName;
}
return enqueueUri.Uri;
}
/// <summary>
@ -180,15 +172,8 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
/// </returns>
public Uri GetDequeueUri()
{
if (_dequeueUri != null)
return _dequeueUri;
if (_settings is DownloadJobSettings downloadSettings)
{
var dequeueUri = new UriBuilder(GetAosRequestUri("api/connector/dequeue/" + downloadSettings.ActivityId));
return _dequeueUri = dequeueUri.Uri;
}
return null;
var downloadSettings = _settings as DownloadJobSettings;
return new UriBuilder(GetAosRequestUri("api/connector/dequeue/" + downloadSettings.ActivityId)).Uri;
}
/// <summary>
@ -199,15 +184,8 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
/// </returns>
public Uri GetAckUri()
{
if (_ackUri != null)
return _ackUri;
if (_settings is DownloadJobSettings downloadSettings)
{
var acknowledgeUri = new UriBuilder(GetAosRequestUri("api/connector/ack/" + downloadSettings.ActivityId));
return _ackUri = acknowledgeUri.Uri;
}
return null;
var downloadSettings = _settings as DownloadJobSettings;
return new UriBuilder(GetAosRequestUri("api/connector/ack/" + downloadSettings.ActivityId)).Uri;
}
/// <summary>
@ -219,15 +197,12 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
/// </returns>
public Uri GetJobStatusUri(string jobId)
{
if (_settings is ProcessingJobSettings processingJobSettings)
var processingJobSettings = _settings as ProcessingJobSettings;
var jobStatusUri = new UriBuilder(GetAosRequestUri("api/connector/jobstatus/" + processingJobSettings.ActivityId))
{
var jobStatusUri = new UriBuilder(GetAosRequestUri("api/connector/jobstatus/" + processingJobSettings.ActivityId))
{
Query = "jobId=" + jobId.Replace(@"""", "")
};
return jobStatusUri.Uri;
}
return null;
Query = "jobId=" + jobId.Replace(@"""", "")
};
return jobStatusUri.Uri;
}
/// <summary>
@ -469,15 +444,73 @@ namespace RecurringIntegrationsScheduler.Common.Helpers
}
/// <summary>
/// Generate error keys file for data entity import
/// </summary>
/// <param name="executionId">Execution Id</param>
/// <param name="entityName">Entity name</param>
/// <returns></returns>
public async Task<bool> GenerateImportTargetErrorKeysFile(string executionId, string entityName)
{
var requestUri = GetAosRequestUri(_settings.GenerateImportTargetErrorKeysFilePath);
var parameters = new
{
executionId,
entityName
};
string parametersJson = JsonConvert.SerializeObject(parameters, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto });
var response = await PostStringRequestAsync(requestUri, parametersJson);
if (response.IsSuccessStatusCode)
{
string result = response.Content.ReadAsStringAsync().Result;
JObject jsonResponse = (JObject)JsonConvert.DeserializeObject(result);
return Convert.ToBoolean(jsonResponse["value"].ToString());
}
else
{
return false;
}
}
/// <summary>
/// Get error keys file URL for data entity import
/// </summary>
/// <param name="executionId">Execution Id</param>
/// <param name="entityName">Entity name</param>
/// <returns></returns>
public async Task<string> GetImportTargetErrorKeysFileUrl(string executionId, string entityName)
{
var requestUri = GetAosRequestUri(_settings.GetImportTargetErrorKeysFileUrlPath);
var parameters = new
{
executionId,
entityName
};
string parametersJson = JsonConvert.SerializeObject(parameters, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto });
var response = await PostStringRequestAsync(requestUri, parametersJson);
if (response.IsSuccessStatusCode)
{
string result = response.Content.ReadAsStringAsync().Result;
JObject jsonResponse = (JObject)JsonConvert.DeserializeObject(result);
return jsonResponse["value"].ToString();
}
else
{
return "";
}
}
private Uri GetAosRequestUri(string requestRelativePath)
{
var aosUri = new Uri(_settings.AosUri);
var builder = new UriBuilder(aosUri)
{
Path = string.Concat(aosUri.AbsolutePath.TrimEnd('/'), "/", requestRelativePath.TrimStart('/'))
};
return builder.Uri;
}
{
var aosUri = new Uri(_settings.AosUri);
var builder = new UriBuilder(aosUri)
{
Path = string.Concat(aosUri.AbsolutePath.TrimEnd('/'), "/", requestRelativePath.TrimStart('/'))
};
return builder.Uri;
}
/// <summary>
/// Dispose

Просмотреть файл

@ -84,6 +84,12 @@ namespace RecurringIntegrationsScheduler.Common.JobSettings
{
throw new JobExecutionException(string.Format(CultureInfo.InvariantCulture, Resources.Extension_of_status_files_is_missing_in_job_configuration));
}
GetImportTargetErrorKeysFile = Convert.ToBoolean(dataMap.GetString(SettingsConstants.GetImportTargetErrorKeysFile));
PackageTemplate = dataMap.GetString(SettingsConstants.PackageTemplate);
StatusCheckInterval = dataMap.GetInt(SettingsConstants.StatusCheckInterval);
}
#region Members
@ -120,6 +126,30 @@ namespace RecurringIntegrationsScheduler.Common.JobSettings
/// </value>
public string StatusFileExtension { get; private set; }
/// <summary>
/// Gets a value indicating whether to download [error keys file].
/// </summary>
/// <value>
/// <c>true</c> if [GetImportTargetErrorKeysFile] is set otherwise, <c>false</c>.
/// </value>
public bool GetImportTargetErrorKeysFile { get; private set; }
/// <summary>
/// Package template location.
/// </summary>
/// <value>
/// Package template location.
/// </value>
public string PackageTemplate { get; private set; }
/// <summary>
/// Gets or sets delay between status check.
/// </summary>
/// <value>
/// Delay between status checks.
/// </value>
public int StatusCheckInterval { get; private set; }
#endregion
}
}

Просмотреть файл

@ -81,6 +81,12 @@ namespace RecurringIntegrationsScheduler.Common.JobSettings
{
throw new JobExecutionException(string.Format(CultureInfo.InvariantCulture, Resources.Company_is_missing_in_job_configuration));
}
StatusCheckInterval = dataMap.GetInt(SettingsConstants.StatusCheckInterval);
if (StatusCheckInterval < 1) //Default status check interval is 1 second.
{
StatusCheckInterval = 1;
}
}
#region Members
@ -141,6 +147,14 @@ namespace RecurringIntegrationsScheduler.Common.JobSettings
/// </value>
public string Company { get; private set; }
/// <summary>
/// Gets or sets delay between status check.
/// </summary>
/// <value>
/// Delay between status checks.
/// </value>
public int StatusCheckInterval { get; private set; }
#endregion
}
}

Просмотреть файл

@ -242,7 +242,7 @@ namespace RecurringIntegrationsScheduler.Common.JobSettings
/// Package template location.
/// </value>
public string PackageTemplate { get; private set; }
#endregion
}
}

Просмотреть файл

@ -92,6 +92,8 @@ namespace RecurringIntegrationsScheduler.Common.JobSettings
{
throw new JobExecutionException(string.Format(CultureInfo.InvariantCulture, Resources.Extension_of_status_files_is_missing_in_job_configuration));
}
StatusCheckInterval = dataMap.GetInt(SettingsConstants.StatusCheckInterval);
}
#region Members
@ -136,6 +138,14 @@ namespace RecurringIntegrationsScheduler.Common.JobSettings
/// </value>
public string StatusFileExtension { get; private set; }
/// <summary>
/// Gets or sets delay between status check.
/// </summary>
/// <value>
/// Delay between status checks.
/// </value>
public int StatusCheckInterval { get; private set; }
#endregion
}
}

Просмотреть файл

@ -80,9 +80,9 @@ namespace RecurringIntegrationsScheduler.Common.JobSettings
}
Interval = dataMap.GetInt(SettingsConstants.Interval);
if (Interval < 100) //Default execution interval is 100 ms.
if (Interval < 1) //Default execution interval is 1 second.
{
Interval = 100;
Interval = 1;
}
RetryCount = dataMap.GetInt(SettingsConstants.RetryCount);
@ -154,6 +154,18 @@ namespace RecurringIntegrationsScheduler.Common.JobSettings
{
GetMessageStatusActionPath = OdataActionsConstants.GetMessageStatusActionPath;
}
GetImportTargetErrorKeysFileUrlPath = dataMap.GetString(SettingsConstants.GetImportTargetErrorKeysFileUrlPath);
if (string.IsNullOrEmpty(GetImportTargetErrorKeysFileUrlPath))
{
GetImportTargetErrorKeysFileUrlPath = OdataActionsConstants.GetImportTargetErrorKeysFileUrlPath;
}
GenerateImportTargetErrorKeysFilePath = dataMap.GetString(SettingsConstants.GenerateImportTargetErrorKeysFilePath);
if (string.IsNullOrEmpty(GenerateImportTargetErrorKeysFilePath))
{
GenerateImportTargetErrorKeysFilePath = OdataActionsConstants.GenerateImportTargetErrorKeysFilePath;
}
}
#region Members
@ -334,6 +346,23 @@ namespace RecurringIntegrationsScheduler.Common.JobSettings
/// </value>
public string GetMessageStatusActionPath { get; private set; } = OdataActionsConstants.GetMessageStatusActionPath;
/// <summary>
/// Get the GetImportTargetErrorKeysFileUrl Odata action relative path
/// </summary>
/// <value>
/// The relative path to the GetImportTargetErrorKeysFileUrl Odata action
/// </value>
public string GetImportTargetErrorKeysFileUrlPath { get; private set; } = OdataActionsConstants.GetImportTargetErrorKeysFileUrlPath;
/// <summary>
/// Get the GenerateImportTargetErrorKeysFile Odata action relative path
/// </summary>
/// <value>
/// The relative path to the GenerateImportTargetErrorKeysFile Odata action
/// </value>
public string GenerateImportTargetErrorKeysFilePath { get; private set; } = OdataActionsConstants.GenerateImportTargetErrorKeysFilePath;
#endregion
}
}

Просмотреть файл

@ -71,7 +71,7 @@ namespace RecurringIntegrationsScheduler.Job
/// <summary>
/// Retry policy for HTTP operations
/// </summary>
private Policy _retryPolicyForHttp;
private Polly.Retry.AsyncRetryPolicy _retryPolicyForHttp;
/// <summary>
/// Called by the <see cref="T:Quartz.IScheduler" /> when a <see cref="T:Quartz.ITrigger" />
@ -142,7 +142,7 @@ namespace RecurringIntegrationsScheduler.Job
}
else
{
Log.Error("Uknown exception", ex);
Log.Error("Unknown exception", ex);
}
while (ex.InnerException != null)
@ -207,7 +207,6 @@ namespace RecurringIntegrationsScheduler.Job
throw new JobExecutionException(string.Format(CultureInfo.InvariantCulture, string.Format(Resources.Job_0_Failure_response_Status_1_2_Reason_3, _context.JobDetail.Key, response.StatusCode, response.StatusCode, response.ReasonPhrase)));
}
System.Threading.Thread.Sleep(_settings.Interval);
}
if (!DownloadQueue.IsEmpty)
{
@ -226,7 +225,6 @@ namespace RecurringIntegrationsScheduler.Job
/// <exception cref="System.Exception"></exception>
private async Task ProcessDownloadQueue()
{
//Stream downloadedStream = null;
var fileCount = 0;
while (DownloadQueue.TryDequeue(out DataMessage dataMessage))
{
@ -237,7 +235,12 @@ namespace RecurringIntegrationsScheduler.Job
using (var downloadedStream = await response.Content.ReadAsStreamAsync())
{
if(fileCount > 0 && _settings.Interval > 0) //Only delay after first file and never after last.
{
System.Threading.Thread.Sleep(_settings.Interval * 1000);
}
fileCount++;
//Downloaded file has no file name. We need to create it.
//It will be timestamp followed by number in this download batch.
var fileName = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss-ffff}-{fileCount:D6}";
@ -256,8 +259,6 @@ namespace RecurringIntegrationsScheduler.Job
if (_settings.UnzipPackage)
_retryPolicyForIo.Execute(() => FileOperationsHelper.UnzipPackage(dataMessage.FullPath, _settings.DeletePackage, _settings.AddTimestamp));
System.Threading.Thread.Sleep(_settings.Interval);
}
}

Просмотреть файл

@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RecurringIntegrationsScheduler.Job</RootNamespace>
<AssemblyName>RecurringIntegrationsScheduler.Job.Download</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
@ -24,6 +24,7 @@
<Prefer32Bit>false</Prefer32Bit>
<CodeAnalysisIgnoreGeneratedCode>false</CodeAnalysisIgnoreGeneratedCode>
<RunCodeAnalysis>false</RunCodeAnalysis>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -33,17 +34,18 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Polly, Version=6.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.6.1.0\lib\netstandard2.0\Polly.dll</HintPath>
<Reference Include="Polly, Version=7.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.7.2.0\lib\net472\Polly.dll</HintPath>
</Reference>
<Reference Include="Quartz, Version=3.0.7.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
<HintPath>..\packages\Quartz.3.0.7\lib\net452\Quartz.dll</HintPath>

Просмотреть файл

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.8" targetFramework="net46" />
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="net46" />
<package id="Polly" version="6.1.0" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
<package id="Polly" version="7.2.0" targetFramework="net472" />
<package id="Quartz" version="3.0.7" targetFramework="net461" />
</packages>

Просмотреть файл

@ -4,16 +4,20 @@
using log4net;
using Polly;
using Quartz;
using Quartz.Util;
using RecurringIntegrationsScheduler.Common.Contracts;
using RecurringIntegrationsScheduler.Common.Helpers;
using RecurringIntegrationsScheduler.Common.JobSettings;
using RecurringIntegrationsScheduler.Job.Properties;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.IO.Compression;
using System.Net.Http;
using System.Threading.Tasks;
using System.Xml;
namespace RecurringIntegrationsScheduler.Job
{
@ -62,7 +66,7 @@ namespace RecurringIntegrationsScheduler.Job
/// <summary>
/// Retry policy for HTTP operations
/// </summary>
private Policy _retryPolicyForHttp;
private Polly.Retry.AsyncRetryPolicy _retryPolicyForHttp;
/// <summary>
/// Called by the <see cref="T:Quartz.IScheduler" /> when a <see cref="T:Quartz.ITrigger" />
@ -132,7 +136,7 @@ namespace RecurringIntegrationsScheduler.Job
}
else
{
Log.Error("Uknown exception", ex);
Log.Error("Unknown exception", ex);
}
while (ex.InnerException != null)
@ -177,18 +181,23 @@ namespace RecurringIntegrationsScheduler.Job
/// <returns></returns>
private async Task ProcessEnqueuedQueue()
{
var fileCount = 0;
_httpClientHelper = new HttpClientHelper(_settings, _retryPolicyForHttp);
while (EnqueuedJobs.TryDequeue(out DataMessage dataMessage))
{
if (fileCount > 0 && _settings.StatusCheckInterval > 0) //Only delay after first file and never after last.
{
System.Threading.Thread.Sleep(_settings.StatusCheckInterval * 1000);
}
fileCount++;
// Check status for current item with message id - item.Key
var jobStatusDetail = await _httpClientHelper.GetExecutionSummaryStatus(dataMessage.MessageId);
// If status was found and is not null,
if (jobStatusDetail != null)
PostProcessMessage(jobStatusDetail, dataMessage);
System.Threading.Thread.Sleep(_settings.Interval);
await PostProcessMessage(jobStatusDetail, dataMessage);
}
}
@ -198,8 +207,11 @@ namespace RecurringIntegrationsScheduler.Job
/// </summary>
/// <param name="executionStatus">Execution status</param>
/// <param name="dataMessage">Name of the file whose status is being processed</param>
private void PostProcessMessage(string executionStatus, DataMessage dataMessage)
private async Task PostProcessMessage(string executionStatus, DataMessage dataMessage)
{
if (Log.IsDebugEnabled)
Log.DebugFormat(CultureInfo.InvariantCulture,
string.Format(Resources.Job_0_ExecutionId_1_status_check_returned_2, _context.JobDetail.Key, dataMessage.MessageId, executionStatus));
switch (executionStatus)
{
case "Succeeded":
@ -207,7 +219,7 @@ namespace RecurringIntegrationsScheduler.Job
// Move message file and delete processing status file
var processingSuccessDestination = Path.Combine(_settings.ProcessingSuccessDir, dataMessage.Name);
_retryPolicyForIo.Execute(() => FileOperationsHelper.MoveDataToTarget(dataMessage.FullPath, processingSuccessDestination, true, _settings.StatusFileExtension));
CreateLinkToExecutionSummaryPage(dataMessage.MessageId, processingSuccessDestination);
await CreateLinkToExecutionSummaryPage(dataMessage.MessageId, processingSuccessDestination);
}
break;
case "Unknown":
@ -217,7 +229,56 @@ namespace RecurringIntegrationsScheduler.Job
{
var processingErrorDestination = Path.Combine(_settings.ProcessingErrorsDir, dataMessage.Name);
_retryPolicyForIo.Execute(() => FileOperationsHelper.MoveDataToTarget(dataMessage.FullPath, processingErrorDestination, true, _settings.StatusFileExtension));
CreateLinkToExecutionSummaryPage(dataMessage.MessageId, processingErrorDestination);
await CreateLinkToExecutionSummaryPage(dataMessage.MessageId, processingErrorDestination);
if (_settings.GetImportTargetErrorKeysFile)
{
if (Log.IsDebugEnabled)
{
Log.DebugFormat(CultureInfo.InvariantCulture, string.Format(Resources.Job_0_Checking_if_error_keys_file_was_generated, _context.JobDetail.Key));
}
var fileWithManifest = processingErrorDestination;
if(!string.IsNullOrEmpty(_settings.PackageTemplate))
{
fileWithManifest = _settings.PackageTemplate;
}
var entitiesInPackage = GetEntitiesNamesInPackage(fileWithManifest);
foreach(var entity in entitiesInPackage)
{
if (Log.IsDebugEnabled)
{
Log.DebugFormat(CultureInfo.InvariantCulture, string.Format(Resources.Job_0_Checking_for_error_keys_for_data_entity_1, _context.JobDetail.Key, entity));
}
var errorsExist = await _httpClientHelper.GenerateImportTargetErrorKeysFile(dataMessage.MessageId, entity);
if (errorsExist)
{
string errorFileUrl;
do
{
errorFileUrl = await _httpClientHelper.GetImportTargetErrorKeysFileUrl(dataMessage.MessageId, entity);
if (errorFileUrl.Length == 0)
{
System.Threading.Thread.Sleep(_settings.Interval);
}
}
while (string.IsNullOrEmpty(errorFileUrl));
var response = await _httpClientHelper.GetRequestAsync(new UriBuilder(errorFileUrl).Uri, false);
if (!response.IsSuccessStatusCode)
throw new JobExecutionException(string.Format(Resources.Job_0_download_of_error_keys_file_failed_1, _context.JobDetail.Key, string.Format($"Status: {response.StatusCode}. Message: {response.Content}")));
using Stream downloadedStream = await response.Content.ReadAsStreamAsync();
var errorsFileName = $"{Path.GetFileNameWithoutExtension(dataMessage.Name)}-{entity}-ErrorKeys-{DateTime.Now:yyyy-MM-dd_HH-mm-ss-ffff}.txt";
var errorsFilePath = Path.Combine(_settings.ProcessingErrorsDir, errorsFileName);
var dataMessageForErrorsFile = new DataMessage()
{
FullPath = errorsFilePath,
Name = errorsFileName,
MessageStatus = MessageStatus.Failed
};
_retryPolicyForIo.Execute(() => FileOperationsHelper.Create(downloadedStream, dataMessageForErrorsFile.FullPath));
}
}
}
}
break;
default: //"NotRun", "Executing"
@ -225,7 +286,7 @@ namespace RecurringIntegrationsScheduler.Job
}
}
private async void CreateLinkToExecutionSummaryPage(string messageId, string filePath)
private async Task CreateLinkToExecutionSummaryPage(string messageId, string filePath)
{
var directoryName = Path.GetDirectoryName(filePath);
if (directoryName == null)
@ -242,5 +303,46 @@ namespace RecurringIntegrationsScheduler.Job
_streamWriter.Flush();
}
}
/// <summary>
/// Reads the Manifest.xml file of the datapackage to get entity names to query for error key file
/// </summary>
/// <param name="filename">The data package file</param>
/// <returns>Entities list</returns>
private List<string> GetEntitiesNamesInPackage(string fileName)
{
if (Log.IsDebugEnabled)
{
Log.DebugFormat(CultureInfo.InvariantCulture, string.Format(Resources.Job_0_Looking_for_data_entities_in_manifest_file_1, _context.JobDetail.Key, fileName));
}
var enitiesList = new List<string>();
using (var package = ZipFile.OpenRead(fileName))
{
foreach (var entry in package.Entries)
{
if (entry.FullName.Equals("Manifest.xml", StringComparison.OrdinalIgnoreCase))
{
var manifestPath = Path.Combine(Path.GetTempPath(), $"{_context.JobDetail.Key}-{entry.FullName}");
entry.ExtractToFile(manifestPath, true);
var doc = new XmlDocument();
XmlNodeList entities;
using (var manifestFile = new StreamReader(manifestPath))
{
doc.Load(new XmlTextReader(manifestFile) { Namespaces = false });
entities = doc.SelectNodes("//EntityName");
}
foreach (XmlNode node in entities)
{
enitiesList.Add(node.InnerText);
}
}
}
}
return enitiesList;
}
}
}

Просмотреть файл

@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RecurringIntegrationsScheduler.Job</RootNamespace>
<AssemblyName>RecurringIntegrationsScheduler.Job.ExecutionMonitor</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
@ -24,6 +24,7 @@
<Prefer32Bit>false</Prefer32Bit>
<RunCodeAnalysis>false</RunCodeAnalysis>
<CodeAnalysisIgnoreGeneratedCode>false</CodeAnalysisIgnoreGeneratedCode>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -33,14 +34,18 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Polly, Version=6.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.6.1.0\lib\netstandard2.0\Polly.dll</HintPath>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Polly, Version=7.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.7.2.0\lib\net472\Polly.dll</HintPath>
</Reference>
<Reference Include="Quartz, Version=3.0.7.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
<HintPath>..\packages\Quartz.3.0.7\lib\net452\Quartz.dll</HintPath>
@ -48,8 +53,11 @@
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Runtime.Remoting" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Version.cs">

47
Job.ExecutionMonitor/Properties/Resources.Designer.cs сгенерированный
Просмотреть файл

@ -19,7 +19,7 @@ namespace RecurringIntegrationsScheduler.Job.Properties {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
@ -69,6 +69,33 @@ namespace RecurringIntegrationsScheduler.Job.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0}. Checking for error keys file for data entity {1}..
/// </summary>
internal static string Job_0_Checking_for_error_keys_for_data_entity_1 {
get {
return ResourceManager.GetString("Job_0_Checking_for_error_keys_for_data_entity_1", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0}. Checking if error keys file was generated..
/// </summary>
internal static string Job_0_Checking_if_error_keys_file_was_generated {
get {
return ResourceManager.GetString("Job_0_Checking_if_error_keys_file_was_generated", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0} Download of error keys file failed. Exception : {1}.
/// </summary>
internal static string Job_0_download_of_error_keys_file_failed_1 {
get {
return ResourceManager.GetString("Job_0_download_of_error_keys_file_failed_1", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0} ended..
/// </summary>
@ -87,6 +114,15 @@ namespace RecurringIntegrationsScheduler.Job.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0} ExecutionId: {1} import status check returned: {2}.
/// </summary>
internal static string Job_0_ExecutionId_1_status_check_returned_2 {
get {
return ResourceManager.GetString("Job_0_ExecutionId_1_status_check_returned_2", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0}. Failure during moving files. Exception : {1}.
/// </summary>
@ -132,6 +168,15 @@ namespace RecurringIntegrationsScheduler.Job.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0}. Looking for data entities in manifest file {1}..
/// </summary>
internal static string Job_0_Looking_for_data_entities_in_manifest_file_1 {
get {
return ResourceManager.GetString("Job_0_Looking_for_data_entities_in_manifest_file_1", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0}. Retrying HTTP operation. Exception : {1}.
/// </summary>

Просмотреть файл

@ -162,4 +162,19 @@
<data name="Job_0_was_paused_indefinitely" xml:space="preserve">
<value>Job: {0} was paused indefinitely.</value>
</data>
<data name="Job_0_download_of_error_keys_file_failed_1" xml:space="preserve">
<value>Job: {0} Download of error keys file failed. Exception : {1}</value>
</data>
<data name="Job_0_ExecutionId_1_status_check_returned_2" xml:space="preserve">
<value>Job: {0} ExecutionId: {1} import status check returned: {2}</value>
</data>
<data name="Job_0_Checking_for_error_keys_for_data_entity_1" xml:space="preserve">
<value>Job: {0}. Checking for error keys file for data entity {1}.</value>
</data>
<data name="Job_0_Checking_if_error_keys_file_was_generated" xml:space="preserve">
<value>Job: {0}. Checking if error keys file was generated.</value>
</data>
<data name="Job_0_Looking_for_data_entities_in_manifest_file_1" xml:space="preserve">
<value>Job: {0}. Looking for data entities in manifest file {1}.</value>
</data>
</root>

Просмотреть файл

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.8" targetFramework="net46" />
<package id="Polly" version="6.1.0" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
<package id="Polly" version="7.2.0" targetFramework="net472" />
<package id="Quartz" version="3.0.7" targetFramework="net461" />
</packages>

Просмотреть файл

@ -51,7 +51,7 @@ namespace RecurringIntegrationsScheduler.Job
/// <summary>
/// Retry policy for HTTP operations
/// </summary>
private Policy _retryPolicyForHttp;
private Polly.Retry.AsyncRetryPolicy _retryPolicyForHttp;
/// <summary>
/// Called by the <see cref="T:Quartz.IScheduler" /> when a <see cref="T:Quartz.ITrigger" />
@ -122,7 +122,7 @@ namespace RecurringIntegrationsScheduler.Job
}
else
{
Log.Error("Uknown exception", ex);
Log.Error("Unknown exception", ex);
}
while (ex.InnerException != null)
@ -134,7 +134,7 @@ namespace RecurringIntegrationsScheduler.Job
}
}
if (context.Scheduler.SchedulerName != "Private")
throw new JobExecutionException(string.Format(Resources.Download_job_0_failed, _context.JobDetail.Key), ex, false);
throw new JobExecutionException(string.Format(Resources.Job_0_failed, _context.JobDetail.Key), ex, false);
if (!Log.IsDebugEnabled)
Log.Error(string.Format(Resources.Job_0_thrown_an_error_1, _context.JobDetail.Key, ex.Message));
@ -159,31 +159,41 @@ namespace RecurringIntegrationsScheduler.Job
var attempt = 0;
do
{
if (attempt > 0 && _settings.StatusCheckInterval > 0) //Only delay after first file and never after last.
{
System.Threading.Thread.Sleep(_settings.StatusCheckInterval * 1000);
}
attempt++;
if(attempt != 1)
System.Threading.Thread.Sleep(_settings.Interval);
executionStatus = await _httpClientHelper.GetExecutionSummaryStatus(executionId);
if (Log.IsDebugEnabled)
Log.Debug(string.Format(Resources.Job_0_Checking_if_export_is_completed_Try_1_Status_2, _context.JobDetail.Key, attempt, executionStatus));
if (attempt == 1000)
break;
if (attempt == 1000)//TODO hardcoded
{
throw new Exception(string.Format(Resources.Job_0_Checking_for_status_reached_1_attempts_Status_is_2_Exiting, _context.JobDetail.Key, attempt, executionStatus));
}
}
while ((executionStatus == "NotRun" || executionStatus == "Executing" || executionStatus == "Bad request"));
while (executionStatus == "NotRun" || executionStatus == "Executing" || executionStatus == "Bad request");
if (executionStatus == "Succeeded" || executionStatus == "PartiallySucceeded")
{
attempt = 0;
attempt = 0;//Reset for get url request attempts
Uri packageUrl = null;
do
{
if (attempt > 0 && _settings.Interval > 0) //Only delay after first file and never after last.
{
System.Threading.Thread.Sleep(_settings.Interval * 1000);
}
attempt++;
if (attempt != 1)
System.Threading.Thread.Sleep(_settings.Interval);
packageUrl = await _httpClientHelper.GetExportedPackageUrl(executionId);
if (Log.IsDebugEnabled)
Log.Debug(string.Format(Resources.Job_0_Trying_to_get_exported_package_URL_Try_1, _context.JobDetail.Key, attempt));
if (attempt == 100)
break;
if (attempt == 100)//TODO hardcoded
{
throw new Exception(string.Format(Resources.Job_0_Request_to_download_exported_package_reached_1_attempts_Exiting, _context.JobDetail.Key, attempt));
}
}
while (packageUrl == null);
@ -191,21 +201,19 @@ namespace RecurringIntegrationsScheduler.Job
if (!response.IsSuccessStatusCode)
throw new JobExecutionException(string.Format(Resources.Job_0_Download_failure_1, _context.JobDetail.Key, string.Format($"Status: {response.StatusCode}. Message: {response.Content}")));
using (Stream downloadedStream = await response.Content.ReadAsStreamAsync())
using Stream downloadedStream = await response.Content.ReadAsStreamAsync();
var fileName = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss-ffff}.zip";
var successPath = Path.Combine(_settings.DownloadSuccessDir, fileName);
var dataMessage = new DataMessage()
{
var fileName = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss-ffff}.zip";
var successPath = Path.Combine(_settings.DownloadSuccessDir, fileName);
var dataMessage = new DataMessage()
{
FullPath = successPath,
Name = fileName,
MessageStatus = MessageStatus.Succeeded
};
_retryPolicyForIo.Execute(() => FileOperationsHelper.Create(downloadedStream, dataMessage.FullPath));
FullPath = successPath,
Name = fileName,
MessageStatus = MessageStatus.Succeeded
};
_retryPolicyForIo.Execute(() => FileOperationsHelper.Create(downloadedStream, dataMessage.FullPath));
if (_settings.UnzipPackage)
_retryPolicyForIo.Execute(() => FileOperationsHelper.UnzipPackage(dataMessage.FullPath, _settings.DeletePackage, _settings.AddTimestamp));
}
if (_settings.UnzipPackage)
_retryPolicyForIo.Execute(() => FileOperationsHelper.UnzipPackage(dataMessage.FullPath, _settings.DeletePackage, _settings.AddTimestamp));
}
else if (executionStatus == "Unknown" || executionStatus == "Failed" || executionStatus == "Canceled")
{

Просмотреть файл

@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RecurringIntegrationsScheduler.Job</RootNamespace>
<AssemblyName>RecurringIntegrationsScheduler.Job.Export</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
@ -24,6 +24,7 @@
<Prefer32Bit>false</Prefer32Bit>
<CodeAnalysisIgnoreGeneratedCode>false</CodeAnalysisIgnoreGeneratedCode>
<RunCodeAnalysis>false</RunCodeAnalysis>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -33,14 +34,15 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Polly, Version=6.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.6.1.0\lib\netstandard2.0\Polly.dll</HintPath>
<Reference Include="Polly, Version=7.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.7.2.0\lib\net472\Polly.dll</HintPath>
</Reference>
<Reference Include="Quartz, Version=3.0.7.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
<HintPath>..\packages\Quartz.3.0.7\lib\net452\Quartz.dll</HintPath>

38
Job.Export/Properties/Resources.Designer.cs сгенерированный
Просмотреть файл

@ -19,7 +19,7 @@ namespace RecurringIntegrationsScheduler.Job.Properties {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
@ -60,15 +60,6 @@ namespace RecurringIntegrationsScheduler.Job.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Export job: {0} failed.
/// </summary>
internal static string Download_job_0_failed {
get {
return ResourceManager.GetString("Download_job_0_failed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Export execution failed for job: {0}. Execution status: {1}.
/// </summary>
@ -87,6 +78,15 @@ namespace RecurringIntegrationsScheduler.Job.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0}. Checking for status reached {1} attempts. Status is {2}. Exiting....
/// </summary>
internal static string Job_0_Checking_for_status_reached_1_attempts_Status_is_2_Exiting {
get {
return ResourceManager.GetString("Job_0_Checking_for_status_reached_1_attempts_Status_is_2_Exiting", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0} Checking if export is completed. Try: {1}. Status: {2}.
/// </summary>
@ -132,6 +132,15 @@ namespace RecurringIntegrationsScheduler.Job.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0} failed.
/// </summary>
internal static string Job_0_failed {
get {
return ResourceManager.GetString("Job_0_failed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0}. Failure during acknowledment of file. Exception : {1}.
/// </summary>
@ -204,6 +213,15 @@ namespace RecurringIntegrationsScheduler.Job.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0}. Request to download exported package reached {1} attempts. Exiting....
/// </summary>
internal static string Job_0_Request_to_download_exported_package_reached_1_attempts_Exiting {
get {
return ResourceManager.GetString("Job_0_Request_to_download_exported_package_reached_1_attempts_Exiting", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Job: {0}. Retrying HTTP operation. Exception : {1}.
/// </summary>

Просмотреть файл

@ -150,8 +150,8 @@
<data name="Job_0_File_dequeued_successfully_Download_location_1" xml:space="preserve">
<value>Job: {0}. File dequeued successfully. Download location: {1}</value>
</data>
<data name="Download_job_0_failed" xml:space="preserve">
<value>Export job: {0} failed</value>
<data name="Job_0_failed" xml:space="preserve">
<value>Job: {0} failed</value>
</data>
<data name="Job_0_ended" xml:space="preserve">
<value>Job: {0} ended.</value>
@ -186,4 +186,10 @@
<data name="Job_0_was_paused_indefinitely" xml:space="preserve">
<value>Job: {0} was paused indefinitely.</value>
</data>
<data name="Job_0_Checking_for_status_reached_1_attempts_Status_is_2_Exiting" xml:space="preserve">
<value>Job: {0}. Checking for status reached {1} attempts. Status is {2}. Exiting...</value>
</data>
<data name="Job_0_Request_to_download_exported_package_reached_1_attempts_Exiting" xml:space="preserve">
<value>Job: {0}. Request to download exported package reached {1} attempts. Exiting...</value>
</data>
</root>

Просмотреть файл

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.8" targetFramework="net46" />
<package id="Polly" version="6.1.0" targetFramework="net461" />
<package id="Polly" version="7.2.0" targetFramework="net472" />
<package id="Quartz" version="3.0.7" targetFramework="net461" />
</packages>

Просмотреть файл

@ -64,7 +64,7 @@ namespace RecurringIntegrationsScheduler.Job
/// <summary>
/// Retry policy for HTTP operations
/// </summary>
private Policy _retryPolicyForHttp;
private Polly.Retry.AsyncRetryPolicy _retryPolicyForHttp;
/// <summary>
/// Called by the <see cref="T:Quartz.IScheduler" /> when a <see cref="T:Quartz.ITrigger" />
@ -135,7 +135,7 @@ namespace RecurringIntegrationsScheduler.Job
}
else
{
Log.Error("Uknown exception", ex);
Log.Error("Unknown exception", ex);
}
while (ex.InnerException != null)
@ -187,7 +187,7 @@ namespace RecurringIntegrationsScheduler.Job
{
using (_httpClientHelper = new HttpClientHelper(_settings, _retryPolicyForHttp))
{
var firstFile = true;
var fileCount = 0;
string fileNameInPackage = "";
FileStream zipToOpen = null;
ZipArchive archive = null;
@ -205,24 +205,23 @@ namespace RecurringIntegrationsScheduler.Job
{
try
{
string tempFileName = "";
if (!firstFile)
if (fileCount > 0 && _settings.Interval > 0) //Only delay after first file and never after last.
{
System.Threading.Thread.Sleep(_settings.Interval);
}
else
{
firstFile = false;
System.Threading.Thread.Sleep(_settings.Interval * 1000);
}
fileCount++;
var sourceStream = _retryPolicyForIo.Execute(() => FileOperationsHelper.Read(dataMessage.FullPath));
if (sourceStream == null) continue;//Nothing to do here
string tempFileName = "";
//If we need to "wrap" file in package envelope
if (!String.IsNullOrEmpty(_settings.PackageTemplate))
if (!string.IsNullOrEmpty(_settings.PackageTemplate))
{
using (zipToOpen = new FileStream(_settings.PackageTemplate, FileMode.Open))
{
tempFileName = Path.GetTempFileName();
tempFileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
_retryPolicyForIo.Execute(() => FileOperationsHelper.Create(zipToOpen, tempFileName));
var tempZipStream = _retryPolicyForIo.Execute(() => FileOperationsHelper.Read(tempFileName));
using (archive = new ZipArchive(tempZipStream, ZipArchiveMode.Update))
@ -236,15 +235,13 @@ namespace RecurringIntegrationsScheduler.Job
}
// Update Manifest file with the original file name for end-to-end traceability. Use the new file name in the rest of the method.
fileNameInPackage = this.UpdateManifestFile(archive, dataMessage, fileNameInPackage);
fileNameInPackage = UpdateManifestFile(archive, dataMessage, fileNameInPackage);
var importedFile = archive.CreateEntry(fileNameInPackage, CompressionLevel.Fastest);
using (var entryStream = importedFile.Open())
{
sourceStream.CopyTo(entryStream);
sourceStream.Close();
sourceStream.Dispose();
}
using var entryStream = importedFile.Open();
sourceStream.CopyTo(entryStream);
sourceStream.Close();
sourceStream.Dispose();
}
sourceStream = _retryPolicyForIo.Execute(() => FileOperationsHelper.Read(tempFileName));
}
@ -254,7 +251,7 @@ namespace RecurringIntegrationsScheduler.Job
// Get blob url and id. Returns in json format
var response = await _httpClientHelper.GetAzureWriteUrl();
if(String.IsNullOrEmpty(response))
if(string.IsNullOrEmpty(response))
{
Log.ErrorFormat(CultureInfo.InvariantCulture, "Method GetAzureWriteUrl returned empty string");
continue;
@ -270,7 +267,7 @@ namespace RecurringIntegrationsScheduler.Job
{
sourceStream.Close();
sourceStream.Dispose();
if (!String.IsNullOrEmpty(_settings.PackageTemplate))
if (!string.IsNullOrEmpty(_settings.PackageTemplate))
{
_retryPolicyForIo.Execute(() => FileOperationsHelper.Delete(tempFileName));
}
@ -349,7 +346,6 @@ namespace RecurringIntegrationsScheduler.Job
zipToOpen.Close();
zipToOpen.Dispose();
}
archive?.Dispose();
}
}
@ -358,26 +354,21 @@ namespace RecurringIntegrationsScheduler.Job
private string GetFileNameInPackage()
{
var manifestPath = "";
using (var package = ZipFile.OpenRead(_settings.PackageTemplate))
using var package = ZipFile.OpenRead(_settings.PackageTemplate);
foreach (var entry in package.Entries)
{
foreach (var entry in package.Entries)
if (entry.FullName.Equals("Manifest.xml", StringComparison.OrdinalIgnoreCase))
{
if (entry.FullName.Equals("Manifest.xml", StringComparison.OrdinalIgnoreCase))
{
manifestPath = Path.Combine(Path.GetTempPath(), $"{_context.JobDetail.Key}-{entry.FullName}");
entry.ExtractToFile(manifestPath, true);
}
var manifestPath = Path.Combine(Path.GetTempPath(), $"{_context.JobDetail.Key}-{entry.FullName}");
entry.ExtractToFile(manifestPath, true);
var doc = new XmlDocument();
using var manifestFile = new StreamReader(manifestPath);
doc.Load(new XmlTextReader(manifestFile) { Namespaces = false });
return doc.SelectSingleNode("//InputFilePath[1]")?.InnerText;
}
}
var doc = new XmlDocument();
string fileName;
using (var manifestFile = new StreamReader(manifestPath))
{
doc.Load(new XmlTextReader(manifestFile) { Namespaces = false });
fileName = doc.SelectSingleNode("//InputFilePath[1]")?.InnerText;
}
return fileName;
return null;
}
/// <summary>
@ -399,8 +390,8 @@ namespace RecurringIntegrationsScheduler.Job
ZipArchiveEntry manifestEntry = archive.GetEntry("Manifest.xml");
// Save the Manifest.xml as temporary file
string tempManifestFileName = Path.GetTempFileName();
string tempManifestFileNameNew = Path.GetTempFileName();
string tempManifestFileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
string tempManifestFileNameNew = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
manifestEntry.ExtractToFile(tempManifestFileName, true);
@ -413,12 +404,10 @@ namespace RecurringIntegrationsScheduler.Job
tempXmlDocManifest.SelectSingleNode("//InputFilePath[1]").InnerText = Path.GetFileName(dataMessage.FullPath);
// Save the document to a file and auto-indent the output.
using (XmlTextWriter writer = new XmlTextWriter(tempManifestFileNameNew, null))
{
writer.Namespaces = false;
writer.Formatting = System.Xml.Formatting.Indented;
tempXmlDocManifest.Save(writer);
}
using XmlTextWriter writer = new XmlTextWriter(tempManifestFileNameNew, null);
writer.Namespaces = false;
writer.Formatting = System.Xml.Formatting.Indented;
tempXmlDocManifest.Save(writer);
}
// Delete the Manifest.xml from the archive file

Просмотреть файл

@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RecurringIntegrationsScheduler.Job</RootNamespace>
<AssemblyName>RecurringIntegrationsScheduler.Job.Import</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
@ -24,6 +24,7 @@
<Prefer32Bit>false</Prefer32Bit>
<CodeAnalysisIgnoreGeneratedCode>false</CodeAnalysisIgnoreGeneratedCode>
<RunCodeAnalysis>false</RunCodeAnalysis>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -33,17 +34,18 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Polly, Version=6.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.6.1.0\lib\netstandard2.0\Polly.dll</HintPath>
<Reference Include="Polly, Version=7.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.7.2.0\lib\net472\Polly.dll</HintPath>
</Reference>
<Reference Include="Quartz, Version=3.0.7.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
<HintPath>..\packages\Quartz.3.0.7\lib\net452\Quartz.dll</HintPath>

Просмотреть файл

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.8" targetFramework="net46" />
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="net46" />
<package id="Polly" version="6.1.0" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
<package id="Polly" version="7.2.0" targetFramework="net472" />
<package id="Quartz" version="3.0.7" targetFramework="net461" />
</packages>

Просмотреть файл

@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RecurringIntegrationsScheduler.Job</RootNamespace>
<AssemblyName>RecurringIntegrationsScheduler.Job.ProcessingMonitor</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
@ -24,6 +24,7 @@
<Prefer32Bit>false</Prefer32Bit>
<RunCodeAnalysis>false</RunCodeAnalysis>
<CodeAnalysisIgnoreGeneratedCode>false</CodeAnalysisIgnoreGeneratedCode>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -33,17 +34,18 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Polly, Version=6.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.6.1.0\lib\netstandard2.0\Polly.dll</HintPath>
<Reference Include="Polly, Version=7.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.7.2.0\lib\net472\Polly.dll</HintPath>
</Reference>
<Reference Include="Quartz, Version=3.0.7.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
<HintPath>..\packages\Quartz.3.0.7\lib\net452\Quartz.dll</HintPath>

Просмотреть файл

@ -62,7 +62,7 @@ namespace RecurringIntegrationsScheduler.Job
/// <summary>
/// Retry policy for HTTP operations
/// </summary>
private Policy _retryPolicyForHttp;
private Polly.Retry.AsyncRetryPolicy _retryPolicyForHttp;
/// <summary>
/// Called by the <see cref="T:Quartz.IScheduler" /> when a <see cref="T:Quartz.ITrigger" />
@ -133,7 +133,7 @@ namespace RecurringIntegrationsScheduler.Job
}
else
{
Log.Error("Uknown exception", ex);
Log.Error("Unknown exception", ex);
}
while (ex.InnerException != null)
@ -176,18 +176,23 @@ namespace RecurringIntegrationsScheduler.Job
/// <returns></returns>
private async Task ProcessEnqueuedQueue()
{
var fileCount = 0;
_httpClientHelper = new HttpClientHelper(_settings, _retryPolicyForHttp);
while (EnqueuedJobs.TryDequeue(out DataMessage dataMessage))
{
if (fileCount > 0 && _settings.StatusCheckInterval > 0) //Only delay after first file and never after last.
{
System.Threading.Thread.Sleep(_settings.StatusCheckInterval * 1000);
}
fileCount++;
// Check status for current item with message id - item.Key
var jobStatusDetail = await GetStatus(dataMessage.MessageId);
// If status was found and is not null,
if (jobStatusDetail != null)
PostProcessMessage(jobStatusDetail, dataMessage);
System.Threading.Thread.Sleep(_settings.Interval);
}
}
@ -251,8 +256,11 @@ namespace RecurringIntegrationsScheduler.Job
Log.DebugFormat(CultureInfo.InvariantCulture, string.Format(Resources.Job_0_Successfully_received_job_status_for_message_id_1, _context.JobDetail.Key, message));
return JsonConvert.DeserializeObject<DataJobStatusDetail>(response.Content.ReadAsStringAsync().Result, new StringEnumConverter());
}
Log.ErrorFormat(CultureInfo.InvariantCulture, string.Format(Resources.Job_0_data_job_status_check_request_failed_Status_code_1_Reason_2, _context.JobDetail.Key, response.StatusCode, response.ReasonPhrase));
return null;
else
{
Log.ErrorFormat(CultureInfo.InvariantCulture, string.Format(Resources.Job_0_data_job_status_check_request_failed_Status_code_1_Reason_2, _context.JobDetail.Key, response.StatusCode, response.ReasonPhrase));
return null;
}
}
}
}

Просмотреть файл

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.8" targetFramework="net46" />
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="net46" />
<package id="Polly" version="6.1.0" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
<package id="Polly" version="7.2.0" targetFramework="net472" />
<package id="Quartz" version="3.0.7" targetFramework="net461" />
</packages>

Просмотреть файл

@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RecurringIntegrationsScheduler.Job</RootNamespace>
<AssemblyName>RecurringIntegrationsScheduler.Job.Upload</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
@ -24,6 +24,7 @@
<Prefer32Bit>false</Prefer32Bit>
<CodeAnalysisIgnoreGeneratedCode>false</CodeAnalysisIgnoreGeneratedCode>
<RunCodeAnalysis>false</RunCodeAnalysis>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -33,14 +34,15 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Polly, Version=6.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.6.1.0\lib\netstandard2.0\Polly.dll</HintPath>
<Reference Include="Polly, Version=7.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.7.2.0\lib\net472\Polly.dll</HintPath>
</Reference>
<Reference Include="Quartz, Version=3.0.7.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
<HintPath>..\packages\Quartz.3.0.7\lib\net452\Quartz.dll</HintPath>

Просмотреть файл

@ -60,7 +60,7 @@ namespace RecurringIntegrationsScheduler.Job
/// <summary>
/// Retry policy for HTTP operations
/// </summary>
private Policy _retryPolicyForHttp;
private Polly.Retry.AsyncRetryPolicy _retryPolicyForHttp;
/// <summary>
/// Called by the <see cref="T:Quartz.IScheduler" /> when a <see cref="T:Quartz.ITrigger" />
@ -131,7 +131,7 @@ namespace RecurringIntegrationsScheduler.Job
}
else
{
Log.Error("Uknown exception", ex);
Log.Error("Unknown exception", ex);
}
while (ex.InnerException != null)
@ -182,20 +182,17 @@ namespace RecurringIntegrationsScheduler.Job
{
using (_httpClientHelper = new HttpClientHelper(_settings, _retryPolicyForHttp))
{
var firstFile = true;
var fileCount = 0;
while (InputQueue.TryDequeue(out DataMessage dataMessage))
{
try
{
if (!firstFile)
if (fileCount > 0 && _settings.Interval > 0) //Only delay after first file and never after last.
{
System.Threading.Thread.Sleep(_settings.Interval);
}
else
{
firstFile = false;
System.Threading.Thread.Sleep(_settings.Interval * 1000);
}
fileCount++;
var sourceStream = _retryPolicyForIo.Execute(() => FileOperationsHelper.Read(dataMessage.FullPath));
if (sourceStream == null) continue;//Nothing to do here

Просмотреть файл

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.8" targetFramework="net46" />
<package id="Polly" version="6.1.0" targetFramework="net461" />
<package id="Polly" version="7.2.0" targetFramework="net472" />
<package id="Quartz" version="3.0.7" targetFramework="net461" />
</packages>

Просмотреть файл

@ -1,113 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{96BB041A-3FDE-400F-ADDA-9DB19F3274BE}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RecurringIntegrationsScheduler.Common</RootNamespace>
<AssemblyName>RecurringIntegrationsScheduler.Common</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\Output\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<RunCodeAnalysis>false</RunCodeAnalysis>
<CodeAnalysisIgnoreGeneratedCode>false</CodeAnalysisIgnoreGeneratedCode>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\Output\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.IdentityModel.Clients.ActiveDirectory, Version=3.19.8.16603, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.3.19.8\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll</HintPath>
</Reference>
<Reference Include="Microsoft.IdentityModel.Clients.ActiveDirectory.Platform, Version=3.19.8.16603, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.3.19.8\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Polly, Version=6.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.6.1.0\lib\netstandard2.0\Polly.dll</HintPath>
</Reference>
<Reference Include="Quartz, Version=3.0.7.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
<HintPath>..\packages\Quartz.3.0.7\lib\net452\Quartz.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Linq.Dynamic, Version=1.0.6132.35681, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\System.Linq.Dynamic.1.0.7\lib\net40\System.Linq.Dynamic.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Remoting" />
<Reference Include="System.Security" />
<Reference Include="System.Net.Http" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Version.cs">
<Link>Version.cs</Link>
</Compile>
<Compile Include="Contracts\ContractEnums.cs" />
<Compile Include="Contracts\OdataActionsConstants.cs" />
<Compile Include="Helpers\FileOperationsHelper.cs" />
<Compile Include="JobSettings\ExportJobSettings.cs" />
<Compile Include="JobSettings\ImportJobSettings.cs" />
<Compile Include="JobSettings\ExecutionJobSettings.cs" />
<Compile Include="JobSettings\ProcessingJobSettings.cs" />
<Compile Include="JobSettings\DownloadJobSettings.cs" />
<Compile Include="JobSettings\UploadJobSettings.cs" />
<Compile Include="JobSettings\Settings.cs" />
<Compile Include="Contracts\EntityExecutionStatus.cs" />
<Compile Include="Contracts\DataJobStatus.cs" />
<Compile Include="Contracts\DataJobStatusDetail.cs" />
<Compile Include="Contracts\DequeueResponse.cs" />
<Compile Include="Contracts\DataMessage.cs" />
<Compile Include="Contracts\SettingsConstants.cs" />
<Compile Include="Helpers\AuthenticationHelper.cs" />
<Compile Include="Helpers\EncryptDecrypt.cs" />
<Compile Include="Helpers\Extensions.cs" />
<Compile Include="Helpers\HttpClientHelper.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

Просмотреть файл

@ -1,166 +0,0 @@
<!DOCTYPE html>
<!-- saved from url=(0014)about:internet -->
<html xmlns:msxsl="urn:schemas-microsoft-com:xslt"><head><meta content="en-us" http-equiv="Content-Language" /><meta content="text/html; charset=utf-16" http-equiv="Content-Type" /><title _locID="NuGetUpgradeReportTitle">
NuGetMigrationLog
</title><style>
/* Body style, for the entire document */
body
{
background: #F3F3F4;
color: #1E1E1F;
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
font-size: 12pt;
padding: 0;
margin: 0;
}
/* Header1 style, used for the main title */
h1
{
padding: 10px 0px 10px 10px;
font-size: 21pt;
background-color: #E2E2E2;
border-bottom: 1px #C1C1C2 solid;
color: #201F20;
margin: 0;
font-weight: normal;
}
/* Header2 style, used for "Overview" and other sections */
h2
{
font-size: 18pt;
font-weight: normal;
padding: 15px 0 5px 0;
margin: 0;
}
/* Header3 style, used for sub-sections, such as project name */
h3
{
font-weight: normal;
font-size: 15pt;
margin: 0;
padding: 15px 0 5px 0;
background-color: transparent;
}
.info-text
{
margin: 0px 0 0.75em 0;
}
/* Color all hyperlinks one color */
a
{
color: #1382CE;
}
/* Table styles */
table
{
border-spacing: 0 0;
border-collapse: collapse;
font-size: 11pt;
}
table th
{
background: #E7E7E8;
text-align: left;
text-decoration: none;
font-weight: normal;
padding: 3px 6px 3px 6px;
}
table td
{
vertical-align: top;
padding: 3px 6px 5px 5px;
margin: 0px;
border: 1px solid #E7E7E8;
background: #F7F7F8;
}
/* Local link is a style for hyperlinks that link to file:/// content, there are lots so color them as 'normal' text until the user mouse overs */
.localLink
{
color: #1E1E1F;
background: #EEEEED;
text-decoration: none;
}
.localLink:hover
{
color: #1382CE;
background: #FFFF99;
text-decoration: none;
}
.issueCell
{
width: 100%;
}
.packageIssue
{
margin-left: 25px;
}
/* Padding around the content after the h1 */
#content
{
padding: 0px 20px 20px 20px;
}
.issues table
{
width: 97%;
}
/* All Icons */
.IconSuccessEncoded, .IconInfoEncoded, .IconWarningEncoded, .IconErrorEncoded
{
min-width:18px;
min-height:18px;
background-repeat:no-repeat;
background-position:center;
}
.IconSuccessEncoded
{
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABcElEQVR4Xq2TsUsCURzHv15g8ZJcBWlyiYYgCIWcb9DFRRwMW5TA2c0/QEFwFkxxUQdxVlBwCYWOi6IhWgQhBLHJUCkhLr/BW8S7gvrAg+N+v8/v+x68Z8MGy+XSCyABQAXgBgHGALoASkIIDWSLeLBetdHryMjd5IxQPWT4rn1c/P7+xxp72Cs9m5SZ0Bq2vPnbPFafK2zDvmNHypdC0BPkLlQhxJsCAhQoZwdZU5mwxh720qGo8MzTxTTKZDPCx2HoVzp6lz0Q9tKhyx0kGs8Ny+TkWRKk8lCROwEduhyg9l/6lunOPSfmH3NUH6uQ0KHLAe7JYvJjevm+DAMGJHToKtigE+vwvIidxLamb8IBY9e+C5LiXREkfho3TSd06HJA13/oh6T51MTsfQbHrsMynQ5dDihFjiK8JJAU9AKIWTp76dCVN7HWHrajmUEGvyF9nkbAE6gLIS7kTUyuf2gscLoJrElZo/Mvj+nPz/kLTmfnEwP3tB0AAAAASUVORK5CYII=);
}
.IconInfoEncoded
{
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR4Xs2TsUoDQRRF7wwoziokjZUKadInhdhukR9YP8DMX1hYW+QvdsXa/QHBbcXC7W0CamWTQnclFutceIQJwwaWNLlwm5k5d94M76mmaeCrrmsLYOocY12FcxZFUeozCqKqqgYA8uevv1H6VuPxcwlfk5N92KHBxfFeCSAxxswlYAW/Xr989x/mv9gkhtyMDhcAxgzRsp7flj8B/HF1RsMXq+NZMkopaHe7lbKxQUEIGbKsYNoGn969060hZBkQex/W8oRQwsQaW2o3Ago2SVcJUzAgY3N0lTCZZm+zPS8HB51gMmS1DEYyOz9acKO1D8JWTlafKIMxdhvlfdyT94Vv5h7P8Ky7nQzACmhvKq3zk3PjW9asz9D/1oigecsioooAAAAASUVORK5CYII=);
}
.IconWarningEncoded
{
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAx0lEQVR4XpWSMQ7CMAxFf4xAyBMLCxMrO8dhaBcuwdCJS3RJBw7SA/QGTCxdWJgiQYWKXJWKIXHIlyw5lqr34tQgEOdcBsCOx5yZK3hCCKdYXneQkh4pEfqzLfu+wVDSyyzFoJjfz9NB+pAF+eizx2Vruts0k15mPgvS6GYvpVtQhB61IB/dk6AF6fS4Ben0uIX5odtFe8Q/eW1KvFeH4e8khT6+gm5B+t3juyDt7n0jpe+CANTd+oTUjN/U3yVaABnSUjFz/gFq44JaVSCXeQAAAABJRU5ErkJggg==);
}
.IconErrorEncoded
{
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABQElEQVR4XqWTvUoEQRCE6wYPZUA80AfwAQz23uCMjA7MDRQEIzPBVEyNTQUFIw00vcQTTMzuAh/AxEQQT8HF/3G/oGGnEUGuoNnd6qoZuqltyKEsyzVJq5I6rnUp6SjGeGhESikzzlc1eL7opfuVbrqbU1Zw9NCgtQMaZpY0eNnaaL2fHusvTK5vKu7sjSS1Y4y3QUA6K3e3Mau5UFDyMP7tYF9o8cAHZv68vipoIJg971PZIZ5HiwdvYGGvFVFHmGmZ2MxwmQYPXubPl9Up0tfoMQGetXd6mRbvhBw+boZ6WF7Mbv1+GsHRk0fQmPAH1GfmZirbCfDJ61tw3Px8/8pZsPAG4jlVhcPgZ7adwNWBB68lkRQWFiTgFlbnLY3DGGM7izIJIyT/jjIvEJw6fdJTc6krDzh6aMwMP9bvDH4ADSsa9uSWVJkAAAAASUVORK5CYII=);
}
</style></head><body><h1>
NuGet Migration Report - Common</h1><div id="content"><h2 _locID="OverviewTitle">Overview</h2><div class="info-text">Migration to PackageReference was completed successfully. Please build and run your solution to verify that all packages are available.</div><div class="info-text">
If you run into any problems, have feedback, questions, or concerns, please
<a href="https://github.com/NuGet/Home/issues/">file an issue on the NuGet GitHub repository.</a></div><div class="info-text">
Changed files and this report have been backed up here:
<a href="C:\Users\tmelissa\source\repos\Recurring-Integrations-Scheduler\MigrationBackup\a8d2b540\Common">C:\Users\tmelissa\source\repos\Recurring-Integrations-Scheduler\MigrationBackup\a8d2b540\Common</a></div><div class="info-text"><a href="https://aka.ms/nuget-pc2pr-migrator-rollback">Help me rollback to packages.config</a></div><h2 _locID="PackagesTitle">Packages processed</h2><h3 _locID="IncludePackagesTitle">Top-level dependencies:</h3><div class="issues"><table><tr><th class="issueCell">Package Id</th><th>Version</th></tr><tr><td class="issueCell"><span>Microsoft.IdentityModel.Clients.ActiveDirectory</span></td><td><span>
v3.19.8</span></td></tr><tr><td class="issueCell"><span>Newtonsoft.Json</span></td><td><span>
v11.0.2</span></td></tr><tr><td class="issueCell"><span>Polly</span></td><td><span>
v6.1.0</span></td></tr><tr><td class="issueCell"><span>Quartz</span></td><td><span>
v3.0.7</span></td></tr><tr><td class="issueCell"><span>System.Linq.Dynamic</span></td><td><span>
v1.0.7</span></td></tr></table></div><p /><h3 _locID="IncludePackagesTitle">Transitive dependencies:</h3><div class="issues"><table><tr><th class="issueCell">Package Id</th><th>Version</th></tr><tr><td class="issueCell">
No transitive dependencies found.
</td><td /></tr></table></div><h2 _locID="IssuesTitle">Package compatibility issues</h2><div class="issues"><table><tr><th /><th class="issueCell" _locID="DescriptionTableHeader">Description</th></tr><tr><td class="IconInfoEncoded" /><td class="issueCell">
No issues were found.
</td></tr></table></div></div></body></html>

Просмотреть файл

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.IdentityModel.Clients.ActiveDirectory" version="3.19.8" targetFramework="net46" />
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="net46" />
<package id="Polly" version="6.1.0" targetFramework="net461" />
<package id="Quartz" version="3.0.7" targetFramework="net461" />
<package id="System.Linq.Dynamic" version="1.0.7" targetFramework="net45" />
</packages>

Просмотреть файл

@ -1,4 +1,4 @@
# Recurring Integrations Scheduler
# Recurring Integrations Scheduler RIS
This tool helps to quickly set up and orchestrate file based integration scenarios to and from Dynamics 365 for Finance and Operations. We see this tool to be a good implementation accelerator for use during the implementation phase of the project for data migration, ad hoc file integration needs and to be used as a proof of concept validator among others.
@ -6,7 +6,7 @@ This tool helps to quickly set up and orchestrate file based integration scenari
Recurring Integrations Scheduler Service is a Windows service that can trigger many integration jobs at predefined schedule. You can schedule jobs and set their recurrence in a very similar way to well-known Operations' batch framework.
There is six types of integration jobs you can use: Import, Export and Execution monitor as well as Upload, Download and Processing monitor. First three use new Odata actions introduced in Platform Update 5. Three other use Connector API and recurring data jobs.
There are six types of integration jobs you can use: Import, Export and Execution monitor as well as Upload, Download and Processing monitor. First three use new Odata actions introduced in Platform Update 5. Three other use Connector API and recurring data jobs.
More details in wiki.
Single Recurring Integrations Scheduler service can work with multiple Operations instances even within different tenants. This enables both production and implementation scenarios where you need to work with multiple non-prod instances. Recurring Integrations Scheduler logs important events to Windows Event Log. It is possible to increase its logging level to log every step for debugging purposes and to trace possible problems.

Просмотреть файл

@ -176,6 +176,10 @@
<assemblyIdentity name="Quartz" publicKeyToken="f6b8c98a402cc8a4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.7.0" newVersion="3.0.7.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /></startup></configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /></startup></configuration>

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 52 KiB

После

Ширина:  |  Высота:  |  Размер: 52 KiB

52
Scheduler/Forms/AboutBox.Designer.cs сгенерированный
Просмотреть файл

@ -51,17 +51,17 @@ namespace RecurringIntegrationsScheduler.Forms
this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 2);
this.tableLayoutPanel.Controls.Add(this.okButton, 1, 3);
this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel.Location = new System.Drawing.Point(14, 14);
this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.tableLayoutPanel.Location = new System.Drawing.Point(17, 17);
this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.tableLayoutPanel.Name = "tableLayoutPanel";
this.tableLayoutPanel.RowCount = 4;
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 70F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 31F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 31F));
this.tableLayoutPanel.Size = new System.Drawing.Size(624, 407);
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 37F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 37F));
this.tableLayoutPanel.Size = new System.Drawing.Size(763, 488);
this.tableLayoutPanel.TabIndex = 0;
//
// logoPictureBox
@ -69,22 +69,22 @@ namespace RecurringIntegrationsScheduler.Forms
this.logoPictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image")));
this.logoPictureBox.Location = new System.Drawing.Point(4, 5);
this.logoPictureBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.logoPictureBox.Location = new System.Drawing.Point(5, 6);
this.logoPictureBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.logoPictureBox.Name = "logoPictureBox";
this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 4);
this.logoPictureBox.Size = new System.Drawing.Size(197, 397);
this.logoPictureBox.Size = new System.Drawing.Size(241, 476);
this.logoPictureBox.TabIndex = 12;
this.logoPictureBox.TabStop = false;
//
// labelProductName
//
this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelProductName.Location = new System.Drawing.Point(214, 0);
this.labelProductName.Margin = new System.Windows.Forms.Padding(9, 0, 4, 0);
this.labelProductName.MaximumSize = new System.Drawing.Size(0, 26);
this.labelProductName.Location = new System.Drawing.Point(262, 0);
this.labelProductName.Margin = new System.Windows.Forms.Padding(11, 0, 5, 0);
this.labelProductName.MaximumSize = new System.Drawing.Size(0, 31);
this.labelProductName.Name = "labelProductName";
this.labelProductName.Size = new System.Drawing.Size(406, 26);
this.labelProductName.Size = new System.Drawing.Size(496, 31);
this.labelProductName.TabIndex = 19;
this.labelProductName.Text = "Recurring Integrations Scheduler";
this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -92,11 +92,11 @@ namespace RecurringIntegrationsScheduler.Forms
// labelVersion
//
this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelVersion.Location = new System.Drawing.Point(214, 40);
this.labelVersion.Margin = new System.Windows.Forms.Padding(9, 0, 4, 0);
this.labelVersion.MaximumSize = new System.Drawing.Size(0, 26);
this.labelVersion.Location = new System.Drawing.Point(262, 48);
this.labelVersion.Margin = new System.Windows.Forms.Padding(11, 0, 5, 0);
this.labelVersion.MaximumSize = new System.Drawing.Size(0, 31);
this.labelVersion.Name = "labelVersion";
this.labelVersion.Size = new System.Drawing.Size(406, 26);
this.labelVersion.Size = new System.Drawing.Size(496, 31);
this.labelVersion.TabIndex = 0;
this.labelVersion.Text = "Version 1.0.0.0";
this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -104,13 +104,13 @@ namespace RecurringIntegrationsScheduler.Forms
// textBoxDescription
//
this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill;
this.textBoxDescription.Location = new System.Drawing.Point(214, 85);
this.textBoxDescription.Margin = new System.Windows.Forms.Padding(9, 5, 4, 5);
this.textBoxDescription.Location = new System.Drawing.Point(262, 102);
this.textBoxDescription.Margin = new System.Windows.Forms.Padding(11, 6, 5, 6);
this.textBoxDescription.Multiline = true;
this.textBoxDescription.Name = "textBoxDescription";
this.textBoxDescription.ReadOnly = true;
this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.textBoxDescription.Size = new System.Drawing.Size(406, 274);
this.textBoxDescription.Size = new System.Drawing.Size(496, 329);
this.textBoxDescription.TabIndex = 23;
this.textBoxDescription.TabStop = false;
this.textBoxDescription.Text = resources.GetString("textBoxDescription.Text");
@ -119,26 +119,26 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.okButton.Location = new System.Drawing.Point(508, 370);
this.okButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.okButton.Location = new System.Drawing.Point(621, 444);
this.okButton.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.okButton.Name = "okButton";
this.okButton.Size = new System.Drawing.Size(112, 32);
this.okButton.Size = new System.Drawing.Size(137, 38);
this.okButton.TabIndex = 24;
this.okButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.OK;
//
// AboutBox
//
this.AcceptButton = this.okButton;
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 24F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(652, 435);
this.ClientSize = new System.Drawing.Size(797, 522);
this.Controls.Add(this.tableLayoutPanel);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "AboutBox";
this.Padding = new System.Windows.Forms.Padding(14);
this.Padding = new System.Windows.Forms.Padding(17, 17, 17, 17);
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;

385
Scheduler/Forms/DownloadJob.Designer.cs сгенерированный
Просмотреть файл

@ -32,6 +32,8 @@ namespace RecurringIntegrationsScheduler.Forms
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DownloadJob));
this.jobDetailsGroupBox = new System.Windows.Forms.GroupBox();
this.intervalLabel = new System.Windows.Forms.Label();
this.numericUpDownInterval = new System.Windows.Forms.NumericUpDown();
this.deletePackageCheckBox = new System.Windows.Forms.CheckBox();
this.addTimestampCheckBox = new System.Windows.Forms.CheckBox();
this.unzipCheckBox = new System.Windows.Forms.CheckBox();
@ -92,6 +94,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.addJobButton = new System.Windows.Forms.Button();
this.cancelButton = new System.Windows.Forms.Button();
this.jobDetailsGroupBox.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownInterval)).BeginInit();
this.axDetailsGroupBox.SuspendLayout();
this.authMethodPanel.SuspendLayout();
this.recurrenceGroupBox.SuspendLayout();
@ -105,6 +108,8 @@ namespace RecurringIntegrationsScheduler.Forms
//
// jobDetailsGroupBox
//
this.jobDetailsGroupBox.Controls.Add(this.intervalLabel);
this.jobDetailsGroupBox.Controls.Add(this.numericUpDownInterval);
this.jobDetailsGroupBox.Controls.Add(this.deletePackageCheckBox);
this.jobDetailsGroupBox.Controls.Add(this.addTimestampCheckBox);
this.jobDetailsGroupBox.Controls.Add(this.unzipCheckBox);
@ -121,22 +126,45 @@ namespace RecurringIntegrationsScheduler.Forms
this.jobDetailsGroupBox.Controls.Add(this.jobGroupLabel);
this.jobDetailsGroupBox.Controls.Add(this.jobName);
this.jobDetailsGroupBox.Controls.Add(this.jobNameLabel);
this.jobDetailsGroupBox.Location = new System.Drawing.Point(20, 20);
this.jobDetailsGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.jobDetailsGroupBox.Location = new System.Drawing.Point(24, 24);
this.jobDetailsGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.jobDetailsGroupBox.Name = "jobDetailsGroupBox";
this.jobDetailsGroupBox.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.jobDetailsGroupBox.Size = new System.Drawing.Size(345, 463);
this.jobDetailsGroupBox.Padding = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.jobDetailsGroupBox.Size = new System.Drawing.Size(422, 639);
this.jobDetailsGroupBox.TabIndex = 0;
this.jobDetailsGroupBox.TabStop = false;
this.jobDetailsGroupBox.Text = "Job details";
//
// intervalLabel
//
this.intervalLabel.Location = new System.Drawing.Point(16, 549);
this.intervalLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.intervalLabel.Name = "intervalLabel";
this.intervalLabel.Size = new System.Drawing.Size(273, 77);
this.intervalLabel.TabIndex = 26;
this.intervalLabel.Text = "Delay between attempts to download exported files from blob storage (seconds)";
//
// numericUpDownInterval
//
this.numericUpDownInterval.Location = new System.Drawing.Point(298, 576);
this.numericUpDownInterval.Margin = new System.Windows.Forms.Padding(4);
this.numericUpDownInterval.Maximum = new decimal(new int[] {
3600,
0,
0,
0});
this.numericUpDownInterval.Name = "numericUpDownInterval";
this.numericUpDownInterval.Size = new System.Drawing.Size(105, 29);
this.numericUpDownInterval.TabIndex = 25;
//
// deletePackageCheckBox
//
this.deletePackageCheckBox.AutoSize = true;
this.deletePackageCheckBox.Enabled = false;
this.deletePackageCheckBox.Location = new System.Drawing.Point(18, 425);
this.deletePackageCheckBox.Location = new System.Drawing.Point(22, 510);
this.deletePackageCheckBox.Margin = new System.Windows.Forms.Padding(4);
this.deletePackageCheckBox.Name = "deletePackageCheckBox";
this.deletePackageCheckBox.Size = new System.Drawing.Size(171, 24);
this.deletePackageCheckBox.Size = new System.Drawing.Size(203, 29);
this.deletePackageCheckBox.TabIndex = 14;
this.deletePackageCheckBox.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Delete_package_file;
this.deletePackageCheckBox.UseVisualStyleBackColor = true;
@ -145,9 +173,10 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.addTimestampCheckBox.AutoSize = true;
this.addTimestampCheckBox.Enabled = false;
this.addTimestampCheckBox.Location = new System.Drawing.Point(18, 394);
this.addTimestampCheckBox.Location = new System.Drawing.Point(22, 473);
this.addTimestampCheckBox.Margin = new System.Windows.Forms.Padding(4);
this.addTimestampCheckBox.Name = "addTimestampCheckBox";
this.addTimestampCheckBox.Size = new System.Drawing.Size(260, 24);
this.addTimestampCheckBox.Size = new System.Drawing.Size(315, 29);
this.addTimestampCheckBox.TabIndex = 13;
this.addTimestampCheckBox.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Make_exported_file_name_unique;
this.addTimestampCheckBox.UseVisualStyleBackColor = true;
@ -155,9 +184,10 @@ namespace RecurringIntegrationsScheduler.Forms
// unzipCheckBox
//
this.unzipCheckBox.AutoSize = true;
this.unzipCheckBox.Location = new System.Drawing.Point(18, 363);
this.unzipCheckBox.Location = new System.Drawing.Point(22, 436);
this.unzipCheckBox.Margin = new System.Windows.Forms.Padding(4);
this.unzipCheckBox.Name = "unzipCheckBox";
this.unzipCheckBox.Size = new System.Drawing.Size(165, 24);
this.unzipCheckBox.Size = new System.Drawing.Size(197, 29);
this.unzipCheckBox.TabIndex = 12;
this.unzipCheckBox.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Unzip_package_file;
this.unzipCheckBox.UseVisualStyleBackColor = true;
@ -168,10 +198,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.useStandardSubfolder.AutoSize = true;
this.useStandardSubfolder.Checked = true;
this.useStandardSubfolder.CheckState = System.Windows.Forms.CheckState.Checked;
this.useStandardSubfolder.Location = new System.Drawing.Point(18, 265);
this.useStandardSubfolder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.useStandardSubfolder.Location = new System.Drawing.Point(22, 318);
this.useStandardSubfolder.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.useStandardSubfolder.Name = "useStandardSubfolder";
this.useStandardSubfolder.Size = new System.Drawing.Size(213, 24);
this.useStandardSubfolder.Size = new System.Drawing.Size(253, 29);
this.useStandardSubfolder.TabIndex = 8;
this.useStandardSubfolder.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Use_default_folder_names;
this.useStandardSubfolder.UseVisualStyleBackColor = true;
@ -182,10 +212,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.errorsFolderBrowserButton.Enabled = false;
this.errorsFolderBrowserButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.errorsFolderBrowserButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Folder_open_32xMD_exp;
this.errorsFolderBrowserButton.Location = new System.Drawing.Point(303, 317);
this.errorsFolderBrowserButton.Location = new System.Drawing.Point(370, 380);
this.errorsFolderBrowserButton.Margin = new System.Windows.Forms.Padding(0);
this.errorsFolderBrowserButton.Name = "errorsFolderBrowserButton";
this.errorsFolderBrowserButton.Size = new System.Drawing.Size(36, 40);
this.errorsFolderBrowserButton.Size = new System.Drawing.Size(44, 48);
this.errorsFolderBrowserButton.TabIndex = 7;
this.errorsFolderBrowserButton.TextAlign = System.Drawing.ContentAlignment.TopLeft;
this.errorsFolderBrowserButton.UseVisualStyleBackColor = true;
@ -194,19 +224,19 @@ namespace RecurringIntegrationsScheduler.Forms
// errorsFolder
//
this.errorsFolder.Enabled = false;
this.errorsFolder.Location = new System.Drawing.Point(18, 323);
this.errorsFolder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.errorsFolder.Location = new System.Drawing.Point(22, 388);
this.errorsFolder.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.errorsFolder.Name = "errorsFolder";
this.errorsFolder.Size = new System.Drawing.Size(278, 26);
this.errorsFolder.Size = new System.Drawing.Size(339, 29);
this.errorsFolder.TabIndex = 6;
//
// errorsFolderLabel
//
this.errorsFolderLabel.AutoSize = true;
this.errorsFolderLabel.Location = new System.Drawing.Point(14, 297);
this.errorsFolderLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.errorsFolderLabel.Location = new System.Drawing.Point(17, 356);
this.errorsFolderLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.errorsFolderLabel.Name = "errorsFolderLabel";
this.errorsFolderLabel.Size = new System.Drawing.Size(96, 20);
this.errorsFolderLabel.Size = new System.Drawing.Size(117, 25);
this.errorsFolderLabel.TabIndex = 11;
this.errorsFolderLabel.Text = "Errors folder";
//
@ -214,10 +244,10 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.downloadFolderBrowserButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.downloadFolderBrowserButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Folder_open_32xMD_exp;
this.downloadFolderBrowserButton.Location = new System.Drawing.Point(303, 222);
this.downloadFolderBrowserButton.Location = new System.Drawing.Point(370, 266);
this.downloadFolderBrowserButton.Margin = new System.Windows.Forms.Padding(0);
this.downloadFolderBrowserButton.Name = "downloadFolderBrowserButton";
this.downloadFolderBrowserButton.Size = new System.Drawing.Size(36, 40);
this.downloadFolderBrowserButton.Size = new System.Drawing.Size(44, 48);
this.downloadFolderBrowserButton.TabIndex = 5;
this.downloadFolderBrowserButton.TextAlign = System.Drawing.ContentAlignment.TopLeft;
this.downloadFolderBrowserButton.UseVisualStyleBackColor = true;
@ -225,39 +255,39 @@ namespace RecurringIntegrationsScheduler.Forms
//
// downloadFolder
//
this.downloadFolder.Location = new System.Drawing.Point(20, 226);
this.downloadFolder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.downloadFolder.Location = new System.Drawing.Point(24, 271);
this.downloadFolder.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.downloadFolder.Name = "downloadFolder";
this.downloadFolder.Size = new System.Drawing.Size(278, 26);
this.downloadFolder.Size = new System.Drawing.Size(339, 29);
this.downloadFolder.TabIndex = 4;
this.downloadFolder.TextChanged += new System.EventHandler(this.DownloadFolder_TextChanged);
//
// downloadFolderLabel
//
this.downloadFolderLabel.AutoSize = true;
this.downloadFolderLabel.Location = new System.Drawing.Point(15, 200);
this.downloadFolderLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.downloadFolderLabel.Location = new System.Drawing.Point(18, 240);
this.downloadFolderLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.downloadFolderLabel.Name = "downloadFolderLabel";
this.downloadFolderLabel.Size = new System.Drawing.Size(124, 20);
this.downloadFolderLabel.Size = new System.Drawing.Size(152, 25);
this.downloadFolderLabel.TabIndex = 8;
this.downloadFolderLabel.Text = "Download folder";
//
// jobDescription
//
this.jobDescription.Location = new System.Drawing.Point(16, 140);
this.jobDescription.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.jobDescription.Location = new System.Drawing.Point(20, 168);
this.jobDescription.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.jobDescription.Multiline = true;
this.jobDescription.Name = "jobDescription";
this.jobDescription.Size = new System.Drawing.Size(314, 52);
this.jobDescription.Size = new System.Drawing.Size(383, 62);
this.jobDescription.TabIndex = 3;
//
// jobDescriptionLabel
//
this.jobDescriptionLabel.AutoSize = true;
this.jobDescriptionLabel.Location = new System.Drawing.Point(14, 114);
this.jobDescriptionLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.jobDescriptionLabel.Location = new System.Drawing.Point(17, 137);
this.jobDescriptionLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.jobDescriptionLabel.Name = "jobDescriptionLabel";
this.jobDescriptionLabel.Size = new System.Drawing.Size(89, 20);
this.jobDescriptionLabel.Size = new System.Drawing.Size(109, 25);
this.jobDescriptionLabel.TabIndex = 4;
this.jobDescriptionLabel.Text = "Description";
//
@ -265,38 +295,38 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.jobGroupComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.jobGroupComboBox.FormattingEnabled = true;
this.jobGroupComboBox.Location = new System.Drawing.Point(75, 75);
this.jobGroupComboBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.jobGroupComboBox.Location = new System.Drawing.Point(92, 90);
this.jobGroupComboBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.jobGroupComboBox.Name = "jobGroupComboBox";
this.jobGroupComboBox.Size = new System.Drawing.Size(258, 28);
this.jobGroupComboBox.Size = new System.Drawing.Size(314, 32);
this.jobGroupComboBox.Sorted = true;
this.jobGroupComboBox.TabIndex = 2;
//
// jobGroupLabel
//
this.jobGroupLabel.AutoSize = true;
this.jobGroupLabel.Location = new System.Drawing.Point(14, 80);
this.jobGroupLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.jobGroupLabel.Location = new System.Drawing.Point(17, 96);
this.jobGroupLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.jobGroupLabel.Name = "jobGroupLabel";
this.jobGroupLabel.Size = new System.Drawing.Size(54, 20);
this.jobGroupLabel.Size = new System.Drawing.Size(66, 25);
this.jobGroupLabel.TabIndex = 2;
this.jobGroupLabel.Text = "Group";
//
// jobName
//
this.jobName.Location = new System.Drawing.Point(75, 26);
this.jobName.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.jobName.Location = new System.Drawing.Point(92, 31);
this.jobName.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.jobName.Name = "jobName";
this.jobName.Size = new System.Drawing.Size(258, 26);
this.jobName.Size = new System.Drawing.Size(314, 29);
this.jobName.TabIndex = 1;
//
// jobNameLabel
//
this.jobNameLabel.AutoSize = true;
this.jobNameLabel.Location = new System.Drawing.Point(14, 31);
this.jobNameLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.jobNameLabel.Location = new System.Drawing.Point(17, 37);
this.jobNameLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.jobNameLabel.Name = "jobNameLabel";
this.jobNameLabel.Size = new System.Drawing.Size(51, 20);
this.jobNameLabel.Size = new System.Drawing.Size(64, 25);
this.jobNameLabel.TabIndex = 0;
this.jobNameLabel.Text = "Name";
//
@ -311,11 +341,11 @@ namespace RecurringIntegrationsScheduler.Forms
this.axDetailsGroupBox.Controls.Add(this.userComboBox);
this.axDetailsGroupBox.Controls.Add(this.instanceLabel);
this.axDetailsGroupBox.Controls.Add(this.instanceComboBox);
this.axDetailsGroupBox.Location = new System.Drawing.Point(20, 492);
this.axDetailsGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.axDetailsGroupBox.Location = new System.Drawing.Point(24, 675);
this.axDetailsGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.axDetailsGroupBox.Name = "axDetailsGroupBox";
this.axDetailsGroupBox.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.axDetailsGroupBox.Size = new System.Drawing.Size(345, 237);
this.axDetailsGroupBox.Padding = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.axDetailsGroupBox.Size = new System.Drawing.Size(422, 284);
this.axDetailsGroupBox.TabIndex = 1;
this.axDetailsGroupBox.TabStop = false;
this.axDetailsGroupBox.Text = "Dynamics details";
@ -323,10 +353,10 @@ namespace RecurringIntegrationsScheduler.Forms
// aadApplicationLabel
//
this.aadApplicationLabel.AutoSize = true;
this.aadApplicationLabel.Location = new System.Drawing.Point(14, 158);
this.aadApplicationLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.aadApplicationLabel.Location = new System.Drawing.Point(17, 190);
this.aadApplicationLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.aadApplicationLabel.Name = "aadApplicationLabel";
this.aadApplicationLabel.Size = new System.Drawing.Size(123, 20);
this.aadApplicationLabel.Size = new System.Drawing.Size(152, 25);
this.aadApplicationLabel.TabIndex = 34;
this.aadApplicationLabel.Text = "AAD application";
//
@ -334,29 +364,29 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.aadApplicationComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.aadApplicationComboBox.FormattingEnabled = true;
this.aadApplicationComboBox.Location = new System.Drawing.Point(159, 155);
this.aadApplicationComboBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.aadApplicationComboBox.Location = new System.Drawing.Point(194, 186);
this.aadApplicationComboBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.aadApplicationComboBox.Name = "aadApplicationComboBox";
this.aadApplicationComboBox.Size = new System.Drawing.Size(174, 28);
this.aadApplicationComboBox.Size = new System.Drawing.Size(212, 32);
this.aadApplicationComboBox.TabIndex = 33;
//
// authMethodPanel
//
this.authMethodPanel.Controls.Add(this.serviceAuthRadioButton);
this.authMethodPanel.Controls.Add(this.userAuthRadioButton);
this.authMethodPanel.Location = new System.Drawing.Point(12, 106);
this.authMethodPanel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.authMethodPanel.Location = new System.Drawing.Point(15, 127);
this.authMethodPanel.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.authMethodPanel.Name = "authMethodPanel";
this.authMethodPanel.Size = new System.Drawing.Size(321, 38);
this.authMethodPanel.Size = new System.Drawing.Size(392, 46);
this.authMethodPanel.TabIndex = 31;
//
// serviceAuthRadioButton
//
this.serviceAuthRadioButton.AutoSize = true;
this.serviceAuthRadioButton.Location = new System.Drawing.Point(177, 5);
this.serviceAuthRadioButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.serviceAuthRadioButton.Location = new System.Drawing.Point(216, 6);
this.serviceAuthRadioButton.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.serviceAuthRadioButton.Name = "serviceAuthRadioButton";
this.serviceAuthRadioButton.Size = new System.Drawing.Size(122, 24);
this.serviceAuthRadioButton.Size = new System.Drawing.Size(146, 29);
this.serviceAuthRadioButton.TabIndex = 16;
this.serviceAuthRadioButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Service_auth;
this.serviceAuthRadioButton.UseVisualStyleBackColor = true;
@ -366,10 +396,10 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.userAuthRadioButton.AutoSize = true;
this.userAuthRadioButton.Checked = true;
this.userAuthRadioButton.Location = new System.Drawing.Point(4, 5);
this.userAuthRadioButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.userAuthRadioButton.Location = new System.Drawing.Point(5, 6);
this.userAuthRadioButton.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.userAuthRadioButton.Name = "userAuthRadioButton";
this.userAuthRadioButton.Size = new System.Drawing.Size(104, 24);
this.userAuthRadioButton.Size = new System.Drawing.Size(121, 29);
this.userAuthRadioButton.TabIndex = 15;
this.userAuthRadioButton.TabStop = true;
this.userAuthRadioButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.User_auth;
@ -378,10 +408,10 @@ namespace RecurringIntegrationsScheduler.Forms
// dataJobLabel
//
this.dataJobLabel.AutoSize = true;
this.dataJobLabel.Location = new System.Drawing.Point(30, 71);
this.dataJobLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.dataJobLabel.Location = new System.Drawing.Point(37, 85);
this.dataJobLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.dataJobLabel.Name = "dataJobLabel";
this.dataJobLabel.Size = new System.Drawing.Size(69, 20);
this.dataJobLabel.Size = new System.Drawing.Size(84, 25);
this.dataJobLabel.TabIndex = 22;
this.dataJobLabel.Text = "Data job";
//
@ -389,19 +419,19 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.dataJobComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.dataJobComboBox.FormattingEnabled = true;
this.dataJobComboBox.Location = new System.Drawing.Point(114, 66);
this.dataJobComboBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.dataJobComboBox.Location = new System.Drawing.Point(139, 79);
this.dataJobComboBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.dataJobComboBox.Name = "dataJobComboBox";
this.dataJobComboBox.Size = new System.Drawing.Size(218, 28);
this.dataJobComboBox.Size = new System.Drawing.Size(266, 32);
this.dataJobComboBox.TabIndex = 11;
//
// userLabel
//
this.userLabel.AutoSize = true;
this.userLabel.Location = new System.Drawing.Point(98, 198);
this.userLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.userLabel.Location = new System.Drawing.Point(120, 238);
this.userLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.userLabel.Name = "userLabel";
this.userLabel.Size = new System.Drawing.Size(43, 20);
this.userLabel.Size = new System.Drawing.Size(53, 25);
this.userLabel.TabIndex = 19;
this.userLabel.Text = "User";
//
@ -409,19 +439,19 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.userComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.userComboBox.FormattingEnabled = true;
this.userComboBox.Location = new System.Drawing.Point(159, 195);
this.userComboBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.userComboBox.Location = new System.Drawing.Point(194, 234);
this.userComboBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.userComboBox.Name = "userComboBox";
this.userComboBox.Size = new System.Drawing.Size(174, 28);
this.userComboBox.Size = new System.Drawing.Size(212, 32);
this.userComboBox.TabIndex = 10;
//
// instanceLabel
//
this.instanceLabel.AutoSize = true;
this.instanceLabel.Location = new System.Drawing.Point(30, 31);
this.instanceLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.instanceLabel.Location = new System.Drawing.Point(37, 37);
this.instanceLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.instanceLabel.Name = "instanceLabel";
this.instanceLabel.Size = new System.Drawing.Size(71, 20);
this.instanceLabel.Size = new System.Drawing.Size(86, 25);
this.instanceLabel.TabIndex = 16;
this.instanceLabel.Text = "Instance";
//
@ -429,10 +459,10 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.instanceComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.instanceComboBox.FormattingEnabled = true;
this.instanceComboBox.Location = new System.Drawing.Point(114, 26);
this.instanceComboBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.instanceComboBox.Location = new System.Drawing.Point(139, 31);
this.instanceComboBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.instanceComboBox.Name = "instanceComboBox";
this.instanceComboBox.Size = new System.Drawing.Size(218, 28);
this.instanceComboBox.Size = new System.Drawing.Size(266, 32);
this.instanceComboBox.TabIndex = 9;
//
// recurrenceGroupBox
@ -454,11 +484,11 @@ namespace RecurringIntegrationsScheduler.Forms
this.recurrenceGroupBox.Controls.Add(this.startAtDateTimePicker);
this.recurrenceGroupBox.Controls.Add(this.minutesDateTimePicker);
this.recurrenceGroupBox.Controls.Add(this.hoursDateTimePicker);
this.recurrenceGroupBox.Location = new System.Drawing.Point(372, 20);
this.recurrenceGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.recurrenceGroupBox.Location = new System.Drawing.Point(455, 24);
this.recurrenceGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.recurrenceGroupBox.Name = "recurrenceGroupBox";
this.recurrenceGroupBox.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.recurrenceGroupBox.Size = new System.Drawing.Size(345, 700);
this.recurrenceGroupBox.Padding = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.recurrenceGroupBox.Size = new System.Drawing.Size(422, 840);
this.recurrenceGroupBox.TabIndex = 2;
this.recurrenceGroupBox.TabStop = false;
this.recurrenceGroupBox.Text = "Recurrence";
@ -466,19 +496,20 @@ namespace RecurringIntegrationsScheduler.Forms
// pauseIndefinitelyCheckBox
//
this.pauseIndefinitelyCheckBox.AutoSize = true;
this.pauseIndefinitelyCheckBox.Location = new System.Drawing.Point(14, 31);
this.pauseIndefinitelyCheckBox.Location = new System.Drawing.Point(17, 37);
this.pauseIndefinitelyCheckBox.Margin = new System.Windows.Forms.Padding(4);
this.pauseIndefinitelyCheckBox.Name = "pauseIndefinitelyCheckBox";
this.pauseIndefinitelyCheckBox.Size = new System.Drawing.Size(183, 24);
this.pauseIndefinitelyCheckBox.Size = new System.Drawing.Size(221, 29);
this.pauseIndefinitelyCheckBox.TabIndex = 0;
this.pauseIndefinitelyCheckBox.Text = "Pause job indefinitely";
this.pauseIndefinitelyCheckBox.UseVisualStyleBackColor = true;
//
// moreExamplesButton
//
this.moreExamplesButton.Location = new System.Drawing.Point(237, 569);
this.moreExamplesButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.moreExamplesButton.Location = new System.Drawing.Point(290, 683);
this.moreExamplesButton.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.moreExamplesButton.Name = "moreExamplesButton";
this.moreExamplesButton.Size = new System.Drawing.Size(99, 102);
this.moreExamplesButton.Size = new System.Drawing.Size(121, 122);
this.moreExamplesButton.TabIndex = 19;
this.moreExamplesButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.More_examples;
this.moreExamplesButton.UseVisualStyleBackColor = true;
@ -487,22 +518,22 @@ namespace RecurringIntegrationsScheduler.Forms
// calculatedRunsTextBox
//
this.calculatedRunsTextBox.BackColor = System.Drawing.SystemColors.Control;
this.calculatedRunsTextBox.Location = new System.Drawing.Point(9, 569);
this.calculatedRunsTextBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.calculatedRunsTextBox.Location = new System.Drawing.Point(11, 683);
this.calculatedRunsTextBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.calculatedRunsTextBox.Multiline = true;
this.calculatedRunsTextBox.Name = "calculatedRunsTextBox";
this.calculatedRunsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.calculatedRunsTextBox.Size = new System.Drawing.Size(216, 99);
this.calculatedRunsTextBox.Size = new System.Drawing.Size(263, 118);
this.calculatedRunsTextBox.TabIndex = 32;
this.calculatedRunsTextBox.TabStop = false;
//
// calculateNextRunsButton
//
this.calculateNextRunsButton.Enabled = false;
this.calculateNextRunsButton.Location = new System.Drawing.Point(9, 520);
this.calculateNextRunsButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.calculateNextRunsButton.Location = new System.Drawing.Point(11, 624);
this.calculateNextRunsButton.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.calculateNextRunsButton.Name = "calculateNextRunsButton";
this.calculateNextRunsButton.Size = new System.Drawing.Size(327, 35);
this.calculateNextRunsButton.Size = new System.Drawing.Size(400, 42);
this.calculateNextRunsButton.TabIndex = 18;
this.calculateNextRunsButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Calculate_next_100_runs_of_cron_trigger;
this.calculateNextRunsButton.UseVisualStyleBackColor = true;
@ -511,10 +542,10 @@ namespace RecurringIntegrationsScheduler.Forms
// cronDocsLinkLabel
//
this.cronDocsLinkLabel.AutoSize = true;
this.cronDocsLinkLabel.Location = new System.Drawing.Point(9, 489);
this.cronDocsLinkLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.cronDocsLinkLabel.Location = new System.Drawing.Point(11, 587);
this.cronDocsLinkLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.cronDocsLinkLabel.Name = "cronDocsLinkLabel";
this.cronDocsLinkLabel.Size = new System.Drawing.Size(259, 20);
this.cronDocsLinkLabel.Size = new System.Drawing.Size(316, 25);
this.cronDocsLinkLabel.TabIndex = 30;
this.cronDocsLinkLabel.TabStop = true;
this.cronDocsLinkLabel.Text = "Quartz cron triggers documentation";
@ -524,19 +555,19 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.triggerTypePanel.Controls.Add(this.cronTriggerRadioButton);
this.triggerTypePanel.Controls.Add(this.simpleTriggerRadioButton);
this.triggerTypePanel.Location = new System.Drawing.Point(14, 105);
this.triggerTypePanel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.triggerTypePanel.Location = new System.Drawing.Point(17, 126);
this.triggerTypePanel.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.triggerTypePanel.Name = "triggerTypePanel";
this.triggerTypePanel.Size = new System.Drawing.Size(321, 37);
this.triggerTypePanel.Size = new System.Drawing.Size(392, 44);
this.triggerTypePanel.TabIndex = 29;
//
// cronTriggerRadioButton
//
this.cronTriggerRadioButton.AutoSize = true;
this.cronTriggerRadioButton.Location = new System.Drawing.Point(194, 8);
this.cronTriggerRadioButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.cronTriggerRadioButton.Location = new System.Drawing.Point(237, 10);
this.cronTriggerRadioButton.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.cronTriggerRadioButton.Name = "cronTriggerRadioButton";
this.cronTriggerRadioButton.Size = new System.Drawing.Size(117, 24);
this.cronTriggerRadioButton.Size = new System.Drawing.Size(139, 29);
this.cronTriggerRadioButton.TabIndex = 16;
this.cronTriggerRadioButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Cron_trigger;
this.cronTriggerRadioButton.UseVisualStyleBackColor = true;
@ -546,10 +577,10 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.simpleTriggerRadioButton.AutoSize = true;
this.simpleTriggerRadioButton.Checked = true;
this.simpleTriggerRadioButton.Location = new System.Drawing.Point(4, 5);
this.simpleTriggerRadioButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.simpleTriggerRadioButton.Location = new System.Drawing.Point(5, 6);
this.simpleTriggerRadioButton.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.simpleTriggerRadioButton.Name = "simpleTriggerRadioButton";
this.simpleTriggerRadioButton.Size = new System.Drawing.Size(131, 24);
this.simpleTriggerRadioButton.Size = new System.Drawing.Size(156, 29);
this.simpleTriggerRadioButton.TabIndex = 15;
this.simpleTriggerRadioButton.TabStop = true;
this.simpleTriggerRadioButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Simple_trigger;
@ -558,10 +589,10 @@ namespace RecurringIntegrationsScheduler.Forms
// buildCronLabel
//
this.buildCronLabel.AutoSize = true;
this.buildCronLabel.Location = new System.Drawing.Point(9, 457);
this.buildCronLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.buildCronLabel.Location = new System.Drawing.Point(11, 548);
this.buildCronLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.buildCronLabel.Name = "buildCronLabel";
this.buildCronLabel.Size = new System.Drawing.Size(177, 20);
this.buildCronLabel.Size = new System.Drawing.Size(219, 25);
this.buildCronLabel.TabIndex = 26;
this.buildCronLabel.Text = "Build cron expression at";
//
@ -569,11 +600,11 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.cronTriggerInfoTextBox.BackColor = System.Drawing.SystemColors.Control;
this.cronTriggerInfoTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.cronTriggerInfoTextBox.Location = new System.Drawing.Point(14, 214);
this.cronTriggerInfoTextBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.cronTriggerInfoTextBox.Location = new System.Drawing.Point(17, 257);
this.cronTriggerInfoTextBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.cronTriggerInfoTextBox.Multiline = true;
this.cronTriggerInfoTextBox.Name = "cronTriggerInfoTextBox";
this.cronTriggerInfoTextBox.Size = new System.Drawing.Size(312, 238);
this.cronTriggerInfoTextBox.Size = new System.Drawing.Size(381, 286);
this.cronTriggerInfoTextBox.TabIndex = 25;
this.cronTriggerInfoTextBox.TabStop = false;
this.cronTriggerInfoTextBox.Text = resources.GetString("cronTriggerInfoTextBox.Text");
@ -581,10 +612,10 @@ namespace RecurringIntegrationsScheduler.Forms
// cronmakerLinkLabel
//
this.cronmakerLinkLabel.AutoSize = true;
this.cronmakerLinkLabel.Location = new System.Drawing.Point(186, 457);
this.cronmakerLinkLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.cronmakerLinkLabel.Location = new System.Drawing.Point(227, 548);
this.cronmakerLinkLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.cronmakerLinkLabel.Name = "cronmakerLinkLabel";
this.cronmakerLinkLabel.Size = new System.Drawing.Size(118, 20);
this.cronmakerLinkLabel.Size = new System.Drawing.Size(146, 25);
this.cronmakerLinkLabel.TabIndex = 24;
this.cronmakerLinkLabel.TabStop = true;
this.cronmakerLinkLabel.Text = "cronmaker.com";
@ -593,30 +624,30 @@ namespace RecurringIntegrationsScheduler.Forms
// cronExpressionLabel
//
this.cronExpressionLabel.AutoSize = true;
this.cronExpressionLabel.Location = new System.Drawing.Point(9, 149);
this.cronExpressionLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.cronExpressionLabel.Location = new System.Drawing.Point(11, 179);
this.cronExpressionLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.cronExpressionLabel.Name = "cronExpressionLabel";
this.cronExpressionLabel.Size = new System.Drawing.Size(123, 20);
this.cronExpressionLabel.Size = new System.Drawing.Size(155, 25);
this.cronExpressionLabel.TabIndex = 23;
this.cronExpressionLabel.Text = "Cron expression";
//
// cronExpressionTextBox
//
this.cronExpressionTextBox.Enabled = false;
this.cronExpressionTextBox.Location = new System.Drawing.Point(14, 174);
this.cronExpressionTextBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.cronExpressionTextBox.Location = new System.Drawing.Point(17, 209);
this.cronExpressionTextBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.cronExpressionTextBox.Name = "cronExpressionTextBox";
this.cronExpressionTextBox.Size = new System.Drawing.Size(320, 26);
this.cronExpressionTextBox.Size = new System.Drawing.Size(390, 29);
this.cronExpressionTextBox.TabIndex = 17;
this.cronExpressionTextBox.Text = "0 0/15 8-18 ? * MON-FRI *";
//
// minutesLabel
//
this.minutesLabel.AutoSize = true;
this.minutesLabel.Location = new System.Drawing.Point(96, 69);
this.minutesLabel.Location = new System.Drawing.Point(117, 83);
this.minutesLabel.Margin = new System.Windows.Forms.Padding(0);
this.minutesLabel.Name = "minutesLabel";
this.minutesLabel.Size = new System.Drawing.Size(26, 20);
this.minutesLabel.Size = new System.Drawing.Size(35, 25);
this.minutesLabel.TabIndex = 5;
this.minutesLabel.Text = "M:";
this.minutesLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
@ -624,10 +655,10 @@ namespace RecurringIntegrationsScheduler.Forms
// hoursLabel
//
this.hoursLabel.AutoSize = true;
this.hoursLabel.Location = new System.Drawing.Point(9, 69);
this.hoursLabel.Location = new System.Drawing.Point(11, 83);
this.hoursLabel.Margin = new System.Windows.Forms.Padding(0);
this.hoursLabel.Name = "hoursLabel";
this.hoursLabel.Size = new System.Drawing.Size(25, 20);
this.hoursLabel.Size = new System.Drawing.Size(32, 25);
this.hoursLabel.TabIndex = 4;
this.hoursLabel.Text = "H:";
this.hoursLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
@ -635,10 +666,10 @@ namespace RecurringIntegrationsScheduler.Forms
// startAtLabel
//
this.startAtLabel.AutoSize = true;
this.startAtLabel.Location = new System.Drawing.Point(189, 69);
this.startAtLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.startAtLabel.Location = new System.Drawing.Point(231, 83);
this.startAtLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.startAtLabel.Name = "startAtLabel";
this.startAtLabel.Size = new System.Drawing.Size(59, 20);
this.startAtLabel.Size = new System.Drawing.Size(70, 25);
this.startAtLabel.TabIndex = 3;
this.startAtLabel.Text = "start at";
this.startAtLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
@ -647,11 +678,11 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.startAtDateTimePicker.CustomFormat = "HH:mm";
this.startAtDateTimePicker.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.startAtDateTimePicker.Location = new System.Drawing.Point(248, 65);
this.startAtDateTimePicker.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.startAtDateTimePicker.Location = new System.Drawing.Point(303, 78);
this.startAtDateTimePicker.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.startAtDateTimePicker.Name = "startAtDateTimePicker";
this.startAtDateTimePicker.ShowUpDown = true;
this.startAtDateTimePicker.Size = new System.Drawing.Size(76, 26);
this.startAtDateTimePicker.Size = new System.Drawing.Size(92, 29);
this.startAtDateTimePicker.TabIndex = 14;
this.startAtDateTimePicker.Value = new System.DateTime(2016, 6, 26, 0, 0, 0, 0);
//
@ -659,11 +690,11 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.minutesDateTimePicker.CustomFormat = "mm";
this.minutesDateTimePicker.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.minutesDateTimePicker.Location = new System.Drawing.Point(124, 65);
this.minutesDateTimePicker.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.minutesDateTimePicker.Location = new System.Drawing.Point(152, 78);
this.minutesDateTimePicker.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.minutesDateTimePicker.Name = "minutesDateTimePicker";
this.minutesDateTimePicker.ShowUpDown = true;
this.minutesDateTimePicker.Size = new System.Drawing.Size(50, 26);
this.minutesDateTimePicker.Size = new System.Drawing.Size(60, 29);
this.minutesDateTimePicker.TabIndex = 13;
this.minutesDateTimePicker.Value = new System.DateTime(2016, 6, 26, 0, 1, 0, 0);
//
@ -671,11 +702,11 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.hoursDateTimePicker.CustomFormat = "HH";
this.hoursDateTimePicker.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.hoursDateTimePicker.Location = new System.Drawing.Point(36, 65);
this.hoursDateTimePicker.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.hoursDateTimePicker.Location = new System.Drawing.Point(44, 78);
this.hoursDateTimePicker.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.hoursDateTimePicker.Name = "hoursDateTimePicker";
this.hoursDateTimePicker.ShowUpDown = true;
this.hoursDateTimePicker.Size = new System.Drawing.Size(50, 26);
this.hoursDateTimePicker.Size = new System.Drawing.Size(60, 29);
this.hoursDateTimePicker.TabIndex = 12;
this.hoursDateTimePicker.Value = new System.DateTime(2016, 6, 26, 0, 0, 0, 0);
//
@ -685,26 +716,26 @@ namespace RecurringIntegrationsScheduler.Forms
this.retryPolicyGroupBox.Controls.Add(this.retriesCountUpDown);
this.retryPolicyGroupBox.Controls.Add(this.label2);
this.retryPolicyGroupBox.Controls.Add(this.label1);
this.retryPolicyGroupBox.Location = new System.Drawing.Point(372, 725);
this.retryPolicyGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.retryPolicyGroupBox.Location = new System.Drawing.Point(455, 870);
this.retryPolicyGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.retryPolicyGroupBox.Name = "retryPolicyGroupBox";
this.retryPolicyGroupBox.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.retryPolicyGroupBox.Size = new System.Drawing.Size(346, 103);
this.retryPolicyGroupBox.Padding = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.retryPolicyGroupBox.Size = new System.Drawing.Size(423, 124);
this.retryPolicyGroupBox.TabIndex = 7;
this.retryPolicyGroupBox.TabStop = false;
this.retryPolicyGroupBox.Text = "Retry policy";
//
// retriesDelayUpDown
//
this.retriesDelayUpDown.Location = new System.Drawing.Point(150, 65);
this.retriesDelayUpDown.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.retriesDelayUpDown.Location = new System.Drawing.Point(183, 78);
this.retriesDelayUpDown.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.retriesDelayUpDown.Maximum = new decimal(new int[] {
86400,
0,
0,
0});
this.retriesDelayUpDown.Name = "retriesDelayUpDown";
this.retriesDelayUpDown.Size = new System.Drawing.Size(99, 26);
this.retriesDelayUpDown.Size = new System.Drawing.Size(121, 29);
this.retriesDelayUpDown.TabIndex = 7;
this.retriesDelayUpDown.Value = new decimal(new int[] {
60,
@ -714,15 +745,15 @@ namespace RecurringIntegrationsScheduler.Forms
//
// retriesCountUpDown
//
this.retriesCountUpDown.Location = new System.Drawing.Point(150, 28);
this.retriesCountUpDown.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.retriesCountUpDown.Location = new System.Drawing.Point(183, 34);
this.retriesCountUpDown.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.retriesCountUpDown.Maximum = new decimal(new int[] {
9999,
0,
0,
0});
this.retriesCountUpDown.Name = "retriesCountUpDown";
this.retriesCountUpDown.Size = new System.Drawing.Size(99, 26);
this.retriesCountUpDown.Size = new System.Drawing.Size(121, 29);
this.retriesCountUpDown.TabIndex = 6;
this.retriesCountUpDown.Value = new decimal(new int[] {
1,
@ -733,29 +764,31 @@ namespace RecurringIntegrationsScheduler.Forms
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(10, 68);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Location = new System.Drawing.Point(12, 82);
this.label2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(123, 20);
this.label2.Size = new System.Drawing.Size(155, 25);
this.label2.TabIndex = 2;
this.label2.Text = "Delay (seconds)";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(10, 31);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Location = new System.Drawing.Point(12, 37);
this.label1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(131, 20);
this.label1.Size = new System.Drawing.Size(160, 25);
this.label1.TabIndex = 0;
this.label1.Text = "Number of retries";
//
// groupBoxExceptions
//
this.groupBoxExceptions.Controls.Add(this.pauseOnExceptionsCheckBox);
this.groupBoxExceptions.Location = new System.Drawing.Point(20, 737);
this.groupBoxExceptions.Location = new System.Drawing.Point(24, 969);
this.groupBoxExceptions.Margin = new System.Windows.Forms.Padding(4);
this.groupBoxExceptions.Name = "groupBoxExceptions";
this.groupBoxExceptions.Size = new System.Drawing.Size(345, 91);
this.groupBoxExceptions.Padding = new System.Windows.Forms.Padding(4);
this.groupBoxExceptions.Size = new System.Drawing.Size(422, 109);
this.groupBoxExceptions.TabIndex = 10;
this.groupBoxExceptions.TabStop = false;
this.groupBoxExceptions.Text = "Exceptions";
@ -765,9 +798,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.pauseOnExceptionsCheckBox.AutoSize = true;
this.pauseOnExceptionsCheckBox.Checked = true;
this.pauseOnExceptionsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.pauseOnExceptionsCheckBox.Location = new System.Drawing.Point(14, 26);
this.pauseOnExceptionsCheckBox.Location = new System.Drawing.Point(17, 31);
this.pauseOnExceptionsCheckBox.Margin = new System.Windows.Forms.Padding(4);
this.pauseOnExceptionsCheckBox.Name = "pauseOnExceptionsCheckBox";
this.pauseOnExceptionsCheckBox.Size = new System.Drawing.Size(270, 24);
this.pauseOnExceptionsCheckBox.Size = new System.Drawing.Size(329, 29);
this.pauseOnExceptionsCheckBox.TabIndex = 0;
this.pauseOnExceptionsCheckBox.Text = "Pause job when exception occurs";
this.pauseOnExceptionsCheckBox.UseVisualStyleBackColor = true;
@ -776,17 +810,20 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.groupBoxButtons.Controls.Add(this.addJobButton);
this.groupBoxButtons.Controls.Add(this.cancelButton);
this.groupBoxButtons.Location = new System.Drawing.Point(20, 836);
this.groupBoxButtons.Location = new System.Drawing.Point(24, 1075);
this.groupBoxButtons.Margin = new System.Windows.Forms.Padding(4);
this.groupBoxButtons.Name = "groupBoxButtons";
this.groupBoxButtons.Size = new System.Drawing.Size(697, 74);
this.groupBoxButtons.Padding = new System.Windows.Forms.Padding(4);
this.groupBoxButtons.Size = new System.Drawing.Size(852, 89);
this.groupBoxButtons.TabIndex = 11;
this.groupBoxButtons.TabStop = false;
//
// addJobButton
//
this.addJobButton.Location = new System.Drawing.Point(352, 25);
this.addJobButton.Location = new System.Drawing.Point(430, 30);
this.addJobButton.Margin = new System.Windows.Forms.Padding(4);
this.addJobButton.Name = "addJobButton";
this.addJobButton.Size = new System.Drawing.Size(162, 34);
this.addJobButton.Size = new System.Drawing.Size(198, 41);
this.addJobButton.TabIndex = 2;
this.addJobButton.Text = "Add to schedule";
this.addJobButton.UseVisualStyleBackColor = true;
@ -794,9 +831,10 @@ namespace RecurringIntegrationsScheduler.Forms
//
// cancelButton
//
this.cancelButton.Location = new System.Drawing.Point(529, 25);
this.cancelButton.Location = new System.Drawing.Point(647, 30);
this.cancelButton.Margin = new System.Windows.Forms.Padding(4);
this.cancelButton.Name = "cancelButton";
this.cancelButton.Size = new System.Drawing.Size(162, 34);
this.cancelButton.Size = new System.Drawing.Size(198, 41);
this.cancelButton.TabIndex = 1;
this.cancelButton.Text = "Cancel";
this.cancelButton.UseVisualStyleBackColor = true;
@ -804,11 +842,11 @@ namespace RecurringIntegrationsScheduler.Forms
//
// DownloadJob
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 24F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoSize = true;
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.ClientSize = new System.Drawing.Size(724, 920);
this.ClientSize = new System.Drawing.Size(885, 1176);
this.Controls.Add(this.groupBoxButtons);
this.Controls.Add(this.groupBoxExceptions);
this.Controls.Add(this.retryPolicyGroupBox);
@ -816,10 +854,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.Controls.Add(this.axDetailsGroupBox);
this.Controls.Add(this.jobDetailsGroupBox);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(746, 891);
this.MinimumSize = new System.Drawing.Size(906, 1056);
this.Name = "DownloadJob";
this.ShowIcon = false;
this.ShowInTaskbar = false;
@ -828,6 +866,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.Load += new System.EventHandler(this.DownloadJobForm_Load);
this.jobDetailsGroupBox.ResumeLayout(false);
this.jobDetailsGroupBox.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownInterval)).EndInit();
this.axDetailsGroupBox.ResumeLayout(false);
this.axDetailsGroupBox.PerformLayout();
this.authMethodPanel.ResumeLayout(false);
@ -909,5 +948,7 @@ namespace RecurringIntegrationsScheduler.Forms
private System.Windows.Forms.GroupBox groupBoxButtons;
private System.Windows.Forms.Button addJobButton;
private System.Windows.Forms.Button cancelButton;
private System.Windows.Forms.Label intervalLabel;
private System.Windows.Forms.NumericUpDown numericUpDownInterval;
}
}

Просмотреть файл

@ -112,6 +112,7 @@ namespace RecurringIntegrationsScheduler.Forms
Convert.ToBoolean(
JobDetail.JobDataMap[SettingsConstants.UseServiceAuthentication]
.ToString());
numericUpDownInterval.Value = Math.Round(Convert.ToDecimal(JobDetail.JobDataMap[SettingsConstants.Interval]));
if (!serviceAuthRadioButton.Checked)
{
@ -409,7 +410,8 @@ namespace RecurringIntegrationsScheduler.Forms
{SettingsConstants.RetryCount, retriesCountUpDown.Value.ToString(CultureInfo.InvariantCulture)},
{SettingsConstants.RetryDelay, retriesDelayUpDown.Value.ToString(CultureInfo.InvariantCulture)},
{SettingsConstants.PauseJobOnException, pauseOnExceptionsCheckBox.Checked.ToString()},
{SettingsConstants.IndefinitePause, pauseIndefinitelyCheckBox.Checked.ToString()}
{SettingsConstants.IndefinitePause, pauseIndefinitelyCheckBox.Checked.ToString()},
{SettingsConstants.Interval, numericUpDownInterval.Value.ToString(CultureInfo.InvariantCulture)},
};
if (serviceAuthRadioButton.Checked)
{

466
Scheduler/Forms/ExportJob.Designer.cs сгенерированный
Просмотреть файл

@ -35,8 +35,8 @@ namespace RecurringIntegrationsScheduler.Forms
this.addTimestampCheckBox = new System.Windows.Forms.CheckBox();
this.legalEntityLabel = new System.Windows.Forms.Label();
this.legalEntity = new System.Windows.Forms.TextBox();
this.intervalLabel = new System.Windows.Forms.Label();
this.interval = new System.Windows.Forms.NumericUpDown();
this.statusCheckIntervalLabel = new System.Windows.Forms.Label();
this.statusCheckInterval = new System.Windows.Forms.NumericUpDown();
this.dataProjectLabel = new System.Windows.Forms.Label();
this.dataProject = new System.Windows.Forms.TextBox();
this.deletePackageCheckBox = new System.Windows.Forms.CheckBox();
@ -96,8 +96,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.addJobButton = new System.Windows.Forms.Button();
this.cancelButton = new System.Windows.Forms.Button();
this.customActionsButton = new System.Windows.Forms.Button();
this.intervalLabel = new System.Windows.Forms.Label();
this.numericUpDownInterval = new System.Windows.Forms.NumericUpDown();
this.jobDetailsGroupBox.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.interval)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.statusCheckInterval)).BeginInit();
this.axDetailsGroupBox.SuspendLayout();
this.authMethodPanel.SuspendLayout();
this.recurrenceGroupBox.SuspendLayout();
@ -107,15 +109,18 @@ namespace RecurringIntegrationsScheduler.Forms
((System.ComponentModel.ISupportInitialize)(this.retriesCountUpDown)).BeginInit();
this.groupBoxExceptions.SuspendLayout();
this.groupBoxButtons.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownInterval)).BeginInit();
this.SuspendLayout();
//
// jobDetailsGroupBox
//
this.jobDetailsGroupBox.Controls.Add(this.intervalLabel);
this.jobDetailsGroupBox.Controls.Add(this.numericUpDownInterval);
this.jobDetailsGroupBox.Controls.Add(this.addTimestampCheckBox);
this.jobDetailsGroupBox.Controls.Add(this.legalEntityLabel);
this.jobDetailsGroupBox.Controls.Add(this.legalEntity);
this.jobDetailsGroupBox.Controls.Add(this.intervalLabel);
this.jobDetailsGroupBox.Controls.Add(this.interval);
this.jobDetailsGroupBox.Controls.Add(this.statusCheckIntervalLabel);
this.jobDetailsGroupBox.Controls.Add(this.statusCheckInterval);
this.jobDetailsGroupBox.Controls.Add(this.dataProjectLabel);
this.jobDetailsGroupBox.Controls.Add(this.dataProject);
this.jobDetailsGroupBox.Controls.Add(this.deletePackageCheckBox);
@ -133,11 +138,11 @@ namespace RecurringIntegrationsScheduler.Forms
this.jobDetailsGroupBox.Controls.Add(this.jobGroupLabel);
this.jobDetailsGroupBox.Controls.Add(this.jobName);
this.jobDetailsGroupBox.Controls.Add(this.jobNameLabel);
this.jobDetailsGroupBox.Location = new System.Drawing.Point(20, 20);
this.jobDetailsGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.jobDetailsGroupBox.Location = new System.Drawing.Point(24, 24);
this.jobDetailsGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.jobDetailsGroupBox.Name = "jobDetailsGroupBox";
this.jobDetailsGroupBox.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.jobDetailsGroupBox.Size = new System.Drawing.Size(345, 600);
this.jobDetailsGroupBox.Padding = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.jobDetailsGroupBox.Size = new System.Drawing.Size(422, 769);
this.jobDetailsGroupBox.TabIndex = 0;
this.jobDetailsGroupBox.TabStop = false;
this.jobDetailsGroupBox.Text = "Job details";
@ -146,10 +151,10 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.addTimestampCheckBox.AutoSize = true;
this.addTimestampCheckBox.Enabled = false;
this.addTimestampCheckBox.Location = new System.Drawing.Point(16, 394);
this.addTimestampCheckBox.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
this.addTimestampCheckBox.Location = new System.Drawing.Point(20, 473);
this.addTimestampCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
this.addTimestampCheckBox.Name = "addTimestampCheckBox";
this.addTimestampCheckBox.Size = new System.Drawing.Size(260, 24);
this.addTimestampCheckBox.Size = new System.Drawing.Size(315, 29);
this.addTimestampCheckBox.TabIndex = 10;
this.addTimestampCheckBox.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Make_exported_file_name_unique;
this.addTimestampCheckBox.UseVisualStyleBackColor = true;
@ -157,49 +162,50 @@ namespace RecurringIntegrationsScheduler.Forms
// legalEntityLabel
//
this.legalEntityLabel.AutoSize = true;
this.legalEntityLabel.Location = new System.Drawing.Point(15, 500);
this.legalEntityLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.legalEntityLabel.Location = new System.Drawing.Point(18, 600);
this.legalEntityLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.legalEntityLabel.Name = "legalEntityLabel";
this.legalEntityLabel.Size = new System.Drawing.Size(90, 20);
this.legalEntityLabel.Size = new System.Drawing.Size(111, 25);
this.legalEntityLabel.TabIndex = 22;
this.legalEntityLabel.Text = "Legal entity";
//
// legalEntity
//
this.legalEntity.Location = new System.Drawing.Point(120, 497);
this.legalEntity.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.legalEntity.Location = new System.Drawing.Point(147, 596);
this.legalEntity.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.legalEntity.Name = "legalEntity";
this.legalEntity.Size = new System.Drawing.Size(96, 26);
this.legalEntity.Size = new System.Drawing.Size(116, 29);
this.legalEntity.TabIndex = 13;
//
// intervalLabel
// statusCheckIntervalLabel
//
this.intervalLabel.AutoSize = true;
this.intervalLabel.Location = new System.Drawing.Point(15, 538);
this.intervalLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.intervalLabel.Name = "intervalLabel";
this.intervalLabel.Size = new System.Drawing.Size(199, 20);
this.intervalLabel.TabIndex = 20;
this.intervalLabel.Text = "Status check interval (sec.)";
this.statusCheckIntervalLabel.AutoSize = true;
this.statusCheckIntervalLabel.Location = new System.Drawing.Point(18, 646);
this.statusCheckIntervalLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.statusCheckIntervalLabel.Name = "statusCheckIntervalLabel";
this.statusCheckIntervalLabel.Size = new System.Drawing.Size(247, 25);
this.statusCheckIntervalLabel.TabIndex = 20;
this.statusCheckIntervalLabel.Text = "Status check interval (sec.)";
//
// interval
// statusCheckInterval
//
this.interval.Location = new System.Drawing.Point(220, 537);
this.interval.Maximum = new decimal(new int[] {
this.statusCheckInterval.Location = new System.Drawing.Point(269, 644);
this.statusCheckInterval.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.statusCheckInterval.Maximum = new decimal(new int[] {
3600,
0,
0,
0});
this.interval.Minimum = new decimal(new int[] {
this.statusCheckInterval.Minimum = new decimal(new int[] {
5,
0,
0,
0});
this.interval.Name = "interval";
this.interval.Size = new System.Drawing.Size(111, 26);
this.interval.TabIndex = 14;
this.interval.Value = new decimal(new int[] {
300,
this.statusCheckInterval.Name = "statusCheckInterval";
this.statusCheckInterval.Size = new System.Drawing.Size(136, 29);
this.statusCheckInterval.TabIndex = 14;
this.statusCheckInterval.Value = new decimal(new int[] {
5,
0,
0,
0});
@ -207,29 +213,29 @@ namespace RecurringIntegrationsScheduler.Forms
// dataProjectLabel
//
this.dataProjectLabel.AutoSize = true;
this.dataProjectLabel.Location = new System.Drawing.Point(15, 465);
this.dataProjectLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.dataProjectLabel.Location = new System.Drawing.Point(18, 558);
this.dataProjectLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.dataProjectLabel.Name = "dataProjectLabel";
this.dataProjectLabel.Size = new System.Drawing.Size(96, 20);
this.dataProjectLabel.Size = new System.Drawing.Size(116, 25);
this.dataProjectLabel.TabIndex = 16;
this.dataProjectLabel.Text = "Data project";
//
// dataProject
//
this.dataProject.Location = new System.Drawing.Point(118, 462);
this.dataProject.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.dataProject.Location = new System.Drawing.Point(144, 554);
this.dataProject.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.dataProject.Name = "dataProject";
this.dataProject.Size = new System.Drawing.Size(220, 26);
this.dataProject.Size = new System.Drawing.Size(268, 29);
this.dataProject.TabIndex = 12;
//
// deletePackageCheckBox
//
this.deletePackageCheckBox.AutoSize = true;
this.deletePackageCheckBox.Enabled = false;
this.deletePackageCheckBox.Location = new System.Drawing.Point(16, 426);
this.deletePackageCheckBox.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
this.deletePackageCheckBox.Location = new System.Drawing.Point(20, 511);
this.deletePackageCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
this.deletePackageCheckBox.Name = "deletePackageCheckBox";
this.deletePackageCheckBox.Size = new System.Drawing.Size(171, 24);
this.deletePackageCheckBox.Size = new System.Drawing.Size(203, 29);
this.deletePackageCheckBox.TabIndex = 11;
this.deletePackageCheckBox.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Delete_package_file;
this.deletePackageCheckBox.UseVisualStyleBackColor = true;
@ -237,10 +243,10 @@ namespace RecurringIntegrationsScheduler.Forms
// unzipCheckBox
//
this.unzipCheckBox.AutoSize = true;
this.unzipCheckBox.Location = new System.Drawing.Point(18, 362);
this.unzipCheckBox.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
this.unzipCheckBox.Location = new System.Drawing.Point(22, 434);
this.unzipCheckBox.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
this.unzipCheckBox.Name = "unzipCheckBox";
this.unzipCheckBox.Size = new System.Drawing.Size(165, 24);
this.unzipCheckBox.Size = new System.Drawing.Size(197, 29);
this.unzipCheckBox.TabIndex = 9;
this.unzipCheckBox.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Unzip_package_file;
this.unzipCheckBox.UseVisualStyleBackColor = true;
@ -251,10 +257,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.useStandardSubfolder.AutoSize = true;
this.useStandardSubfolder.Checked = true;
this.useStandardSubfolder.CheckState = System.Windows.Forms.CheckState.Checked;
this.useStandardSubfolder.Location = new System.Drawing.Point(18, 265);
this.useStandardSubfolder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.useStandardSubfolder.Location = new System.Drawing.Point(22, 318);
this.useStandardSubfolder.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.useStandardSubfolder.Name = "useStandardSubfolder";
this.useStandardSubfolder.Size = new System.Drawing.Size(213, 24);
this.useStandardSubfolder.Size = new System.Drawing.Size(253, 29);
this.useStandardSubfolder.TabIndex = 6;
this.useStandardSubfolder.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Use_default_folder_names;
this.useStandardSubfolder.UseVisualStyleBackColor = true;
@ -265,10 +271,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.errorsFolderBrowserButton.Enabled = false;
this.errorsFolderBrowserButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.errorsFolderBrowserButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Folder_open_32xMD_exp;
this.errorsFolderBrowserButton.Location = new System.Drawing.Point(303, 318);
this.errorsFolderBrowserButton.Location = new System.Drawing.Point(370, 382);
this.errorsFolderBrowserButton.Margin = new System.Windows.Forms.Padding(0);
this.errorsFolderBrowserButton.Name = "errorsFolderBrowserButton";
this.errorsFolderBrowserButton.Size = new System.Drawing.Size(36, 40);
this.errorsFolderBrowserButton.Size = new System.Drawing.Size(44, 48);
this.errorsFolderBrowserButton.TabIndex = 8;
this.errorsFolderBrowserButton.TextAlign = System.Drawing.ContentAlignment.TopLeft;
this.errorsFolderBrowserButton.UseVisualStyleBackColor = true;
@ -277,19 +283,19 @@ namespace RecurringIntegrationsScheduler.Forms
// errorsFolder
//
this.errorsFolder.Enabled = false;
this.errorsFolder.Location = new System.Drawing.Point(18, 322);
this.errorsFolder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.errorsFolder.Location = new System.Drawing.Point(22, 386);
this.errorsFolder.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.errorsFolder.Name = "errorsFolder";
this.errorsFolder.Size = new System.Drawing.Size(278, 26);
this.errorsFolder.Size = new System.Drawing.Size(339, 29);
this.errorsFolder.TabIndex = 7;
//
// errorsFolderLabel
//
this.errorsFolderLabel.AutoSize = true;
this.errorsFolderLabel.Location = new System.Drawing.Point(14, 295);
this.errorsFolderLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.errorsFolderLabel.Location = new System.Drawing.Point(17, 354);
this.errorsFolderLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.errorsFolderLabel.Name = "errorsFolderLabel";
this.errorsFolderLabel.Size = new System.Drawing.Size(96, 20);
this.errorsFolderLabel.Size = new System.Drawing.Size(117, 25);
this.errorsFolderLabel.TabIndex = 11;
this.errorsFolderLabel.Text = "Errors folder";
//
@ -297,10 +303,10 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.downloadFolderBrowserButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.downloadFolderBrowserButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Folder_open_32xMD_exp;
this.downloadFolderBrowserButton.Location = new System.Drawing.Point(303, 222);
this.downloadFolderBrowserButton.Location = new System.Drawing.Point(370, 266);
this.downloadFolderBrowserButton.Margin = new System.Windows.Forms.Padding(0);
this.downloadFolderBrowserButton.Name = "downloadFolderBrowserButton";
this.downloadFolderBrowserButton.Size = new System.Drawing.Size(36, 40);
this.downloadFolderBrowserButton.Size = new System.Drawing.Size(44, 48);
this.downloadFolderBrowserButton.TabIndex = 5;
this.downloadFolderBrowserButton.TextAlign = System.Drawing.ContentAlignment.TopLeft;
this.downloadFolderBrowserButton.UseVisualStyleBackColor = true;
@ -308,39 +314,39 @@ namespace RecurringIntegrationsScheduler.Forms
//
// downloadFolder
//
this.downloadFolder.Location = new System.Drawing.Point(20, 226);
this.downloadFolder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.downloadFolder.Location = new System.Drawing.Point(24, 271);
this.downloadFolder.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.downloadFolder.Name = "downloadFolder";
this.downloadFolder.Size = new System.Drawing.Size(278, 26);
this.downloadFolder.Size = new System.Drawing.Size(339, 29);
this.downloadFolder.TabIndex = 4;
this.downloadFolder.TextChanged += new System.EventHandler(this.DownloadFolder_TextChanged);
//
// downloadFolderLabel
//
this.downloadFolderLabel.AutoSize = true;
this.downloadFolderLabel.Location = new System.Drawing.Point(15, 200);
this.downloadFolderLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.downloadFolderLabel.Location = new System.Drawing.Point(18, 240);
this.downloadFolderLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.downloadFolderLabel.Name = "downloadFolderLabel";
this.downloadFolderLabel.Size = new System.Drawing.Size(124, 20);
this.downloadFolderLabel.Size = new System.Drawing.Size(152, 25);
this.downloadFolderLabel.TabIndex = 8;
this.downloadFolderLabel.Text = "Download folder";
//
// jobDescription
//
this.jobDescription.Location = new System.Drawing.Point(16, 140);
this.jobDescription.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.jobDescription.Location = new System.Drawing.Point(20, 168);
this.jobDescription.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.jobDescription.Multiline = true;
this.jobDescription.Name = "jobDescription";
this.jobDescription.Size = new System.Drawing.Size(314, 52);
this.jobDescription.Size = new System.Drawing.Size(383, 62);
this.jobDescription.TabIndex = 3;
//
// jobDescriptionLabel
//
this.jobDescriptionLabel.AutoSize = true;
this.jobDescriptionLabel.Location = new System.Drawing.Point(14, 114);
this.jobDescriptionLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.jobDescriptionLabel.Location = new System.Drawing.Point(17, 137);
this.jobDescriptionLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.jobDescriptionLabel.Name = "jobDescriptionLabel";
this.jobDescriptionLabel.Size = new System.Drawing.Size(89, 20);
this.jobDescriptionLabel.Size = new System.Drawing.Size(109, 25);
this.jobDescriptionLabel.TabIndex = 4;
this.jobDescriptionLabel.Text = "Description";
//
@ -348,38 +354,38 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.jobGroupComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.jobGroupComboBox.FormattingEnabled = true;
this.jobGroupComboBox.Location = new System.Drawing.Point(75, 75);
this.jobGroupComboBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.jobGroupComboBox.Location = new System.Drawing.Point(92, 90);
this.jobGroupComboBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.jobGroupComboBox.Name = "jobGroupComboBox";
this.jobGroupComboBox.Size = new System.Drawing.Size(258, 28);
this.jobGroupComboBox.Size = new System.Drawing.Size(314, 32);
this.jobGroupComboBox.Sorted = true;
this.jobGroupComboBox.TabIndex = 2;
//
// jobGroupLabel
//
this.jobGroupLabel.AutoSize = true;
this.jobGroupLabel.Location = new System.Drawing.Point(14, 80);
this.jobGroupLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.jobGroupLabel.Location = new System.Drawing.Point(17, 96);
this.jobGroupLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.jobGroupLabel.Name = "jobGroupLabel";
this.jobGroupLabel.Size = new System.Drawing.Size(54, 20);
this.jobGroupLabel.Size = new System.Drawing.Size(66, 25);
this.jobGroupLabel.TabIndex = 2;
this.jobGroupLabel.Text = "Group";
//
// jobName
//
this.jobName.Location = new System.Drawing.Point(75, 26);
this.jobName.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.jobName.Location = new System.Drawing.Point(92, 31);
this.jobName.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.jobName.Name = "jobName";
this.jobName.Size = new System.Drawing.Size(258, 26);
this.jobName.Size = new System.Drawing.Size(314, 29);
this.jobName.TabIndex = 1;
//
// jobNameLabel
//
this.jobNameLabel.AutoSize = true;
this.jobNameLabel.Location = new System.Drawing.Point(14, 31);
this.jobNameLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.jobNameLabel.Location = new System.Drawing.Point(17, 37);
this.jobNameLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.jobNameLabel.Name = "jobNameLabel";
this.jobNameLabel.Size = new System.Drawing.Size(51, 20);
this.jobNameLabel.Size = new System.Drawing.Size(64, 25);
this.jobNameLabel.TabIndex = 0;
this.jobNameLabel.Text = "Name";
//
@ -392,11 +398,11 @@ namespace RecurringIntegrationsScheduler.Forms
this.axDetailsGroupBox.Controls.Add(this.userComboBox);
this.axDetailsGroupBox.Controls.Add(this.instanceLabel);
this.axDetailsGroupBox.Controls.Add(this.instanceComboBox);
this.axDetailsGroupBox.Location = new System.Drawing.Point(370, 20);
this.axDetailsGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.axDetailsGroupBox.Location = new System.Drawing.Point(452, 24);
this.axDetailsGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.axDetailsGroupBox.Name = "axDetailsGroupBox";
this.axDetailsGroupBox.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.axDetailsGroupBox.Size = new System.Drawing.Size(345, 195);
this.axDetailsGroupBox.Padding = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.axDetailsGroupBox.Size = new System.Drawing.Size(422, 234);
this.axDetailsGroupBox.TabIndex = 1;
this.axDetailsGroupBox.TabStop = false;
this.axDetailsGroupBox.Text = "Dynamics details";
@ -404,10 +410,10 @@ namespace RecurringIntegrationsScheduler.Forms
// aadApplicationLabel
//
this.aadApplicationLabel.AutoSize = true;
this.aadApplicationLabel.Location = new System.Drawing.Point(14, 120);
this.aadApplicationLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.aadApplicationLabel.Location = new System.Drawing.Point(17, 144);
this.aadApplicationLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.aadApplicationLabel.Name = "aadApplicationLabel";
this.aadApplicationLabel.Size = new System.Drawing.Size(123, 20);
this.aadApplicationLabel.Size = new System.Drawing.Size(152, 25);
this.aadApplicationLabel.TabIndex = 34;
this.aadApplicationLabel.Text = "AAD application";
//
@ -415,29 +421,29 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.aadApplicationComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.aadApplicationComboBox.FormattingEnabled = true;
this.aadApplicationComboBox.Location = new System.Drawing.Point(154, 115);
this.aadApplicationComboBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.aadApplicationComboBox.Location = new System.Drawing.Point(188, 138);
this.aadApplicationComboBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.aadApplicationComboBox.Name = "aadApplicationComboBox";
this.aadApplicationComboBox.Size = new System.Drawing.Size(180, 28);
this.aadApplicationComboBox.Size = new System.Drawing.Size(219, 32);
this.aadApplicationComboBox.TabIndex = 17;
//
// authMethodPanel
//
this.authMethodPanel.Controls.Add(this.serviceAuthRadioButton);
this.authMethodPanel.Controls.Add(this.userAuthRadioButton);
this.authMethodPanel.Location = new System.Drawing.Point(12, 68);
this.authMethodPanel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.authMethodPanel.Location = new System.Drawing.Point(15, 82);
this.authMethodPanel.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.authMethodPanel.Name = "authMethodPanel";
this.authMethodPanel.Size = new System.Drawing.Size(322, 38);
this.authMethodPanel.Size = new System.Drawing.Size(394, 46);
this.authMethodPanel.TabIndex = 31;
//
// serviceAuthRadioButton
//
this.serviceAuthRadioButton.AutoSize = true;
this.serviceAuthRadioButton.Location = new System.Drawing.Point(177, 5);
this.serviceAuthRadioButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.serviceAuthRadioButton.Location = new System.Drawing.Point(216, 6);
this.serviceAuthRadioButton.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.serviceAuthRadioButton.Name = "serviceAuthRadioButton";
this.serviceAuthRadioButton.Size = new System.Drawing.Size(122, 24);
this.serviceAuthRadioButton.Size = new System.Drawing.Size(146, 29);
this.serviceAuthRadioButton.TabIndex = 16;
this.serviceAuthRadioButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Service_auth;
this.serviceAuthRadioButton.UseVisualStyleBackColor = true;
@ -447,10 +453,10 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.userAuthRadioButton.AutoSize = true;
this.userAuthRadioButton.Checked = true;
this.userAuthRadioButton.Location = new System.Drawing.Point(4, 5);
this.userAuthRadioButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.userAuthRadioButton.Location = new System.Drawing.Point(5, 6);
this.userAuthRadioButton.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.userAuthRadioButton.Name = "userAuthRadioButton";
this.userAuthRadioButton.Size = new System.Drawing.Size(104, 24);
this.userAuthRadioButton.Size = new System.Drawing.Size(121, 29);
this.userAuthRadioButton.TabIndex = 15;
this.userAuthRadioButton.TabStop = true;
this.userAuthRadioButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.User_auth;
@ -459,10 +465,10 @@ namespace RecurringIntegrationsScheduler.Forms
// userLabel
//
this.userLabel.AutoSize = true;
this.userLabel.Location = new System.Drawing.Point(93, 160);
this.userLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.userLabel.Location = new System.Drawing.Point(114, 192);
this.userLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.userLabel.Name = "userLabel";
this.userLabel.Size = new System.Drawing.Size(43, 20);
this.userLabel.Size = new System.Drawing.Size(53, 25);
this.userLabel.TabIndex = 19;
this.userLabel.Text = "User";
//
@ -470,19 +476,19 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.userComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.userComboBox.FormattingEnabled = true;
this.userComboBox.Location = new System.Drawing.Point(154, 155);
this.userComboBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.userComboBox.Location = new System.Drawing.Point(188, 186);
this.userComboBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.userComboBox.Name = "userComboBox";
this.userComboBox.Size = new System.Drawing.Size(180, 28);
this.userComboBox.Size = new System.Drawing.Size(219, 32);
this.userComboBox.TabIndex = 18;
//
// instanceLabel
//
this.instanceLabel.AutoSize = true;
this.instanceLabel.Location = new System.Drawing.Point(28, 31);
this.instanceLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.instanceLabel.Location = new System.Drawing.Point(34, 37);
this.instanceLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.instanceLabel.Name = "instanceLabel";
this.instanceLabel.Size = new System.Drawing.Size(71, 20);
this.instanceLabel.Size = new System.Drawing.Size(86, 25);
this.instanceLabel.TabIndex = 16;
this.instanceLabel.Text = "Instance";
//
@ -490,10 +496,10 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.instanceComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.instanceComboBox.FormattingEnabled = true;
this.instanceComboBox.Location = new System.Drawing.Point(114, 26);
this.instanceComboBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.instanceComboBox.Location = new System.Drawing.Point(139, 31);
this.instanceComboBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.instanceComboBox.Name = "instanceComboBox";
this.instanceComboBox.Size = new System.Drawing.Size(218, 28);
this.instanceComboBox.Size = new System.Drawing.Size(266, 32);
this.instanceComboBox.TabIndex = 14;
//
// recurrenceGroupBox
@ -515,11 +521,11 @@ namespace RecurringIntegrationsScheduler.Forms
this.recurrenceGroupBox.Controls.Add(this.startAtDateTimePicker);
this.recurrenceGroupBox.Controls.Add(this.minutesDateTimePicker);
this.recurrenceGroupBox.Controls.Add(this.hoursDateTimePicker);
this.recurrenceGroupBox.Location = new System.Drawing.Point(724, 20);
this.recurrenceGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.recurrenceGroupBox.Location = new System.Drawing.Point(885, 24);
this.recurrenceGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.recurrenceGroupBox.Name = "recurrenceGroupBox";
this.recurrenceGroupBox.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.recurrenceGroupBox.Size = new System.Drawing.Size(345, 700);
this.recurrenceGroupBox.Padding = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.recurrenceGroupBox.Size = new System.Drawing.Size(422, 840);
this.recurrenceGroupBox.TabIndex = 2;
this.recurrenceGroupBox.TabStop = false;
this.recurrenceGroupBox.Text = "Recurrence";
@ -527,19 +533,20 @@ namespace RecurringIntegrationsScheduler.Forms
// pauseIndefinitelyCheckBox
//
this.pauseIndefinitelyCheckBox.AutoSize = true;
this.pauseIndefinitelyCheckBox.Location = new System.Drawing.Point(14, 35);
this.pauseIndefinitelyCheckBox.Location = new System.Drawing.Point(17, 42);
this.pauseIndefinitelyCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.pauseIndefinitelyCheckBox.Name = "pauseIndefinitelyCheckBox";
this.pauseIndefinitelyCheckBox.Size = new System.Drawing.Size(183, 24);
this.pauseIndefinitelyCheckBox.Size = new System.Drawing.Size(221, 29);
this.pauseIndefinitelyCheckBox.TabIndex = 0;
this.pauseIndefinitelyCheckBox.Text = "Pause job indefinitely";
this.pauseIndefinitelyCheckBox.UseVisualStyleBackColor = true;
//
// moreExamplesButton
//
this.moreExamplesButton.Location = new System.Drawing.Point(237, 585);
this.moreExamplesButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.moreExamplesButton.Location = new System.Drawing.Point(290, 702);
this.moreExamplesButton.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.moreExamplesButton.Name = "moreExamplesButton";
this.moreExamplesButton.Size = new System.Drawing.Size(99, 102);
this.moreExamplesButton.Size = new System.Drawing.Size(121, 122);
this.moreExamplesButton.TabIndex = 27;
this.moreExamplesButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.More_examples;
this.moreExamplesButton.UseVisualStyleBackColor = true;
@ -548,22 +555,22 @@ namespace RecurringIntegrationsScheduler.Forms
// calculatedRunsTextBox
//
this.calculatedRunsTextBox.BackColor = System.Drawing.SystemColors.Control;
this.calculatedRunsTextBox.Location = new System.Drawing.Point(9, 585);
this.calculatedRunsTextBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.calculatedRunsTextBox.Location = new System.Drawing.Point(11, 702);
this.calculatedRunsTextBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.calculatedRunsTextBox.Multiline = true;
this.calculatedRunsTextBox.Name = "calculatedRunsTextBox";
this.calculatedRunsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.calculatedRunsTextBox.Size = new System.Drawing.Size(216, 99);
this.calculatedRunsTextBox.Size = new System.Drawing.Size(263, 118);
this.calculatedRunsTextBox.TabIndex = 26;
this.calculatedRunsTextBox.TabStop = false;
//
// calculateNextRunsButton
//
this.calculateNextRunsButton.Enabled = false;
this.calculateNextRunsButton.Location = new System.Drawing.Point(9, 535);
this.calculateNextRunsButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.calculateNextRunsButton.Location = new System.Drawing.Point(11, 642);
this.calculateNextRunsButton.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.calculateNextRunsButton.Name = "calculateNextRunsButton";
this.calculateNextRunsButton.Size = new System.Drawing.Size(327, 35);
this.calculateNextRunsButton.Size = new System.Drawing.Size(400, 42);
this.calculateNextRunsButton.TabIndex = 25;
this.calculateNextRunsButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Calculate_next_100_runs_of_cron_trigger;
this.calculateNextRunsButton.UseVisualStyleBackColor = true;
@ -572,10 +579,10 @@ namespace RecurringIntegrationsScheduler.Forms
// cronDocsLinkLabel
//
this.cronDocsLinkLabel.AutoSize = true;
this.cronDocsLinkLabel.Location = new System.Drawing.Point(9, 505);
this.cronDocsLinkLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.cronDocsLinkLabel.Location = new System.Drawing.Point(11, 606);
this.cronDocsLinkLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.cronDocsLinkLabel.Name = "cronDocsLinkLabel";
this.cronDocsLinkLabel.Size = new System.Drawing.Size(259, 20);
this.cronDocsLinkLabel.Size = new System.Drawing.Size(316, 25);
this.cronDocsLinkLabel.TabIndex = 30;
this.cronDocsLinkLabel.TabStop = true;
this.cronDocsLinkLabel.Text = "Quartz cron triggers documentation";
@ -585,19 +592,19 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.triggerTypePanel.Controls.Add(this.cronTriggerRadioButton);
this.triggerTypePanel.Controls.Add(this.simpleTriggerRadioButton);
this.triggerTypePanel.Location = new System.Drawing.Point(14, 120);
this.triggerTypePanel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.triggerTypePanel.Location = new System.Drawing.Point(17, 144);
this.triggerTypePanel.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.triggerTypePanel.Name = "triggerTypePanel";
this.triggerTypePanel.Size = new System.Drawing.Size(321, 35);
this.triggerTypePanel.Size = new System.Drawing.Size(392, 42);
this.triggerTypePanel.TabIndex = 29;
//
// cronTriggerRadioButton
//
this.cronTriggerRadioButton.AutoSize = true;
this.cronTriggerRadioButton.Location = new System.Drawing.Point(194, 8);
this.cronTriggerRadioButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.cronTriggerRadioButton.Location = new System.Drawing.Point(237, 10);
this.cronTriggerRadioButton.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.cronTriggerRadioButton.Name = "cronTriggerRadioButton";
this.cronTriggerRadioButton.Size = new System.Drawing.Size(117, 24);
this.cronTriggerRadioButton.Size = new System.Drawing.Size(139, 29);
this.cronTriggerRadioButton.TabIndex = 23;
this.cronTriggerRadioButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Cron_trigger;
this.cronTriggerRadioButton.UseVisualStyleBackColor = true;
@ -607,10 +614,10 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.simpleTriggerRadioButton.AutoSize = true;
this.simpleTriggerRadioButton.Checked = true;
this.simpleTriggerRadioButton.Location = new System.Drawing.Point(4, 5);
this.simpleTriggerRadioButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.simpleTriggerRadioButton.Location = new System.Drawing.Point(5, 6);
this.simpleTriggerRadioButton.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.simpleTriggerRadioButton.Name = "simpleTriggerRadioButton";
this.simpleTriggerRadioButton.Size = new System.Drawing.Size(131, 24);
this.simpleTriggerRadioButton.Size = new System.Drawing.Size(156, 29);
this.simpleTriggerRadioButton.TabIndex = 22;
this.simpleTriggerRadioButton.TabStop = true;
this.simpleTriggerRadioButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Simple_trigger;
@ -619,10 +626,10 @@ namespace RecurringIntegrationsScheduler.Forms
// buildCronLabel
//
this.buildCronLabel.AutoSize = true;
this.buildCronLabel.Location = new System.Drawing.Point(9, 472);
this.buildCronLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.buildCronLabel.Location = new System.Drawing.Point(11, 566);
this.buildCronLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.buildCronLabel.Name = "buildCronLabel";
this.buildCronLabel.Size = new System.Drawing.Size(177, 20);
this.buildCronLabel.Size = new System.Drawing.Size(219, 25);
this.buildCronLabel.TabIndex = 26;
this.buildCronLabel.Text = "Build cron expression at";
//
@ -630,11 +637,11 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.cronTriggerInfoTextBox.BackColor = System.Drawing.SystemColors.Control;
this.cronTriggerInfoTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.cronTriggerInfoTextBox.Location = new System.Drawing.Point(14, 229);
this.cronTriggerInfoTextBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.cronTriggerInfoTextBox.Location = new System.Drawing.Point(17, 275);
this.cronTriggerInfoTextBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.cronTriggerInfoTextBox.Multiline = true;
this.cronTriggerInfoTextBox.Name = "cronTriggerInfoTextBox";
this.cronTriggerInfoTextBox.Size = new System.Drawing.Size(312, 238);
this.cronTriggerInfoTextBox.Size = new System.Drawing.Size(381, 286);
this.cronTriggerInfoTextBox.TabIndex = 25;
this.cronTriggerInfoTextBox.TabStop = false;
this.cronTriggerInfoTextBox.Text = resources.GetString("cronTriggerInfoTextBox.Text");
@ -642,10 +649,10 @@ namespace RecurringIntegrationsScheduler.Forms
// cronmakerLinkLabel
//
this.cronmakerLinkLabel.AutoSize = true;
this.cronmakerLinkLabel.Location = new System.Drawing.Point(186, 472);
this.cronmakerLinkLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.cronmakerLinkLabel.Location = new System.Drawing.Point(227, 566);
this.cronmakerLinkLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.cronmakerLinkLabel.Name = "cronmakerLinkLabel";
this.cronmakerLinkLabel.Size = new System.Drawing.Size(118, 20);
this.cronmakerLinkLabel.Size = new System.Drawing.Size(146, 25);
this.cronmakerLinkLabel.TabIndex = 24;
this.cronmakerLinkLabel.TabStop = true;
this.cronmakerLinkLabel.Text = "cronmaker.com";
@ -654,30 +661,30 @@ namespace RecurringIntegrationsScheduler.Forms
// cronExpressionLabel
//
this.cronExpressionLabel.AutoSize = true;
this.cronExpressionLabel.Location = new System.Drawing.Point(9, 165);
this.cronExpressionLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.cronExpressionLabel.Location = new System.Drawing.Point(11, 198);
this.cronExpressionLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.cronExpressionLabel.Name = "cronExpressionLabel";
this.cronExpressionLabel.Size = new System.Drawing.Size(123, 20);
this.cronExpressionLabel.Size = new System.Drawing.Size(155, 25);
this.cronExpressionLabel.TabIndex = 23;
this.cronExpressionLabel.Text = "Cron expression";
//
// cronExpressionTextBox
//
this.cronExpressionTextBox.Enabled = false;
this.cronExpressionTextBox.Location = new System.Drawing.Point(14, 189);
this.cronExpressionTextBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.cronExpressionTextBox.Location = new System.Drawing.Point(17, 227);
this.cronExpressionTextBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.cronExpressionTextBox.Name = "cronExpressionTextBox";
this.cronExpressionTextBox.Size = new System.Drawing.Size(320, 26);
this.cronExpressionTextBox.Size = new System.Drawing.Size(390, 29);
this.cronExpressionTextBox.TabIndex = 24;
this.cronExpressionTextBox.Text = "0 0/15 8-18 ? * MON-FRI *";
//
// minutesLabel
//
this.minutesLabel.AutoSize = true;
this.minutesLabel.Location = new System.Drawing.Point(96, 85);
this.minutesLabel.Location = new System.Drawing.Point(117, 102);
this.minutesLabel.Margin = new System.Windows.Forms.Padding(0);
this.minutesLabel.Name = "minutesLabel";
this.minutesLabel.Size = new System.Drawing.Size(26, 20);
this.minutesLabel.Size = new System.Drawing.Size(35, 25);
this.minutesLabel.TabIndex = 5;
this.minutesLabel.Text = "M:";
this.minutesLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
@ -685,10 +692,10 @@ namespace RecurringIntegrationsScheduler.Forms
// hoursLabel
//
this.hoursLabel.AutoSize = true;
this.hoursLabel.Location = new System.Drawing.Point(9, 85);
this.hoursLabel.Location = new System.Drawing.Point(11, 102);
this.hoursLabel.Margin = new System.Windows.Forms.Padding(0);
this.hoursLabel.Name = "hoursLabel";
this.hoursLabel.Size = new System.Drawing.Size(25, 20);
this.hoursLabel.Size = new System.Drawing.Size(32, 25);
this.hoursLabel.TabIndex = 4;
this.hoursLabel.Text = "H:";
this.hoursLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
@ -696,10 +703,10 @@ namespace RecurringIntegrationsScheduler.Forms
// startAtLabel
//
this.startAtLabel.AutoSize = true;
this.startAtLabel.Location = new System.Drawing.Point(189, 85);
this.startAtLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.startAtLabel.Location = new System.Drawing.Point(231, 102);
this.startAtLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.startAtLabel.Name = "startAtLabel";
this.startAtLabel.Size = new System.Drawing.Size(59, 20);
this.startAtLabel.Size = new System.Drawing.Size(70, 25);
this.startAtLabel.TabIndex = 3;
this.startAtLabel.Text = "start at";
this.startAtLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
@ -708,11 +715,11 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.startAtDateTimePicker.CustomFormat = "HH:mm";
this.startAtDateTimePicker.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.startAtDateTimePicker.Location = new System.Drawing.Point(248, 80);
this.startAtDateTimePicker.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.startAtDateTimePicker.Location = new System.Drawing.Point(303, 96);
this.startAtDateTimePicker.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.startAtDateTimePicker.Name = "startAtDateTimePicker";
this.startAtDateTimePicker.ShowUpDown = true;
this.startAtDateTimePicker.Size = new System.Drawing.Size(76, 26);
this.startAtDateTimePicker.Size = new System.Drawing.Size(92, 29);
this.startAtDateTimePicker.TabIndex = 21;
this.startAtDateTimePicker.Value = new System.DateTime(2016, 6, 26, 0, 0, 0, 0);
//
@ -720,11 +727,11 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.minutesDateTimePicker.CustomFormat = "mm";
this.minutesDateTimePicker.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.minutesDateTimePicker.Location = new System.Drawing.Point(124, 80);
this.minutesDateTimePicker.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.minutesDateTimePicker.Location = new System.Drawing.Point(152, 96);
this.minutesDateTimePicker.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.minutesDateTimePicker.Name = "minutesDateTimePicker";
this.minutesDateTimePicker.ShowUpDown = true;
this.minutesDateTimePicker.Size = new System.Drawing.Size(50, 26);
this.minutesDateTimePicker.Size = new System.Drawing.Size(60, 29);
this.minutesDateTimePicker.TabIndex = 20;
this.minutesDateTimePicker.Value = new System.DateTime(2016, 6, 26, 0, 1, 0, 0);
//
@ -732,11 +739,11 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.hoursDateTimePicker.CustomFormat = "HH";
this.hoursDateTimePicker.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.hoursDateTimePicker.Location = new System.Drawing.Point(36, 80);
this.hoursDateTimePicker.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.hoursDateTimePicker.Location = new System.Drawing.Point(44, 96);
this.hoursDateTimePicker.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.hoursDateTimePicker.Name = "hoursDateTimePicker";
this.hoursDateTimePicker.ShowUpDown = true;
this.hoursDateTimePicker.Size = new System.Drawing.Size(50, 26);
this.hoursDateTimePicker.Size = new System.Drawing.Size(60, 29);
this.hoursDateTimePicker.TabIndex = 19;
this.hoursDateTimePicker.Value = new System.DateTime(2016, 6, 26, 0, 0, 0, 0);
//
@ -746,26 +753,26 @@ namespace RecurringIntegrationsScheduler.Forms
this.retryPolicyGroupBox.Controls.Add(this.retriesCountUpDown);
this.retryPolicyGroupBox.Controls.Add(this.label2);
this.retryPolicyGroupBox.Controls.Add(this.label1);
this.retryPolicyGroupBox.Location = new System.Drawing.Point(369, 225);
this.retryPolicyGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.retryPolicyGroupBox.Location = new System.Drawing.Point(451, 270);
this.retryPolicyGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.retryPolicyGroupBox.Name = "retryPolicyGroupBox";
this.retryPolicyGroupBox.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.retryPolicyGroupBox.Size = new System.Drawing.Size(346, 103);
this.retryPolicyGroupBox.Padding = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.retryPolicyGroupBox.Size = new System.Drawing.Size(423, 124);
this.retryPolicyGroupBox.TabIndex = 7;
this.retryPolicyGroupBox.TabStop = false;
this.retryPolicyGroupBox.Text = "Retry policy";
//
// retriesDelayUpDown
//
this.retriesDelayUpDown.Location = new System.Drawing.Point(156, 60);
this.retriesDelayUpDown.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.retriesDelayUpDown.Location = new System.Drawing.Point(191, 72);
this.retriesDelayUpDown.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.retriesDelayUpDown.Maximum = new decimal(new int[] {
86400,
0,
0,
0});
this.retriesDelayUpDown.Name = "retriesDelayUpDown";
this.retriesDelayUpDown.Size = new System.Drawing.Size(99, 26);
this.retriesDelayUpDown.Size = new System.Drawing.Size(121, 29);
this.retriesDelayUpDown.TabIndex = 7;
this.retriesDelayUpDown.Value = new decimal(new int[] {
60,
@ -775,15 +782,15 @@ namespace RecurringIntegrationsScheduler.Forms
//
// retriesCountUpDown
//
this.retriesCountUpDown.Location = new System.Drawing.Point(156, 23);
this.retriesCountUpDown.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.retriesCountUpDown.Location = new System.Drawing.Point(191, 28);
this.retriesCountUpDown.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.retriesCountUpDown.Maximum = new decimal(new int[] {
9999,
0,
0,
0});
this.retriesCountUpDown.Name = "retriesCountUpDown";
this.retriesCountUpDown.Size = new System.Drawing.Size(99, 26);
this.retriesCountUpDown.Size = new System.Drawing.Size(121, 29);
this.retriesCountUpDown.TabIndex = 6;
this.retriesCountUpDown.Value = new decimal(new int[] {
1,
@ -794,29 +801,31 @@ namespace RecurringIntegrationsScheduler.Forms
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(10, 68);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Location = new System.Drawing.Point(12, 82);
this.label2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(123, 20);
this.label2.Size = new System.Drawing.Size(155, 25);
this.label2.TabIndex = 2;
this.label2.Text = "Delay (seconds)";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(10, 31);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Location = new System.Drawing.Point(12, 37);
this.label1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(131, 20);
this.label1.Size = new System.Drawing.Size(160, 25);
this.label1.TabIndex = 0;
this.label1.Text = "Number of retries";
//
// groupBoxExceptions
//
this.groupBoxExceptions.Controls.Add(this.pauseOnExceptionsCheckBox);
this.groupBoxExceptions.Location = new System.Drawing.Point(369, 335);
this.groupBoxExceptions.Location = new System.Drawing.Point(451, 402);
this.groupBoxExceptions.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.groupBoxExceptions.Name = "groupBoxExceptions";
this.groupBoxExceptions.Size = new System.Drawing.Size(345, 58);
this.groupBoxExceptions.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.groupBoxExceptions.Size = new System.Drawing.Size(422, 70);
this.groupBoxExceptions.TabIndex = 10;
this.groupBoxExceptions.TabStop = false;
this.groupBoxExceptions.Text = "Exceptions";
@ -826,9 +835,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.pauseOnExceptionsCheckBox.AutoSize = true;
this.pauseOnExceptionsCheckBox.Checked = true;
this.pauseOnExceptionsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.pauseOnExceptionsCheckBox.Location = new System.Drawing.Point(14, 26);
this.pauseOnExceptionsCheckBox.Location = new System.Drawing.Point(17, 31);
this.pauseOnExceptionsCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.pauseOnExceptionsCheckBox.Name = "pauseOnExceptionsCheckBox";
this.pauseOnExceptionsCheckBox.Size = new System.Drawing.Size(270, 24);
this.pauseOnExceptionsCheckBox.Size = new System.Drawing.Size(329, 29);
this.pauseOnExceptionsCheckBox.TabIndex = 0;
this.pauseOnExceptionsCheckBox.Text = "Pause job when exception occurs";
this.pauseOnExceptionsCheckBox.UseVisualStyleBackColor = true;
@ -838,17 +848,20 @@ namespace RecurringIntegrationsScheduler.Forms
this.groupBoxButtons.Controls.Add(this.addJobButton);
this.groupBoxButtons.Controls.Add(this.cancelButton);
this.groupBoxButtons.Controls.Add(this.customActionsButton);
this.groupBoxButtons.Location = new System.Drawing.Point(14, 728);
this.groupBoxButtons.Location = new System.Drawing.Point(17, 874);
this.groupBoxButtons.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.groupBoxButtons.Name = "groupBoxButtons";
this.groupBoxButtons.Size = new System.Drawing.Size(1055, 71);
this.groupBoxButtons.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.groupBoxButtons.Size = new System.Drawing.Size(1289, 85);
this.groupBoxButtons.TabIndex = 11;
this.groupBoxButtons.TabStop = false;
//
// addJobButton
//
this.addJobButton.Location = new System.Drawing.Point(709, 25);
this.addJobButton.Location = new System.Drawing.Point(867, 30);
this.addJobButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.addJobButton.Name = "addJobButton";
this.addJobButton.Size = new System.Drawing.Size(162, 34);
this.addJobButton.Size = new System.Drawing.Size(198, 41);
this.addJobButton.TabIndex = 2;
this.addJobButton.Text = "Add to schedule";
this.addJobButton.UseVisualStyleBackColor = true;
@ -856,9 +869,10 @@ namespace RecurringIntegrationsScheduler.Forms
//
// cancelButton
//
this.cancelButton.Location = new System.Drawing.Point(887, 25);
this.cancelButton.Location = new System.Drawing.Point(1084, 30);
this.cancelButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.cancelButton.Name = "cancelButton";
this.cancelButton.Size = new System.Drawing.Size(162, 34);
this.cancelButton.Size = new System.Drawing.Size(198, 41);
this.cancelButton.TabIndex = 1;
this.cancelButton.Text = "Cancel";
this.cancelButton.UseVisualStyleBackColor = true;
@ -866,21 +880,54 @@ namespace RecurringIntegrationsScheduler.Forms
//
// customActionsButton
//
this.customActionsButton.Location = new System.Drawing.Point(6, 25);
this.customActionsButton.Location = new System.Drawing.Point(7, 30);
this.customActionsButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.customActionsButton.Name = "customActionsButton";
this.customActionsButton.Size = new System.Drawing.Size(288, 34);
this.customActionsButton.Size = new System.Drawing.Size(352, 41);
this.customActionsButton.TabIndex = 0;
this.customActionsButton.Text = "Custom Odata actions";
this.customActionsButton.UseVisualStyleBackColor = true;
this.customActionsButton.Click += new System.EventHandler(this.CustomActionsButton_Click);
//
// intervalLabel
//
this.intervalLabel.Location = new System.Drawing.Point(18, 686);
this.intervalLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.intervalLabel.Name = "intervalLabel";
this.intervalLabel.Size = new System.Drawing.Size(273, 77);
this.intervalLabel.TabIndex = 24;
this.intervalLabel.Text = "Delay between attempts to download exported package (seconds)";
//
// numericUpDownInterval
//
this.numericUpDownInterval.Location = new System.Drawing.Point(300, 713);
this.numericUpDownInterval.Margin = new System.Windows.Forms.Padding(4);
this.numericUpDownInterval.Maximum = new decimal(new int[] {
3600,
0,
0,
0});
this.numericUpDownInterval.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.numericUpDownInterval.Name = "numericUpDownInterval";
this.numericUpDownInterval.Size = new System.Drawing.Size(105, 29);
this.numericUpDownInterval.TabIndex = 23;
this.numericUpDownInterval.Value = new decimal(new int[] {
1,
0,
0,
0});
//
// ExportJob
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 24F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoSize = true;
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.ClientSize = new System.Drawing.Size(1071, 811);
this.ClientSize = new System.Drawing.Size(1309, 973);
this.Controls.Add(this.groupBoxButtons);
this.Controls.Add(this.groupBoxExceptions);
this.Controls.Add(this.retryPolicyGroupBox);
@ -888,10 +935,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.Controls.Add(this.axDetailsGroupBox);
this.Controls.Add(this.jobDetailsGroupBox);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(1093, 756);
this.MinimumSize = new System.Drawing.Size(1331, 894);
this.Name = "ExportJob";
this.ShowIcon = false;
this.ShowInTaskbar = false;
@ -900,7 +947,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.Load += new System.EventHandler(this.ExportJobForm_Load);
this.jobDetailsGroupBox.ResumeLayout(false);
this.jobDetailsGroupBox.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.interval)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.statusCheckInterval)).EndInit();
this.axDetailsGroupBox.ResumeLayout(false);
this.axDetailsGroupBox.PerformLayout();
this.authMethodPanel.ResumeLayout(false);
@ -916,6 +963,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.groupBoxExceptions.ResumeLayout(false);
this.groupBoxExceptions.PerformLayout();
this.groupBoxButtons.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.numericUpDownInterval)).EndInit();
this.ResumeLayout(false);
}
@ -970,8 +1018,8 @@ namespace RecurringIntegrationsScheduler.Forms
private System.Windows.Forms.ComboBox aadApplicationComboBox;
private System.Windows.Forms.Label dataProjectLabel;
private System.Windows.Forms.TextBox dataProject;
private System.Windows.Forms.Label intervalLabel;
private System.Windows.Forms.NumericUpDown interval;
private System.Windows.Forms.Label statusCheckIntervalLabel;
private System.Windows.Forms.NumericUpDown statusCheckInterval;
private System.Windows.Forms.Label legalEntityLabel;
private System.Windows.Forms.TextBox legalEntity;
private System.Windows.Forms.CheckBox addTimestampCheckBox;
@ -987,5 +1035,7 @@ namespace RecurringIntegrationsScheduler.Forms
private System.Windows.Forms.Button addJobButton;
private System.Windows.Forms.Button cancelButton;
private System.Windows.Forms.Button customActionsButton;
private System.Windows.Forms.Label intervalLabel;
private System.Windows.Forms.NumericUpDown numericUpDownInterval;
}
}

Просмотреть файл

@ -117,7 +117,9 @@ namespace RecurringIntegrationsScheduler.Forms
legalEntity.Text = JobDetail.JobDataMap[SettingsConstants.Company]?.ToString() ?? string.Empty;
interval.Value = Math.Round(Convert.ToDecimal(JobDetail.JobDataMap[SettingsConstants.Interval]) / 1000);
statusCheckInterval.Value = Math.Round(Convert.ToDecimal(JobDetail.JobDataMap[SettingsConstants.StatusCheckInterval]));
numericUpDownInterval.Value = Math.Round(Convert.ToDecimal(JobDetail.JobDataMap[SettingsConstants.Interval]));
if (!serviceAuthRadioButton.Checked)
{
@ -399,7 +401,8 @@ namespace RecurringIntegrationsScheduler.Forms
{SettingsConstants.DeletePackage, deletePackageCheckBox.Checked.ToString()},
{SettingsConstants.DataProject, dataProject.Text},
{SettingsConstants.Company, legalEntity.Text},
{SettingsConstants.Interval, (interval.Value * 1000).ToString(CultureInfo.InvariantCulture)},
{SettingsConstants.Interval, numericUpDownInterval.Value.ToString(CultureInfo.InvariantCulture)},
{SettingsConstants.StatusCheckInterval, statusCheckInterval.Value.ToString(CultureInfo.InvariantCulture)},
{SettingsConstants.RetryCount, retriesCountUpDown.Value.ToString(CultureInfo.InvariantCulture)},
{SettingsConstants.RetryDelay, retriesDelayUpDown.Value.ToString(CultureInfo.InvariantCulture)},
{SettingsConstants.PauseJobOnException, pauseOnExceptionsCheckBox.Checked.ToString()},

695
Scheduler/Forms/ImportJob.Designer.cs сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -47,6 +47,8 @@ namespace RecurringIntegrationsScheduler.Forms
private string getAzureWriteUrlPath;
private string getExecutionSummaryStatusPath;
private string getExecutionSummaryPageUrlPath;
private string getImportTargetErrorKeysFileUrlPath;
private string generateImportTargetErrorKeysFilePath;
private void ImportJobForm_Load(object sender, EventArgs e)
{
@ -93,6 +95,8 @@ namespace RecurringIntegrationsScheduler.Forms
getAzureWriteUrlPath = OdataActionsConstants.GetAzureWriteUrlActionPath;
getExecutionSummaryStatusPath = OdataActionsConstants.GetExecutionSummaryStatusActionPath;
getExecutionSummaryPageUrlPath = OdataActionsConstants.GetExecutionSummaryPageUrlActionPath;
getImportTargetErrorKeysFileUrlPath = OdataActionsConstants.GetImportTargetErrorKeysFileUrlPath;
generateImportTargetErrorKeysFilePath = OdataActionsConstants.GenerateImportTargetErrorKeysFilePath;
if (ImportJobDetail != null)
{
@ -133,6 +137,8 @@ namespace RecurringIntegrationsScheduler.Forms
(ImportJobDetail.JobDataMap[SettingsConstants.ExecuteImport] != null) &&
Convert.ToBoolean(ImportJobDetail.JobDataMap[SettingsConstants.ExecuteImport].ToString());
numericUpDownInterval.Value = Math.Round(Convert.ToDecimal(ImportJobDetail.JobDataMap[SettingsConstants.Interval]));
serviceAuthRadioButton.Checked =
(ImportJobDetail.JobDataMap[SettingsConstants.UseServiceAuthentication] != null) &&
Convert.ToBoolean(ImportJobDetail.JobDataMap[SettingsConstants.UseServiceAuthentication].ToString());
@ -285,6 +291,14 @@ namespace RecurringIntegrationsScheduler.Forms
getExecutionSummaryStatusPath = ExecutionJobDetail.JobDataMap[SettingsConstants.GetExecutionSummaryStatusActionPath]?.ToString() ?? OdataActionsConstants.GetExecutionSummaryStatusActionPath;
getExecutionSummaryPageUrlPath = ExecutionJobDetail.JobDataMap[SettingsConstants.GetExecutionSummaryPageUrlActionPath]?.ToString() ?? OdataActionsConstants.GetExecutionSummaryPageUrlActionPath;
getImportTargetErrorKeysFileUrlPath = ExecutionJobDetail.JobDataMap[SettingsConstants.GetImportTargetErrorKeysFileUrlPath]?.ToString() ?? OdataActionsConstants.GetImportTargetErrorKeysFileUrlPath;
generateImportTargetErrorKeysFilePath = ExecutionJobDetail.JobDataMap[SettingsConstants.GenerateImportTargetErrorKeysFilePath]?.ToString() ?? OdataActionsConstants.GenerateImportTargetErrorKeysFilePath;
downloadErrorKeysFileCheckBox.Checked =
(ExecutionJobDetail.JobDataMap[SettingsConstants.GetImportTargetErrorKeysFile] != null) &&
Convert.ToBoolean(ExecutionJobDetail.JobDataMap[SettingsConstants.GetImportTargetErrorKeysFile].ToString());
numericUpDownStatusCheckInterval.Value = Math.Round(Convert.ToDecimal(ExecutionJobDetail.JobDataMap[SettingsConstants.StatusCheckInterval]));
}
}
@ -521,7 +535,7 @@ namespace RecurringIntegrationsScheduler.Forms
if (upJobSimpleTriggerRadioButton.Checked)
{
var minutes = upJobHoursDateTimePicker.Value.Hour*60;
minutes = minutes + upJobMinutesDateTimePicker.Value.Minute;
minutes += upJobMinutesDateTimePicker.Value.Minute;
return builder.WithSimpleSchedule(x => x
.WithIntervalInMinutes(minutes)
@ -566,7 +580,8 @@ namespace RecurringIntegrationsScheduler.Forms
{SettingsConstants.PauseJobOnException, pauseOnExceptionsCheckBox.Checked.ToString()},
{SettingsConstants.GetAzureWriteUrlActionPath, getAzureWriteUrlPath},
{SettingsConstants.ImportFromPackageActionPath, importFromPackagePath},
{SettingsConstants.IndefinitePause, pauseIndefinitelyCheckBox.Checked.ToString()}
{SettingsConstants.IndefinitePause, pauseIndefinitelyCheckBox.Checked.ToString()},
{SettingsConstants.Interval, numericUpDownInterval.Value.ToString(CultureInfo.InvariantCulture)}
};
if (serviceAuthRadioButton.Checked)
{
@ -602,7 +617,12 @@ namespace RecurringIntegrationsScheduler.Forms
{SettingsConstants.PauseJobOnException, pauseOnExceptionsCheckBox.Checked.ToString()},
{SettingsConstants.GetExecutionSummaryStatusActionPath, getExecutionSummaryStatusPath},
{SettingsConstants.GetExecutionSummaryPageUrlActionPath, getExecutionSummaryPageUrlPath},
{SettingsConstants.IndefinitePause, pauseIndefinitelyCheckBox.Checked.ToString()}
{SettingsConstants.IndefinitePause, pauseIndefinitelyCheckBox.Checked.ToString()},
{SettingsConstants.GetImportTargetErrorKeysFile, downloadErrorKeysFileCheckBox.Checked.ToString()},
{SettingsConstants.GetImportTargetErrorKeysFileUrlPath, getImportTargetErrorKeysFileUrlPath},
{SettingsConstants.GenerateImportTargetErrorKeysFilePath, generateImportTargetErrorKeysFilePath},
{SettingsConstants.PackageTemplate, packageTemplateTextBox.Text},
{SettingsConstants.StatusCheckInterval, numericUpDownStatusCheckInterval.Value.ToString(CultureInfo.InvariantCulture)}
};
if (serviceAuthRadioButton.Checked)
{
@ -799,6 +819,8 @@ namespace RecurringIntegrationsScheduler.Forms
form.ImportFromPackagePath = importFromPackagePath;
form.GetExecutionSummaryStatusPath = getExecutionSummaryStatusPath;
form.GetExecutionSummaryPageUrlPath = getExecutionSummaryPageUrlPath;
form.GetImportTargetErrorKeysFileUrlPath = getImportTargetErrorKeysFileUrlPath;
form.GenerateImportTargetErrorKeysFilePath = generateImportTargetErrorKeysFilePath;
form.ShowDialog();
if (form.Cancelled) return;
@ -807,6 +829,8 @@ namespace RecurringIntegrationsScheduler.Forms
importFromPackagePath = form.ImportFromPackagePath;
getExecutionSummaryStatusPath = form.GetExecutionSummaryStatusPath;
getExecutionSummaryPageUrlPath = form.GetExecutionSummaryPageUrlPath;
getImportTargetErrorKeysFileUrlPath = form.GetImportTargetErrorKeysFileUrlPath;
generateImportTargetErrorKeysFilePath = form.GenerateImportTargetErrorKeysFilePath;
}
}
catch (Exception ex)

80
Scheduler/Forms/ImportJobOptions.Designer.cs сгенерированный
Просмотреть файл

@ -31,6 +31,8 @@ namespace RecurringIntegrationsScheduler.Forms
private void InitializeComponent()
{
this.panel1 = new System.Windows.Forms.Panel();
this.GetImportTargetErrorKeysFileUrlLabel = new System.Windows.Forms.Label();
this.GetImportTargetErrorKeysFileUrlTextBox = new System.Windows.Forms.TextBox();
this.GetExecutionSummaryPageUrlLabel = new System.Windows.Forms.Label();
this.GetExecutionSummaryPageUrlTextBox = new System.Windows.Forms.TextBox();
this.GetExecutionSummaryStatusLabel = new System.Windows.Forms.Label();
@ -41,11 +43,17 @@ namespace RecurringIntegrationsScheduler.Forms
this.ButtonOK = new System.Windows.Forms.Button();
this.GetAzureWriteUrlLabel = new System.Windows.Forms.Label();
this.GetAzureWriteUrlTextBox = new System.Windows.Forms.TextBox();
this.GenerateImportTargetErrorKeysFileLabel = new System.Windows.Forms.Label();
this.GenerateImportTargetErrorKeysFileTextBox = new System.Windows.Forms.TextBox();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// panel1
//
this.panel1.Controls.Add(this.GenerateImportTargetErrorKeysFileLabel);
this.panel1.Controls.Add(this.GenerateImportTargetErrorKeysFileTextBox);
this.panel1.Controls.Add(this.GetImportTargetErrorKeysFileUrlLabel);
this.panel1.Controls.Add(this.GetImportTargetErrorKeysFileUrlTextBox);
this.panel1.Controls.Add(this.GetExecutionSummaryPageUrlLabel);
this.panel1.Controls.Add(this.GetExecutionSummaryPageUrlTextBox);
this.panel1.Controls.Add(this.GetExecutionSummaryStatusLabel);
@ -60,13 +68,30 @@ namespace RecurringIntegrationsScheduler.Forms
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(778, 201);
this.panel1.Size = new System.Drawing.Size(778, 264);
this.panel1.TabIndex = 0;
//
// GetImportTargetErrorKeysFileUrlLabel
//
this.GetImportTargetErrorKeysFileUrlLabel.AutoSize = true;
this.GetImportTargetErrorKeysFileUrlLabel.Location = new System.Drawing.Point(24, 161);
this.GetImportTargetErrorKeysFileUrlLabel.Name = "GetImportTargetErrorKeysFileUrlLabel";
this.GetImportTargetErrorKeysFileUrlLabel.Size = new System.Drawing.Size(242, 20);
this.GetImportTargetErrorKeysFileUrlLabel.TabIndex = 17;
this.GetImportTargetErrorKeysFileUrlLabel.Text = "GetImportTargetErrorKeysFileUrl";
//
// GetImportTargetErrorKeysFileUrlTextBox
//
this.GetImportTargetErrorKeysFileUrlTextBox.Location = new System.Drawing.Point(266, 158);
this.GetImportTargetErrorKeysFileUrlTextBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.GetImportTargetErrorKeysFileUrlTextBox.Name = "GetImportTargetErrorKeysFileUrlTextBox";
this.GetImportTargetErrorKeysFileUrlTextBox.Size = new System.Drawing.Size(500, 26);
this.GetImportTargetErrorKeysFileUrlTextBox.TabIndex = 16;
//
// GetExecutionSummaryPageUrlLabel
//
this.GetExecutionSummaryPageUrlLabel.AutoSize = true;
this.GetExecutionSummaryPageUrlLabel.Location = new System.Drawing.Point(3, 127);
this.GetExecutionSummaryPageUrlLabel.Location = new System.Drawing.Point(36, 127);
this.GetExecutionSummaryPageUrlLabel.Name = "GetExecutionSummaryPageUrlLabel";
this.GetExecutionSummaryPageUrlLabel.Size = new System.Drawing.Size(230, 20);
this.GetExecutionSummaryPageUrlLabel.TabIndex = 15;
@ -74,16 +99,16 @@ namespace RecurringIntegrationsScheduler.Forms
//
// GetExecutionSummaryPageUrlTextBox
//
this.GetExecutionSummaryPageUrlTextBox.Location = new System.Drawing.Point(238, 124);
this.GetExecutionSummaryPageUrlTextBox.Location = new System.Drawing.Point(266, 124);
this.GetExecutionSummaryPageUrlTextBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.GetExecutionSummaryPageUrlTextBox.Name = "GetExecutionSummaryPageUrlTextBox";
this.GetExecutionSummaryPageUrlTextBox.Size = new System.Drawing.Size(528, 26);
this.GetExecutionSummaryPageUrlTextBox.Size = new System.Drawing.Size(500, 26);
this.GetExecutionSummaryPageUrlTextBox.TabIndex = 14;
//
// GetExecutionSummaryStatusLabel
//
this.GetExecutionSummaryStatusLabel.AutoSize = true;
this.GetExecutionSummaryStatusLabel.Location = new System.Drawing.Point(13, 93);
this.GetExecutionSummaryStatusLabel.Location = new System.Drawing.Point(46, 93);
this.GetExecutionSummaryStatusLabel.Name = "GetExecutionSummaryStatusLabel";
this.GetExecutionSummaryStatusLabel.Size = new System.Drawing.Size(220, 20);
this.GetExecutionSummaryStatusLabel.TabIndex = 13;
@ -91,16 +116,16 @@ namespace RecurringIntegrationsScheduler.Forms
//
// GetExecutionSummaryStatusTextBox
//
this.GetExecutionSummaryStatusTextBox.Location = new System.Drawing.Point(238, 90);
this.GetExecutionSummaryStatusTextBox.Location = new System.Drawing.Point(266, 90);
this.GetExecutionSummaryStatusTextBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.GetExecutionSummaryStatusTextBox.Name = "GetExecutionSummaryStatusTextBox";
this.GetExecutionSummaryStatusTextBox.Size = new System.Drawing.Size(528, 26);
this.GetExecutionSummaryStatusTextBox.Size = new System.Drawing.Size(500, 26);
this.GetExecutionSummaryStatusTextBox.TabIndex = 12;
//
// ImportFromPackageLabel
//
this.ImportFromPackageLabel.AutoSize = true;
this.ImportFromPackageLabel.Location = new System.Drawing.Point(79, 59);
this.ImportFromPackageLabel.Location = new System.Drawing.Point(112, 59);
this.ImportFromPackageLabel.Name = "ImportFromPackageLabel";
this.ImportFromPackageLabel.Size = new System.Drawing.Size(154, 20);
this.ImportFromPackageLabel.TabIndex = 11;
@ -108,16 +133,16 @@ namespace RecurringIntegrationsScheduler.Forms
//
// ImportFromPackageTextBox
//
this.ImportFromPackageTextBox.Location = new System.Drawing.Point(238, 56);
this.ImportFromPackageTextBox.Location = new System.Drawing.Point(266, 56);
this.ImportFromPackageTextBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.ImportFromPackageTextBox.Name = "ImportFromPackageTextBox";
this.ImportFromPackageTextBox.Size = new System.Drawing.Size(528, 26);
this.ImportFromPackageTextBox.Size = new System.Drawing.Size(500, 26);
this.ImportFromPackageTextBox.TabIndex = 10;
//
// ButtonCancel
//
this.ButtonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.ButtonCancel.Location = new System.Drawing.Point(370, 158);
this.ButtonCancel.Location = new System.Drawing.Point(361, 224);
this.ButtonCancel.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.ButtonCancel.Name = "ButtonCancel";
this.ButtonCancel.Size = new System.Drawing.Size(102, 32);
@ -129,7 +154,7 @@ namespace RecurringIntegrationsScheduler.Forms
// ButtonOK
//
this.ButtonOK.DialogResult = System.Windows.Forms.DialogResult.OK;
this.ButtonOK.Location = new System.Drawing.Point(262, 158);
this.ButtonOK.Location = new System.Drawing.Point(253, 224);
this.ButtonOK.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.ButtonOK.Name = "ButtonOK";
this.ButtonOK.Size = new System.Drawing.Size(102, 32);
@ -141,7 +166,7 @@ namespace RecurringIntegrationsScheduler.Forms
// GetAzureWriteUrlLabel
//
this.GetAzureWriteUrlLabel.AutoSize = true;
this.GetAzureWriteUrlLabel.Location = new System.Drawing.Point(97, 25);
this.GetAzureWriteUrlLabel.Location = new System.Drawing.Point(131, 25);
this.GetAzureWriteUrlLabel.Name = "GetAzureWriteUrlLabel";
this.GetAzureWriteUrlLabel.Size = new System.Drawing.Size(135, 20);
this.GetAzureWriteUrlLabel.TabIndex = 1;
@ -149,24 +174,41 @@ namespace RecurringIntegrationsScheduler.Forms
//
// GetAzureWriteUrlTextBox
//
this.GetAzureWriteUrlTextBox.Location = new System.Drawing.Point(238, 22);
this.GetAzureWriteUrlTextBox.Location = new System.Drawing.Point(266, 22);
this.GetAzureWriteUrlTextBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.GetAzureWriteUrlTextBox.Name = "GetAzureWriteUrlTextBox";
this.GetAzureWriteUrlTextBox.Size = new System.Drawing.Size(528, 26);
this.GetAzureWriteUrlTextBox.Size = new System.Drawing.Size(500, 26);
this.GetAzureWriteUrlTextBox.TabIndex = 0;
//
// GenerateImportTargetErrorKeysFileLabel
//
this.GenerateImportTargetErrorKeysFileLabel.AutoSize = true;
this.GenerateImportTargetErrorKeysFileLabel.Location = new System.Drawing.Point(3, 195);
this.GenerateImportTargetErrorKeysFileLabel.Name = "GenerateImportTargetErrorKeysFileLabel";
this.GenerateImportTargetErrorKeysFileLabel.Size = new System.Drawing.Size(263, 20);
this.GenerateImportTargetErrorKeysFileLabel.TabIndex = 19;
this.GenerateImportTargetErrorKeysFileLabel.Text = "GenerateImportTargetErrorKeysFile";
//
// GenerateImportTargetErrorKeysFileTextBox
//
this.GenerateImportTargetErrorKeysFileTextBox.Location = new System.Drawing.Point(266, 192);
this.GenerateImportTargetErrorKeysFileTextBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.GenerateImportTargetErrorKeysFileTextBox.Name = "GenerateImportTargetErrorKeysFileTextBox";
this.GenerateImportTargetErrorKeysFileTextBox.Size = new System.Drawing.Size(500, 26);
this.GenerateImportTargetErrorKeysFileTextBox.TabIndex = 18;
//
// ImportJobOptions
//
this.AcceptButton = this.ButtonOK;
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.ButtonCancel;
this.ClientSize = new System.Drawing.Size(778, 201);
this.ClientSize = new System.Drawing.Size(778, 264);
this.Controls.Add(this.panel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.MaximizeBox = false;
this.MaximumSize = new System.Drawing.Size(800, 300);
this.MaximumSize = new System.Drawing.Size(800, 320);
this.MinimizeBox = false;
this.Name = "ImportJobOptions";
this.ShowIcon = false;
@ -194,5 +236,9 @@ namespace RecurringIntegrationsScheduler.Forms
private System.Windows.Forms.TextBox GetExecutionSummaryPageUrlTextBox;
private System.Windows.Forms.Label GetExecutionSummaryStatusLabel;
private System.Windows.Forms.TextBox GetExecutionSummaryStatusTextBox;
private System.Windows.Forms.Label GetImportTargetErrorKeysFileUrlLabel;
private System.Windows.Forms.TextBox GetImportTargetErrorKeysFileUrlTextBox;
private System.Windows.Forms.Label GenerateImportTargetErrorKeysFileLabel;
private System.Windows.Forms.TextBox GenerateImportTargetErrorKeysFileTextBox;
}
}

Просмотреть файл

@ -18,6 +18,8 @@ namespace RecurringIntegrationsScheduler.Forms
public string GetAzureWriteUrlPath;
public string GetExecutionSummaryStatusPath;
public string GetExecutionSummaryPageUrlPath;
public string GetImportTargetErrorKeysFileUrlPath;
public string GenerateImportTargetErrorKeysFilePath;
private bool InputIsValid()
{
@ -33,6 +35,8 @@ namespace RecurringIntegrationsScheduler.Forms
GetAzureWriteUrlPath = GetAzureWriteUrlTextBox.Text;
GetExecutionSummaryStatusPath = GetExecutionSummaryStatusTextBox.Text;
GetExecutionSummaryPageUrlPath = GetExecutionSummaryPageUrlTextBox.Text;
GetImportTargetErrorKeysFileUrlPath = GetImportTargetErrorKeysFileUrlTextBox.Text;
GenerateImportTargetErrorKeysFilePath = GenerateImportTargetErrorKeysFileTextBox.Text;
}
else
{
@ -53,6 +57,8 @@ namespace RecurringIntegrationsScheduler.Forms
GetAzureWriteUrlTextBox.Text = GetAzureWriteUrlPath;
GetExecutionSummaryStatusTextBox.Text = GetExecutionSummaryStatusPath;
GetExecutionSummaryPageUrlTextBox.Text = GetExecutionSummaryPageUrlPath;
GetImportTargetErrorKeysFileUrlTextBox.Text = GetImportTargetErrorKeysFileUrlPath;
GenerateImportTargetErrorKeysFileTextBox.Text = GenerateImportTargetErrorKeysFilePath;
}
}
}

196
Scheduler/Forms/MainForm.Designer.cs сгенерированный
Просмотреть файл

@ -31,8 +31,8 @@ namespace RecurringIntegrationsScheduler.Forms
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.mainMenuToolStrip = new System.Windows.Forms.ToolStrip();
this.connectToServerButton = new System.Windows.Forms.ToolStripButton();
this.privateSchedulerButton = new System.Windows.Forms.ToolStripButton();
@ -66,10 +66,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.instanceFilter = new System.Windows.Forms.ToolStripTextBox();
this.jobNameFilter = new System.Windows.Forms.ToolStripTextBox();
this.addJobsDropDownButton = new System.Windows.Forms.ToolStripDropDownButton();
this.addUploadJobMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.addDownloadJobMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.addImportJobMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.addExportJobMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.addUploadJobMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.addDownloadJobMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.deleteJobButton = new System.Windows.Forms.ToolStripButton();
this.editJobButton = new System.Windows.Forms.ToolStripButton();
this.pauseResumeDropDownButton = new System.Windows.Forms.ToolStripDropDownButton();
@ -97,27 +97,24 @@ namespace RecurringIntegrationsScheduler.Forms
this.aboutButton});
this.mainMenuToolStrip.Location = new System.Drawing.Point(0, 0);
this.mainMenuToolStrip.Name = "mainMenuToolStrip";
this.mainMenuToolStrip.Size = new System.Drawing.Size(1132, 32);
this.mainMenuToolStrip.Size = new System.Drawing.Size(1384, 44);
this.mainMenuToolStrip.TabIndex = 0;
this.mainMenuToolStrip.Text = "";
//
// connectToServerButton
//
this.connectToServerButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.connectToServerButton.Image = ((System.Drawing.Image)(resources.GetObject("connectToServerButton.Image")));
this.connectToServerButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.connectToServerButton.Name = "connectToServerButton";
this.connectToServerButton.Size = new System.Drawing.Size(161, 29);
this.connectToServerButton.Size = new System.Drawing.Size(188, 38);
this.connectToServerButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Connect_to_service;
this.connectToServerButton.Click += new System.EventHandler(this.ConnectToServerButton_Click);
//
// privateSchedulerButton
//
this.privateSchedulerButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.privateSchedulerButton.Image = ((System.Drawing.Image)(resources.GetObject("privateSchedulerButton.Image")));
this.privateSchedulerButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.privateSchedulerButton.Name = "privateSchedulerButton";
this.privateSchedulerButton.Size = new System.Drawing.Size(224, 29);
this.privateSchedulerButton.Size = new System.Drawing.Size(262, 38);
this.privateSchedulerButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Start_standalone_scheduler;
this.privateSchedulerButton.Click += new System.EventHandler(this.PrivateSchedulerButton_Click);
//
@ -125,20 +122,18 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.saveScheduleButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.saveScheduleButton.Enabled = false;
this.saveScheduleButton.Image = ((System.Drawing.Image)(resources.GetObject("saveScheduleButton.Image")));
this.saveScheduleButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.saveScheduleButton.Name = "saveScheduleButton";
this.saveScheduleButton.Size = new System.Drawing.Size(155, 29);
this.saveScheduleButton.Size = new System.Drawing.Size(182, 38);
this.saveScheduleButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Save_schedule_file;
this.saveScheduleButton.Click += new System.EventHandler(this.SaveScheduleButton_Click);
//
// settingsButton
//
this.settingsButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.settingsButton.Image = ((System.Drawing.Image)(resources.GetObject("settingsButton.Image")));
this.settingsButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.settingsButton.Name = "settingsButton";
this.settingsButton.Size = new System.Drawing.Size(103, 29);
this.settingsButton.Size = new System.Drawing.Size(120, 38);
this.settingsButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Parameters;
this.settingsButton.Click += new System.EventHandler(this.SettingsButton_Click);
//
@ -146,10 +141,9 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.aboutButton.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.aboutButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.aboutButton.Image = ((System.Drawing.Image)(resources.GetObject("aboutButton.Image")));
this.aboutButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.aboutButton.Name = "aboutButton";
this.aboutButton.Size = new System.Drawing.Size(66, 29);
this.aboutButton.Size = new System.Drawing.Size(74, 38);
this.aboutButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.A_bout;
this.aboutButton.Click += new System.EventHandler(this.AboutButton_Click);
//
@ -158,17 +152,17 @@ namespace RecurringIntegrationsScheduler.Forms
this.statusStrip.ImageScalingSize = new System.Drawing.Size(20, 20);
this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripConnectionStatus});
this.statusStrip.Location = new System.Drawing.Point(0, 474);
this.statusStrip.Location = new System.Drawing.Point(0, 566);
this.statusStrip.Name = "statusStrip";
this.statusStrip.Padding = new System.Windows.Forms.Padding(1, 0, 21, 0);
this.statusStrip.Size = new System.Drawing.Size(1132, 30);
this.statusStrip.Padding = new System.Windows.Forms.Padding(1, 0, 26, 0);
this.statusStrip.Size = new System.Drawing.Size(1384, 39);
this.statusStrip.TabIndex = 1;
this.statusStrip.Text = "statusStrip1";
//
// toolStripConnectionStatus
//
this.toolStripConnectionStatus.Name = "toolStripConnectionStatus";
this.toolStripConnectionStatus.Size = new System.Drawing.Size(129, 25);
this.toolStripConnectionStatus.Size = new System.Drawing.Size(151, 30);
this.toolStripConnectionStatus.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Not_connected;
//
// jobsDataGridView
@ -194,15 +188,15 @@ namespace RecurringIntegrationsScheduler.Forms
this.jobsDataGridView.ContextMenuStrip = this.contextMenuStrip1;
this.jobsDataGridView.Dock = System.Windows.Forms.DockStyle.Fill;
this.jobsDataGridView.GridColor = System.Drawing.SystemColors.Window;
this.jobsDataGridView.Location = new System.Drawing.Point(0, 32);
this.jobsDataGridView.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.jobsDataGridView.Location = new System.Drawing.Point(0, 44);
this.jobsDataGridView.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.jobsDataGridView.MultiSelect = false;
this.jobsDataGridView.Name = "jobsDataGridView";
this.jobsDataGridView.ReadOnly = true;
this.jobsDataGridView.RowHeadersVisible = false;
this.jobsDataGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
this.jobsDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.jobsDataGridView.Size = new System.Drawing.Size(1132, 410);
this.jobsDataGridView.Size = new System.Drawing.Size(1384, 478);
this.jobsDataGridView.TabIndex = 3;
this.jobsDataGridView.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.JobsDataGridView_CellContentDoubleClick);
this.jobsDataGridView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.JobsDataGridView_CellFormatting);
@ -213,6 +207,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.Instance.DataPropertyName = "Instance";
this.Instance.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Instance;
this.Instance.MinimumWidth = 9;
this.Instance.Name = "Instance";
this.Instance.ReadOnly = true;
//
@ -220,6 +215,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.JobName.DataPropertyName = "JobName";
this.JobName.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Job_name;
this.JobName.MinimumWidth = 9;
this.JobName.Name = "JobName";
this.JobName.ReadOnly = true;
//
@ -227,6 +223,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.JobGroup.DataPropertyName = "JobGroup";
this.JobGroup.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Job_group;
this.JobGroup.MinimumWidth = 9;
this.JobGroup.Name = "JobGroup";
this.JobGroup.ReadOnly = true;
//
@ -234,6 +231,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.JobDescription.DataPropertyName = "JobDescription";
this.JobDescription.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Description;
this.JobDescription.MinimumWidth = 9;
this.JobDescription.Name = "JobDescription";
this.JobDescription.ReadOnly = true;
//
@ -241,6 +239,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.JobType.DataPropertyName = "JobType";
this.JobType.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Job_type;
this.JobType.MinimumWidth = 9;
this.JobType.Name = "JobType";
this.JobType.ReadOnly = true;
//
@ -248,6 +247,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.NextFireTime.DataPropertyName = "NextFireTime";
this.NextFireTime.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Next_run;
this.NextFireTime.MinimumWidth = 9;
this.NextFireTime.Name = "NextFireTime";
this.NextFireTime.ReadOnly = true;
//
@ -255,6 +255,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.PreviousFireTime.DataPropertyName = "PreviousFireTime";
this.PreviousFireTime.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Last_run;
this.PreviousFireTime.MinimumWidth = 9;
this.PreviousFireTime.Name = "PreviousFireTime";
this.PreviousFireTime.ReadOnly = true;
//
@ -262,6 +263,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.Status.DataPropertyName = "JobStatus";
this.Status.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Trigger_status;
this.Status.MinimumWidth = 9;
this.Status.Name = "Status";
this.Status.ReadOnly = true;
//
@ -281,81 +283,81 @@ namespace RecurringIntegrationsScheduler.Forms
this.openFailedProcessingFolderToolStripMenuItem,
this.openSuccessfulDownloadsFolderToolStripMenuItem});
this.contextMenuStrip1.Name = "contextMenuStrip1";
this.contextMenuStrip1.Size = new System.Drawing.Size(358, 310);
this.contextMenuStrip1.Size = new System.Drawing.Size(404, 370);
//
// editJobMenuItem
//
this.editJobMenuItem.Name = "editJobMenuItem";
this.editJobMenuItem.Size = new System.Drawing.Size(357, 30);
this.editJobMenuItem.Text = Resources.Edit_job;
this.editJobMenuItem.Size = new System.Drawing.Size(403, 36);
this.editJobMenuItem.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Edit_job;
this.editJobMenuItem.Click += new System.EventHandler(this.EditJobButton_Click);
//
// pauseJobMenuItem
//
this.pauseJobMenuItem.Name = "pauseJobMenuItem";
this.pauseJobMenuItem.Size = new System.Drawing.Size(357, 30);
this.pauseJobMenuItem.Text = Resources.Pause_job;
this.pauseJobMenuItem.Size = new System.Drawing.Size(403, 36);
this.pauseJobMenuItem.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Pause_job;
this.pauseJobMenuItem.Click += new System.EventHandler(this.PauseJobButton_Click);
//
// resumeJobToolStripMenuItem1
//
this.resumeJobToolStripMenuItem1.Name = "resumeJobToolStripMenuItem1";
this.resumeJobToolStripMenuItem1.Size = new System.Drawing.Size(357, 30);
this.resumeJobToolStripMenuItem1.Text = Resources.Resume_job;
this.resumeJobToolStripMenuItem1.Size = new System.Drawing.Size(403, 36);
this.resumeJobToolStripMenuItem1.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Resume_job;
this.resumeJobToolStripMenuItem1.Click += new System.EventHandler(this.ResumeJobButton_Click);
//
// deletJobMenuItem
//
this.deletJobMenuItem.Name = "deletJobMenuItem";
this.deletJobMenuItem.Size = new System.Drawing.Size(357, 30);
this.deletJobMenuItem.Text = Resources.Delete_job;
this.deletJobMenuItem.Size = new System.Drawing.Size(403, 36);
this.deletJobMenuItem.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Delete_job;
this.deletJobMenuItem.Click += new System.EventHandler(this.DeleteJobButton_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(354, 6);
this.toolStripSeparator1.Size = new System.Drawing.Size(400, 6);
//
// openInputFolderToolStripMenuItem
//
this.openInputFolderToolStripMenuItem.Name = "openInputFolderToolStripMenuItem";
this.openInputFolderToolStripMenuItem.Size = new System.Drawing.Size(357, 30);
this.openInputFolderToolStripMenuItem.Text = Resources.Open_input_folder;
this.openInputFolderToolStripMenuItem.Size = new System.Drawing.Size(403, 36);
this.openInputFolderToolStripMenuItem.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Open_input_folder;
this.openInputFolderToolStripMenuItem.Click += new System.EventHandler(this.OpenInputFolderToolStripMenuItem_Click);
//
// openSuccessfulUploadsFolderToolStripMenuItem
//
this.openSuccessfulUploadsFolderToolStripMenuItem.Name = "openSuccessfulUploadsFolderToolStripMenuItem";
this.openSuccessfulUploadsFolderToolStripMenuItem.Size = new System.Drawing.Size(357, 30);
this.openSuccessfulUploadsFolderToolStripMenuItem.Text = Resources.Open_successful_uploads_folder;
this.openSuccessfulUploadsFolderToolStripMenuItem.Size = new System.Drawing.Size(403, 36);
this.openSuccessfulUploadsFolderToolStripMenuItem.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Open_successful_uploads_folder;
this.openSuccessfulUploadsFolderToolStripMenuItem.Click += new System.EventHandler(this.OpenSuccessfulUploadsFolderToolStripMenuItem_Click);
//
// openFailedUploadsFolderToolStripMenuItem
//
this.openFailedUploadsFolderToolStripMenuItem.Name = "openFailedUploadsFolderToolStripMenuItem";
this.openFailedUploadsFolderToolStripMenuItem.Size = new System.Drawing.Size(357, 30);
this.openFailedUploadsFolderToolStripMenuItem.Text = Resources.Open_failed_uploads_folder;
this.openFailedUploadsFolderToolStripMenuItem.Size = new System.Drawing.Size(403, 36);
this.openFailedUploadsFolderToolStripMenuItem.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Open_failed_uploads_folder;
this.openFailedUploadsFolderToolStripMenuItem.Click += new System.EventHandler(this.OpenFailedUploadsFolderToolStripMenuItem_Click);
//
// openSuccessfulProcessingFolderToolStripMenuItem
//
this.openSuccessfulProcessingFolderToolStripMenuItem.Name = "openSuccessfulProcessingFolderToolStripMenuItem";
this.openSuccessfulProcessingFolderToolStripMenuItem.Size = new System.Drawing.Size(357, 30);
this.openSuccessfulProcessingFolderToolStripMenuItem.Text = Resources.Open_successful_processing_folder;
this.openSuccessfulProcessingFolderToolStripMenuItem.Size = new System.Drawing.Size(403, 36);
this.openSuccessfulProcessingFolderToolStripMenuItem.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Open_successful_processing_folder;
this.openSuccessfulProcessingFolderToolStripMenuItem.Click += new System.EventHandler(this.OpenSuccessfulProcessingFolderToolStripMenuItem_Click);
//
// openFailedProcessingFolderToolStripMenuItem
//
this.openFailedProcessingFolderToolStripMenuItem.Name = "openFailedProcessingFolderToolStripMenuItem";
this.openFailedProcessingFolderToolStripMenuItem.Size = new System.Drawing.Size(357, 30);
this.openFailedProcessingFolderToolStripMenuItem.Text = Resources.Open_failed_processing_folder;
this.openFailedProcessingFolderToolStripMenuItem.Size = new System.Drawing.Size(403, 36);
this.openFailedProcessingFolderToolStripMenuItem.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Open_failed_processing_folder;
this.openFailedProcessingFolderToolStripMenuItem.Click += new System.EventHandler(this.OpenFailedProcessingFolderToolStripMenuItem_Click);
//
// openSuccessfulDownloadsFolderToolStripMenuItem
//
this.openSuccessfulDownloadsFolderToolStripMenuItem.Name = "openSuccessfulDownloadsFolderToolStripMenuItem";
this.openSuccessfulDownloadsFolderToolStripMenuItem.Size = new System.Drawing.Size(357, 30);
this.openSuccessfulDownloadsFolderToolStripMenuItem.Text = Resources.Open_successful_downloads_folder;
this.openSuccessfulDownloadsFolderToolStripMenuItem.Size = new System.Drawing.Size(403, 36);
this.openSuccessfulDownloadsFolderToolStripMenuItem.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Open_successful_downloads_folder;
this.openSuccessfulDownloadsFolderToolStripMenuItem.Click += new System.EventHandler(this.OpenSuccessfulDownloadsFolderToolStripMenuItem_Click);
//
// jobsToolStrip
@ -370,27 +372,28 @@ namespace RecurringIntegrationsScheduler.Forms
this.editJobButton,
this.pauseResumeDropDownButton,
this.refreshButton});
this.jobsToolStrip.Location = new System.Drawing.Point(0, 442);
this.jobsToolStrip.Location = new System.Drawing.Point(0, 522);
this.jobsToolStrip.Name = "jobsToolStrip";
this.jobsToolStrip.Padding = new System.Windows.Forms.Padding(0);
this.jobsToolStrip.Size = new System.Drawing.Size(1132, 32);
this.jobsToolStrip.Size = new System.Drawing.Size(1384, 44);
this.jobsToolStrip.TabIndex = 4;
this.jobsToolStrip.Text = "";
//
// instanceFilter
//
this.instanceFilter.Enabled = false;
this.instanceFilter.Font = new System.Drawing.Font("Segoe UI", 9F);
this.instanceFilter.Name = "instanceFilter";
this.instanceFilter.Size = new System.Drawing.Size(112, 32);
this.instanceFilter.ToolTipText = Resources.Filter_instances;
this.instanceFilter.Size = new System.Drawing.Size(136, 44);
this.instanceFilter.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Filter_instances;
this.instanceFilter.TextChanged += new System.EventHandler(this.InstanceFilter_TextChanged);
//
// jobNameFilter
//
this.jobNameFilter.Enabled = false;
this.jobNameFilter.Font = new System.Drawing.Font("Segoe UI", 9F);
this.jobNameFilter.Name = "jobNameFilter";
this.jobNameFilter.Size = new System.Drawing.Size(112, 32);
this.jobNameFilter.ToolTipText = Resources.Filter_job_names;
this.jobNameFilter.Size = new System.Drawing.Size(136, 44);
this.jobNameFilter.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Filter_job_names;
this.jobNameFilter.TextChanged += new System.EventHandler(this.JobNameFilter_TextChanged);
//
// addJobsDropDownButton
@ -401,64 +404,61 @@ namespace RecurringIntegrationsScheduler.Forms
this.addExportJobMenuItem,
this.addUploadJobMenuItem,
this.addDownloadJobMenuItem});
this.addJobsDropDownButton.Image = ((System.Drawing.Image)(resources.GetObject("addJobsDropDownButton.Image")));
this.addJobsDropDownButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.addJobsDropDownButton.Name = "addJobsDropDownButton";
this.addJobsDropDownButton.Size = new System.Drawing.Size(95, 29);
this.addJobsDropDownButton.Text = Resources.Add_job;
//
// addUploadJobMenuItem
//
this.addUploadJobMenuItem.Enabled = false;
this.addUploadJobMenuItem.Name = "addUploadJobMenuItem";
this.addUploadJobMenuItem.Size = new System.Drawing.Size(351, 30);
this.addUploadJobMenuItem.Text = Resources.Add_upload_job;
this.addUploadJobMenuItem.Click += new System.EventHandler(this.AddUploadJobMenuItem_Click);
//
// addDownloadJobMenuItem
//
this.addDownloadJobMenuItem.Enabled = false;
this.addDownloadJobMenuItem.Name = "addDownloadJobMenuItem";
this.addDownloadJobMenuItem.Size = new System.Drawing.Size(351, 30);
this.addDownloadJobMenuItem.Text = Resources.Add_download_job;
this.addDownloadJobMenuItem.Click += new System.EventHandler(this.AddDownloadJobMenuItem_Click);
this.addJobsDropDownButton.Size = new System.Drawing.Size(107, 38);
this.addJobsDropDownButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Add_job;
//
// addImportJobMenuItem
//
this.addImportJobMenuItem.Enabled = false;
this.addImportJobMenuItem.Name = "addImportJobMenuItem";
this.addImportJobMenuItem.Size = new System.Drawing.Size(351, 30);
this.addImportJobMenuItem.Text = Resources.Add_import_job;
this.addImportJobMenuItem.Size = new System.Drawing.Size(561, 40);
this.addImportJobMenuItem.Text = "Add import job (Package API)";
this.addImportJobMenuItem.Click += new System.EventHandler(this.AddImportJobMenuItem_Click);
//
// addExportJobMenuItem
//
this.addExportJobMenuItem.Enabled = false;
this.addExportJobMenuItem.Name = "addExportJobMenuItem";
this.addExportJobMenuItem.Size = new System.Drawing.Size(351, 30);
this.addExportJobMenuItem.Text = Resources.Add_export_job;
this.addExportJobMenuItem.Size = new System.Drawing.Size(561, 40);
this.addExportJobMenuItem.Text = "Add export job (Package API)";
this.addExportJobMenuItem.Click += new System.EventHandler(this.AddExportJobMenuItem_Click);
//
// addUploadJobMenuItem
//
this.addUploadJobMenuItem.Enabled = false;
this.addUploadJobMenuItem.Name = "addUploadJobMenuItem";
this.addUploadJobMenuItem.Size = new System.Drawing.Size(561, 40);
this.addUploadJobMenuItem.Text = "Add upload job (Recurring integrations API)";
this.addUploadJobMenuItem.Click += new System.EventHandler(this.AddUploadJobMenuItem_Click);
//
// addDownloadJobMenuItem
//
this.addDownloadJobMenuItem.Enabled = false;
this.addDownloadJobMenuItem.Name = "addDownloadJobMenuItem";
this.addDownloadJobMenuItem.Size = new System.Drawing.Size(561, 40);
this.addDownloadJobMenuItem.Text = "Add download job (Recurring integrations API)";
this.addDownloadJobMenuItem.Click += new System.EventHandler(this.AddDownloadJobMenuItem_Click);
//
// deleteJobButton
//
this.deleteJobButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.deleteJobButton.Enabled = false;
this.deleteJobButton.Image = ((System.Drawing.Image)(resources.GetObject("deleteJobButton.Image")));
this.deleteJobButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.deleteJobButton.Name = "deleteJobButton";
this.deleteJobButton.Size = new System.Drawing.Size(97, 29);
this.deleteJobButton.Size = new System.Drawing.Size(112, 38);
this.deleteJobButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Delete_job;
this.deleteJobButton.ToolTipText = Resources.Delete_job;
this.deleteJobButton.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Delete_job;
this.deleteJobButton.Click += new System.EventHandler(this.DeleteJobButton_Click);
//
// editJobButton
//
this.editJobButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.editJobButton.Enabled = false;
this.editJobButton.Image = ((System.Drawing.Image)(resources.GetObject("editJobButton.Image")));
this.editJobButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.editJobButton.Name = "editJobButton";
this.editJobButton.Size = new System.Drawing.Size(77, 29);
this.editJobButton.Size = new System.Drawing.Size(87, 38);
this.editJobButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Edit_job;
this.editJobButton.Click += new System.EventHandler(this.EditJobButton_Click);
//
@ -471,74 +471,70 @@ namespace RecurringIntegrationsScheduler.Forms
this.resumeJobToolStripMenuItem,
this.resumeAllJobsToolStripMenuItem});
this.pauseResumeDropDownButton.Enabled = false;
this.pauseResumeDropDownButton.Image = ((System.Drawing.Image)(resources.GetObject("pauseResumeDropDownButton.Image")));
this.pauseResumeDropDownButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.pauseResumeDropDownButton.Name = "pauseResumeDropDownButton";
this.pauseResumeDropDownButton.Size = new System.Drawing.Size(144, 29);
this.pauseResumeDropDownButton.Text = Resources.Pause_Resume;
this.pauseResumeDropDownButton.Size = new System.Drawing.Size(169, 38);
this.pauseResumeDropDownButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Pause_Resume;
//
// pauseJobToolStripMenuItem
//
this.pauseJobToolStripMenuItem.Name = "pauseJobToolStripMenuItem";
this.pauseJobToolStripMenuItem.Size = new System.Drawing.Size(219, 30);
this.pauseJobToolStripMenuItem.Text = Resources.Pause_job;
this.pauseJobToolStripMenuItem.Size = new System.Drawing.Size(275, 40);
this.pauseJobToolStripMenuItem.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Pause_job;
this.pauseJobToolStripMenuItem.Click += new System.EventHandler(this.PauseJobToolStripMenuItem_Click);
//
// pauseAllJobsToolStripMenuItem
//
this.pauseAllJobsToolStripMenuItem.Name = "pauseAllJobsToolStripMenuItem";
this.pauseAllJobsToolStripMenuItem.Size = new System.Drawing.Size(219, 30);
this.pauseAllJobsToolStripMenuItem.Text = Resources.Pause_all_jobs;
this.pauseAllJobsToolStripMenuItem.Size = new System.Drawing.Size(275, 40);
this.pauseAllJobsToolStripMenuItem.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Pause_all_jobs;
this.pauseAllJobsToolStripMenuItem.Click += new System.EventHandler(this.PauseAllJobsToolStripMenuItem_Click);
//
// resumeJobToolStripMenuItem
//
this.resumeJobToolStripMenuItem.Name = "resumeJobToolStripMenuItem";
this.resumeJobToolStripMenuItem.Size = new System.Drawing.Size(219, 30);
this.resumeJobToolStripMenuItem.Text = Resources.Resume_job;
this.resumeJobToolStripMenuItem.Size = new System.Drawing.Size(275, 40);
this.resumeJobToolStripMenuItem.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Resume_job;
this.resumeJobToolStripMenuItem.Click += new System.EventHandler(this.ResumeJobToolStripMenuItem_Click);
//
// resumeAllJobsToolStripMenuItem
//
this.resumeAllJobsToolStripMenuItem.Name = "resumeAllJobsToolStripMenuItem";
this.resumeAllJobsToolStripMenuItem.Size = new System.Drawing.Size(219, 30);
this.resumeAllJobsToolStripMenuItem.Text = Resources.Resume_all_jobs;
this.resumeAllJobsToolStripMenuItem.Size = new System.Drawing.Size(275, 40);
this.resumeAllJobsToolStripMenuItem.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Resume_all_jobs;
this.resumeAllJobsToolStripMenuItem.Click += new System.EventHandler(this.ResumeAllJobsToolStripMenuItem_Click);
//
// refreshButton
//
this.refreshButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.refreshButton.Enabled = false;
this.refreshButton.Image = ((System.Drawing.Image)(resources.GetObject("refreshButton.Image")));
this.refreshButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.refreshButton.Name = "refreshButton";
this.refreshButton.Size = new System.Drawing.Size(111, 29);
this.refreshButton.Text = Resources.Refresh_grid;
this.refreshButton.Size = new System.Drawing.Size(167, 38);
this.refreshButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Refresh_grid;
this.refreshButton.Click += new System.EventHandler(this.RefreshButton_Click);
//
// toolStripButton1
//
this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton1.Name = "toolStripButton1";
this.toolStripButton1.Size = new System.Drawing.Size(24, 24);
this.toolStripButton1.Text = "";
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 24F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1132, 504);
this.ClientSize = new System.Drawing.Size(1384, 605);
this.Controls.Add(this.jobsDataGridView);
this.Controls.Add(this.jobsToolStrip);
this.Controls.Add(this.statusStrip);
this.Controls.Add(this.mainMenuToolStrip);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.MinimumSize = new System.Drawing.Size(1010, 361);
this.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.MinimumSize = new System.Drawing.Size(1229, 420);
this.Name = "MainForm";
this.Text = Resources.Recurring_Integrations_Scheduler;
this.Text = "Recurring Integrations Scheduler";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Manager_FormClosing);
this.mainMenuToolStrip.ResumeLayout(false);
this.mainMenuToolStrip.PerformLayout();

Просмотреть файл

@ -117,6 +117,18 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="mainMenuToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>272, 17</value>
</metadata>
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>439, 17</value>
</metadata>
<metadata name="jobsToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>687, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>

359
Scheduler/Forms/Parameters.Designer.cs сгенерированный
Просмотреть файл

@ -84,15 +84,15 @@ namespace RecurringIntegrationsScheduler.Forms
this.foldersGroupBox = new System.Windows.Forms.GroupBox();
this.applicationsGroupBox = new System.Windows.Forms.GroupBox();
this.applicationsGrid = new System.Windows.Forms.DataGridView();
this.applicationName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.applicationType = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.applicationClientId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.applicationSecret = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.applicationsToolStrip = new System.Windows.Forms.ToolStrip();
this.applicationsAddButton = new System.Windows.Forms.ToolStripButton();
this.applicationsDeleteButton = new System.Windows.Forms.ToolStripButton();
this.applicationsEditButton = new System.Windows.Forms.ToolStripButton();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.applicationName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.applicationType = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.applicationClientId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.applicationSecret = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.instancesToolStrip.SuspendLayout();
this.usersToolStrip.SuspendLayout();
this.dataJobsToolStrip.SuspendLayout();
@ -125,10 +125,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.instancesDeleteButton,
this.instancesEditButton,
this.instancesValidateButton});
this.instancesToolStrip.Location = new System.Drawing.Point(6, 365);
this.instancesToolStrip.Location = new System.Drawing.Point(7, 436);
this.instancesToolStrip.Name = "instancesToolStrip";
this.instancesToolStrip.Padding = new System.Windows.Forms.Padding(0);
this.instancesToolStrip.Size = new System.Drawing.Size(638, 32);
this.instancesToolStrip.Size = new System.Drawing.Size(780, 40);
this.instancesToolStrip.TabIndex = 2;
//
// instancesAddButton
@ -136,7 +136,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.instancesAddButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Add_16xMD;
this.instancesAddButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.instancesAddButton.Name = "instancesAddButton";
this.instancesAddButton.Size = new System.Drawing.Size(70, 29);
this.instancesAddButton.Size = new System.Drawing.Size(75, 34);
this.instancesAddButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Add;
this.instancesAddButton.Click += new System.EventHandler(this.AxInstancesAddButton_Click);
//
@ -146,7 +146,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.instancesDeleteButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Remove_16xMD;
this.instancesDeleteButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.instancesDeleteButton.Name = "instancesDeleteButton";
this.instancesDeleteButton.Size = new System.Drawing.Size(86, 29);
this.instancesDeleteButton.Size = new System.Drawing.Size(97, 34);
this.instancesDeleteButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Delete;
this.instancesDeleteButton.Click += new System.EventHandler(this.AxInstancesDeleteButton_Click);
//
@ -156,7 +156,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.instancesEditButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Edit_16xMD;
this.instancesEditButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.instancesEditButton.Name = "instancesEditButton";
this.instancesEditButton.Size = new System.Drawing.Size(66, 29);
this.instancesEditButton.Size = new System.Drawing.Size(72, 34);
this.instancesEditButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Edit;
this.instancesEditButton.Click += new System.EventHandler(this.InstancesEditButton_Click);
//
@ -166,7 +166,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.instancesValidateButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.ValidateDocument_16x;
this.instancesValidateButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.instancesValidateButton.Name = "instancesValidateButton";
this.instancesValidateButton.Size = new System.Drawing.Size(98, 29);
this.instancesValidateButton.Size = new System.Drawing.Size(110, 34);
this.instancesValidateButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Validate;
this.instancesValidateButton.Click += new System.EventHandler(this.InstancesValidateButton_Click);
//
@ -179,10 +179,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.usersAddButton,
this.usersDeleteButton,
this.usersEditButton});
this.usersToolStrip.Location = new System.Drawing.Point(6, 365);
this.usersToolStrip.Location = new System.Drawing.Point(7, 437);
this.usersToolStrip.Name = "usersToolStrip";
this.usersToolStrip.Padding = new System.Windows.Forms.Padding(0);
this.usersToolStrip.Size = new System.Drawing.Size(310, 32);
this.usersToolStrip.Size = new System.Drawing.Size(379, 40);
this.usersToolStrip.TabIndex = 3;
//
// usersAddButton
@ -190,7 +190,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.usersAddButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Add_16xMD;
this.usersAddButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.usersAddButton.Name = "usersAddButton";
this.usersAddButton.Size = new System.Drawing.Size(70, 29);
this.usersAddButton.Size = new System.Drawing.Size(75, 34);
this.usersAddButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Add;
this.usersAddButton.Click += new System.EventHandler(this.UsersAddButton_Click);
//
@ -200,7 +200,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.usersDeleteButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Remove_16xMD;
this.usersDeleteButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.usersDeleteButton.Name = "usersDeleteButton";
this.usersDeleteButton.Size = new System.Drawing.Size(86, 29);
this.usersDeleteButton.Size = new System.Drawing.Size(97, 34);
this.usersDeleteButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Delete;
this.usersDeleteButton.Click += new System.EventHandler(this.UsersDeleteButton_Click);
//
@ -210,7 +210,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.usersEditButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Edit_16xMD;
this.usersEditButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.usersEditButton.Name = "usersEditButton";
this.usersEditButton.Size = new System.Drawing.Size(66, 29);
this.usersEditButton.Size = new System.Drawing.Size(72, 34);
this.usersEditButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Edit;
this.usersEditButton.Click += new System.EventHandler(this.UsersEditButton_Click);
//
@ -223,10 +223,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.dataJobsAddButton,
this.dataJobsDeleteButton,
this.dataJobsEditButton});
this.dataJobsToolStrip.Location = new System.Drawing.Point(6, 365);
this.dataJobsToolStrip.Location = new System.Drawing.Point(7, 436);
this.dataJobsToolStrip.Name = "dataJobsToolStrip";
this.dataJobsToolStrip.Padding = new System.Windows.Forms.Padding(0);
this.dataJobsToolStrip.Size = new System.Drawing.Size(307, 32);
this.dataJobsToolStrip.Size = new System.Drawing.Size(376, 40);
this.dataJobsToolStrip.TabIndex = 3;
//
// dataJobsAddButton
@ -234,7 +234,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.dataJobsAddButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Add_16xMD;
this.dataJobsAddButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.dataJobsAddButton.Name = "dataJobsAddButton";
this.dataJobsAddButton.Size = new System.Drawing.Size(70, 29);
this.dataJobsAddButton.Size = new System.Drawing.Size(75, 34);
this.dataJobsAddButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Add;
this.dataJobsAddButton.Click += new System.EventHandler(this.DataJobsAddButton_Click);
//
@ -244,7 +244,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.dataJobsDeleteButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Remove_16xMD;
this.dataJobsDeleteButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.dataJobsDeleteButton.Name = "dataJobsDeleteButton";
this.dataJobsDeleteButton.Size = new System.Drawing.Size(86, 29);
this.dataJobsDeleteButton.Size = new System.Drawing.Size(97, 34);
this.dataJobsDeleteButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Delete;
this.dataJobsDeleteButton.Click += new System.EventHandler(this.DataJobsDeleteButton_Click);
//
@ -254,7 +254,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.dataJobsEditButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Edit_16xMD;
this.dataJobsEditButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.dataJobsEditButton.Name = "dataJobsEditButton";
this.dataJobsEditButton.Size = new System.Drawing.Size(66, 29);
this.dataJobsEditButton.Size = new System.Drawing.Size(72, 34);
this.dataJobsEditButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Edit;
this.dataJobsEditButton.Click += new System.EventHandler(this.DataJobsEditButton_Click);
//
@ -267,10 +267,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.jobGroupsAddButton,
this.jobGroupsDeleteButton,
this.jobGroupsEditButton});
this.jobGroupsToolStrip.Location = new System.Drawing.Point(6, 365);
this.jobGroupsToolStrip.Location = new System.Drawing.Point(7, 437);
this.jobGroupsToolStrip.Name = "jobGroupsToolStrip";
this.jobGroupsToolStrip.Padding = new System.Windows.Forms.Padding(0);
this.jobGroupsToolStrip.Size = new System.Drawing.Size(307, 32);
this.jobGroupsToolStrip.Size = new System.Drawing.Size(376, 40);
this.jobGroupsToolStrip.TabIndex = 4;
//
// jobGroupsAddButton
@ -278,7 +278,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.jobGroupsAddButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Add_16xMD;
this.jobGroupsAddButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.jobGroupsAddButton.Name = "jobGroupsAddButton";
this.jobGroupsAddButton.Size = new System.Drawing.Size(70, 29);
this.jobGroupsAddButton.Size = new System.Drawing.Size(75, 34);
this.jobGroupsAddButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Add;
this.jobGroupsAddButton.Click += new System.EventHandler(this.JobGroupsAddButton_Click);
//
@ -288,7 +288,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.jobGroupsDeleteButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Remove_16xMD;
this.jobGroupsDeleteButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.jobGroupsDeleteButton.Name = "jobGroupsDeleteButton";
this.jobGroupsDeleteButton.Size = new System.Drawing.Size(86, 29);
this.jobGroupsDeleteButton.Size = new System.Drawing.Size(97, 34);
this.jobGroupsDeleteButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Delete;
this.jobGroupsDeleteButton.Click += new System.EventHandler(this.JobGroupsDeleteButton_Click);
//
@ -298,7 +298,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.jobGroupsEditButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Edit_16xMD;
this.jobGroupsEditButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.jobGroupsEditButton.Name = "jobGroupsEditButton";
this.jobGroupsEditButton.Size = new System.Drawing.Size(66, 29);
this.jobGroupsEditButton.Size = new System.Drawing.Size(72, 34);
this.jobGroupsEditButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Edit;
this.jobGroupsEditButton.Click += new System.EventHandler(this.JobGroupsEditButton_Click);
//
@ -308,14 +308,14 @@ namespace RecurringIntegrationsScheduler.Forms
this.instancesGroupBox.Controls.Add(this.instancesGrid);
this.instancesGroupBox.Controls.Add(this.instancesToolStrip);
this.instancesGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.instancesGroupBox.Location = new System.Drawing.Point(4, 5);
this.instancesGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.instancesGroupBox.Location = new System.Drawing.Point(5, 6);
this.instancesGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.instancesGroupBox.Name = "instancesGroupBox";
this.instancesGroupBox.Padding = new System.Windows.Forms.Padding(6, 12, 6, 6);
this.instancesGroupBox.Size = new System.Drawing.Size(650, 403);
this.instancesGroupBox.Padding = new System.Windows.Forms.Padding(7, 14, 7, 7);
this.instancesGroupBox.Size = new System.Drawing.Size(794, 483);
this.instancesGroupBox.TabIndex = 1;
this.instancesGroupBox.TabStop = false;
this.instancesGroupBox.Text = Resources.Dynamics_365_for_Operations_instances;
this.instancesGroupBox.Text = "Dynamics 365 for Finance and Operations instances";
//
// instancesGrid
//
@ -333,15 +333,15 @@ namespace RecurringIntegrationsScheduler.Forms
this.instanceAadTenant,
this.instanceAzureAuthEndpoint});
this.instancesGrid.Dock = System.Windows.Forms.DockStyle.Fill;
this.instancesGrid.Location = new System.Drawing.Point(6, 31);
this.instancesGrid.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.instancesGrid.Location = new System.Drawing.Point(7, 36);
this.instancesGrid.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.instancesGrid.MultiSelect = false;
this.instancesGrid.Name = "instancesGrid";
this.instancesGrid.ReadOnly = true;
this.instancesGrid.RowHeadersVisible = false;
this.instancesGrid.RowHeadersWidth = 4;
this.instancesGrid.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.instancesGrid.Size = new System.Drawing.Size(638, 334);
this.instancesGrid.Size = new System.Drawing.Size(780, 400);
this.instancesGrid.TabIndex = 0;
this.instancesGrid.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.InstancesGrid_CellContentDoubleClick);
this.instancesGrid.RowsRemoved += new System.Windows.Forms.DataGridViewRowsRemovedEventHandler(this.InstancesDataGridView_RowsRemoved);
@ -352,7 +352,8 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.instanceName.DataPropertyName = "Name";
this.instanceName.FillWeight = 40F;
this.instanceName.HeaderText = Resources.NameLabel;
this.instanceName.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.NameLabel;
this.instanceName.MinimumWidth = 9;
this.instanceName.Name = "instanceName";
this.instanceName.ReadOnly = true;
this.instanceName.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Friendly_name_used_only_in_Recurring_Integrations_App;
@ -362,6 +363,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.instanceAosUri.DataPropertyName = "AosUri";
this.instanceAosUri.FillWeight = 40F;
this.instanceAosUri.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.AOS_URL;
this.instanceAosUri.MinimumWidth = 9;
this.instanceAosUri.Name = "instanceAosUri";
this.instanceAosUri.ReadOnly = true;
//
@ -370,6 +372,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.instanceAadTenant.DataPropertyName = "AadTenant";
this.instanceAadTenant.FillWeight = 20F;
this.instanceAadTenant.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Tenant;
this.instanceAadTenant.MinimumWidth = 9;
this.instanceAadTenant.Name = "instanceAadTenant";
this.instanceAadTenant.ReadOnly = true;
this.instanceAadTenant.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Uri_or_Guid;
@ -378,6 +381,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.instanceAzureAuthEndpoint.DataPropertyName = "AzureAuthEndpoint";
this.instanceAzureAuthEndpoint.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Authentication_endpoint;
this.instanceAzureAuthEndpoint.MinimumWidth = 9;
this.instanceAzureAuthEndpoint.Name = "instanceAzureAuthEndpoint";
this.instanceAzureAuthEndpoint.ReadOnly = true;
this.instanceAzureAuthEndpoint.Visible = false;
@ -387,14 +391,14 @@ namespace RecurringIntegrationsScheduler.Forms
this.usersGroupBox.Controls.Add(this.usersDataGrid);
this.usersGroupBox.Controls.Add(this.usersToolStrip);
this.usersGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.usersGroupBox.Location = new System.Drawing.Point(332, 418);
this.usersGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.usersGroupBox.Location = new System.Drawing.Point(406, 501);
this.usersGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.usersGroupBox.Name = "usersGroupBox";
this.usersGroupBox.Padding = new System.Windows.Forms.Padding(6, 12, 6, 6);
this.usersGroupBox.Size = new System.Drawing.Size(322, 403);
this.usersGroupBox.Padding = new System.Windows.Forms.Padding(7, 14, 7, 7);
this.usersGroupBox.Size = new System.Drawing.Size(393, 484);
this.usersGroupBox.TabIndex = 0;
this.usersGroupBox.TabStop = false;
this.usersGroupBox.Text = Resources.User_credentials;
this.usersGroupBox.Text = "User credentials";
//
// usersDataGrid
//
@ -410,15 +414,15 @@ namespace RecurringIntegrationsScheduler.Forms
this.userLogin,
this.userPassword});
this.usersDataGrid.Dock = System.Windows.Forms.DockStyle.Fill;
this.usersDataGrid.Location = new System.Drawing.Point(6, 31);
this.usersDataGrid.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.usersDataGrid.Location = new System.Drawing.Point(7, 36);
this.usersDataGrid.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.usersDataGrid.MultiSelect = false;
this.usersDataGrid.Name = "usersDataGrid";
this.usersDataGrid.ReadOnly = true;
this.usersDataGrid.RowHeadersVisible = false;
this.usersDataGrid.RowHeadersWidth = 4;
this.usersDataGrid.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.usersDataGrid.Size = new System.Drawing.Size(310, 334);
this.usersDataGrid.Size = new System.Drawing.Size(379, 401);
this.usersDataGrid.TabIndex = 1;
this.usersDataGrid.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.UsersDataGrid_CellContentDoubleClick);
this.usersDataGrid.RowsRemoved += new System.Windows.Forms.DataGridViewRowsRemovedEventHandler(this.UsersDataGridView_RowsRemoved);
@ -428,6 +432,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.userLogin.DataPropertyName = "Login";
this.userLogin.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.User_login_UPN;
this.userLogin.MinimumWidth = 9;
this.userLogin.Name = "userLogin";
this.userLogin.ReadOnly = true;
this.userLogin.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.User_login_like_admin_contoso_com;
@ -436,6 +441,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.userPassword.DataPropertyName = "Password";
this.userPassword.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Password;
this.userPassword.MinimumWidth = 9;
this.userPassword.Name = "userPassword";
this.userPassword.ReadOnly = true;
this.userPassword.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Password;
@ -446,14 +452,14 @@ namespace RecurringIntegrationsScheduler.Forms
this.dataJobsGroupBox.Controls.Add(this.dataJobsGrid);
this.dataJobsGroupBox.Controls.Add(this.dataJobsToolStrip);
this.dataJobsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.dataJobsGroupBox.Location = new System.Drawing.Point(662, 5);
this.dataJobsGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.dataJobsGroupBox.Location = new System.Drawing.Point(809, 6);
this.dataJobsGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.dataJobsGroupBox.Name = "dataJobsGroupBox";
this.dataJobsGroupBox.Padding = new System.Windows.Forms.Padding(6, 12, 6, 6);
this.dataJobsGroupBox.Size = new System.Drawing.Size(319, 403);
this.dataJobsGroupBox.Padding = new System.Windows.Forms.Padding(7, 14, 7, 7);
this.dataJobsGroupBox.Size = new System.Drawing.Size(390, 483);
this.dataJobsGroupBox.TabIndex = 0;
this.dataJobsGroupBox.TabStop = false;
this.dataJobsGroupBox.Text = Resources.Data_jobs;
this.dataJobsGroupBox.Text = "Data jobs";
//
// dataJobsGrid
//
@ -471,15 +477,15 @@ namespace RecurringIntegrationsScheduler.Forms
this.dataJobActivityId,
this.dataJobEntityName});
this.dataJobsGrid.Dock = System.Windows.Forms.DockStyle.Fill;
this.dataJobsGrid.Location = new System.Drawing.Point(6, 31);
this.dataJobsGrid.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.dataJobsGrid.Location = new System.Drawing.Point(7, 36);
this.dataJobsGrid.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.dataJobsGrid.MultiSelect = false;
this.dataJobsGrid.Name = "dataJobsGrid";
this.dataJobsGrid.ReadOnly = true;
this.dataJobsGrid.RowHeadersVisible = false;
this.dataJobsGrid.RowHeadersWidth = 4;
this.dataJobsGrid.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dataJobsGrid.Size = new System.Drawing.Size(307, 334);
this.dataJobsGrid.Size = new System.Drawing.Size(376, 400);
this.dataJobsGrid.TabIndex = 0;
this.dataJobsGrid.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataJobsGrid_CellContentDoubleClick);
this.dataJobsGrid.RowsRemoved += new System.Windows.Forms.DataGridViewRowsRemovedEventHandler(this.DataJobsDataGridView_RowsRemoved);
@ -488,7 +494,7 @@ namespace RecurringIntegrationsScheduler.Forms
// dataJobName
//
this.dataJobName.DataPropertyName = "Name";
this.dataJobName.HeaderText = Resources.NameLabel;
this.dataJobName.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.NameLabel;
this.dataJobName.MinimumWidth = 50;
this.dataJobName.Name = "dataJobName";
this.dataJobName.ReadOnly = true;
@ -506,6 +512,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.dataJobActivityId.DataPropertyName = "ActivityId";
this.dataJobActivityId.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Activity_Id;
this.dataJobActivityId.MinimumWidth = 9;
this.dataJobActivityId.Name = "dataJobActivityId";
this.dataJobActivityId.ReadOnly = true;
this.dataJobActivityId.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Activity_Id_Guid_of_this_data_job_configured_in_Dynamics;
@ -515,6 +522,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.dataJobEntityName.DataPropertyName = "EntityName";
this.dataJobEntityName.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Entity_name;
this.dataJobEntityName.MinimumWidth = 9;
this.dataJobEntityName.Name = "dataJobEntityName";
this.dataJobEntityName.ReadOnly = true;
this.dataJobEntityName.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Entity_name_for_this_data_job_configured_in_Dynamics;
@ -524,32 +532,32 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.downloadJobsFolderGroupBox.Controls.Add(this.downloadErrorsFolderLabel);
this.downloadJobsFolderGroupBox.Controls.Add(this.downloadErrorsFolder);
this.downloadJobsFolderGroupBox.Location = new System.Drawing.Point(10, 325);
this.downloadJobsFolderGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.downloadJobsFolderGroupBox.Location = new System.Drawing.Point(12, 390);
this.downloadJobsFolderGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.downloadJobsFolderGroupBox.Name = "downloadJobsFolderGroupBox";
this.downloadJobsFolderGroupBox.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.downloadJobsFolderGroupBox.Size = new System.Drawing.Size(260, 72);
this.downloadJobsFolderGroupBox.Padding = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.downloadJobsFolderGroupBox.Size = new System.Drawing.Size(318, 86);
this.downloadJobsFolderGroupBox.TabIndex = 2;
this.downloadJobsFolderGroupBox.TabStop = false;
this.downloadJobsFolderGroupBox.Text = Resources.Download_jobs_folders_names;
this.downloadJobsFolderGroupBox.Text = "Download/export folders names";
//
// downloadErrorsFolderLabel
//
this.downloadErrorsFolderLabel.AutoSize = true;
this.downloadErrorsFolderLabel.Location = new System.Drawing.Point(55, 32);
this.downloadErrorsFolderLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.downloadErrorsFolderLabel.Location = new System.Drawing.Point(67, 38);
this.downloadErrorsFolderLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.downloadErrorsFolderLabel.Name = "downloadErrorsFolderLabel";
this.downloadErrorsFolderLabel.Size = new System.Drawing.Size(52, 20);
this.downloadErrorsFolderLabel.Size = new System.Drawing.Size(64, 25);
this.downloadErrorsFolderLabel.TabIndex = 7;
this.downloadErrorsFolderLabel.Text = Resources.Errors;
this.downloadErrorsFolderLabel.Text = "Errors";
//
// downloadErrorsFolder
//
this.downloadErrorsFolder.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::RecurringIntegrationsScheduler.Properties.Settings.Default, "DownloadErrorsFolder", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.downloadErrorsFolder.Location = new System.Drawing.Point(118, 29);
this.downloadErrorsFolder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.downloadErrorsFolder.Location = new System.Drawing.Point(144, 35);
this.downloadErrorsFolder.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.downloadErrorsFolder.Name = "downloadErrorsFolder";
this.downloadErrorsFolder.Size = new System.Drawing.Size(127, 26);
this.downloadErrorsFolder.Size = new System.Drawing.Size(154, 29);
this.downloadErrorsFolder.TabIndex = 9;
this.downloadErrorsFolder.Text = global::RecurringIntegrationsScheduler.Properties.Settings.Default.DownloadErrorsFolder;
//
@ -559,52 +567,52 @@ namespace RecurringIntegrationsScheduler.Forms
this.processingJobsFoldersGroupBox.Controls.Add(this.processingSuccessFolder);
this.processingJobsFoldersGroupBox.Controls.Add(this.processingErrorsFolderLabel);
this.processingJobsFoldersGroupBox.Controls.Add(this.processingErrorsFolder);
this.processingJobsFoldersGroupBox.Location = new System.Drawing.Point(10, 199);
this.processingJobsFoldersGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.processingJobsFoldersGroupBox.Location = new System.Drawing.Point(12, 239);
this.processingJobsFoldersGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.processingJobsFoldersGroupBox.Name = "processingJobsFoldersGroupBox";
this.processingJobsFoldersGroupBox.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.processingJobsFoldersGroupBox.Size = new System.Drawing.Size(260, 116);
this.processingJobsFoldersGroupBox.Padding = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.processingJobsFoldersGroupBox.Size = new System.Drawing.Size(318, 139);
this.processingJobsFoldersGroupBox.TabIndex = 1;
this.processingJobsFoldersGroupBox.TabStop = false;
this.processingJobsFoldersGroupBox.Text = Resources.Monitoring_jobs_folders_names;
this.processingJobsFoldersGroupBox.Text = "Monitoring jobs folders names";
//
// processingSuccessFolderLabel
//
this.processingSuccessFolderLabel.AutoSize = true;
this.processingSuccessFolderLabel.Location = new System.Drawing.Point(39, 39);
this.processingSuccessFolderLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.processingSuccessFolderLabel.Location = new System.Drawing.Point(48, 47);
this.processingSuccessFolderLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.processingSuccessFolderLabel.Name = "processingSuccessFolderLabel";
this.processingSuccessFolderLabel.Size = new System.Drawing.Size(70, 20);
this.processingSuccessFolderLabel.Size = new System.Drawing.Size(88, 25);
this.processingSuccessFolderLabel.TabIndex = 9;
this.processingSuccessFolderLabel.Text = Resources.Success;
this.processingSuccessFolderLabel.Text = "Success";
//
// processingSuccessFolder
//
this.processingSuccessFolder.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::RecurringIntegrationsScheduler.Properties.Settings.Default, "ProcessingSuccessFolder", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.processingSuccessFolder.Location = new System.Drawing.Point(118, 35);
this.processingSuccessFolder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.processingSuccessFolder.Location = new System.Drawing.Point(144, 42);
this.processingSuccessFolder.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.processingSuccessFolder.Name = "processingSuccessFolder";
this.processingSuccessFolder.Size = new System.Drawing.Size(127, 26);
this.processingSuccessFolder.Size = new System.Drawing.Size(154, 29);
this.processingSuccessFolder.TabIndex = 12;
this.processingSuccessFolder.Text = global::RecurringIntegrationsScheduler.Properties.Settings.Default.ProcessingSuccessFolder;
//
// processingErrorsFolderLabel
//
this.processingErrorsFolderLabel.AutoSize = true;
this.processingErrorsFolderLabel.Location = new System.Drawing.Point(55, 76);
this.processingErrorsFolderLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.processingErrorsFolderLabel.Location = new System.Drawing.Point(67, 91);
this.processingErrorsFolderLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.processingErrorsFolderLabel.Name = "processingErrorsFolderLabel";
this.processingErrorsFolderLabel.Size = new System.Drawing.Size(52, 20);
this.processingErrorsFolderLabel.Size = new System.Drawing.Size(64, 25);
this.processingErrorsFolderLabel.TabIndex = 13;
this.processingErrorsFolderLabel.Text = Resources.Errors;
this.processingErrorsFolderLabel.Text = "Errors";
//
// processingErrorsFolder
//
this.processingErrorsFolder.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::RecurringIntegrationsScheduler.Properties.Settings.Default, "ProcessingErrorsFolder", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.processingErrorsFolder.Location = new System.Drawing.Point(118, 72);
this.processingErrorsFolder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.processingErrorsFolder.Location = new System.Drawing.Point(144, 86);
this.processingErrorsFolder.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.processingErrorsFolder.Name = "processingErrorsFolder";
this.processingErrorsFolder.Size = new System.Drawing.Size(127, 26);
this.processingErrorsFolder.Size = new System.Drawing.Size(154, 29);
this.processingErrorsFolder.TabIndex = 14;
this.processingErrorsFolder.Text = global::RecurringIntegrationsScheduler.Properties.Settings.Default.ProcessingErrorsFolder;
//
@ -616,72 +624,72 @@ namespace RecurringIntegrationsScheduler.Forms
this.uploadJobsFoldersGroupBox.Controls.Add(this.uploadSuccessFolder);
this.uploadJobsFoldersGroupBox.Controls.Add(this.uploadErrorsFolderLabel);
this.uploadJobsFoldersGroupBox.Controls.Add(this.uploadErrorsFolder);
this.uploadJobsFoldersGroupBox.Location = new System.Drawing.Point(10, 31);
this.uploadJobsFoldersGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.uploadJobsFoldersGroupBox.Location = new System.Drawing.Point(12, 37);
this.uploadJobsFoldersGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.uploadJobsFoldersGroupBox.Name = "uploadJobsFoldersGroupBox";
this.uploadJobsFoldersGroupBox.Padding = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.uploadJobsFoldersGroupBox.Size = new System.Drawing.Size(260, 158);
this.uploadJobsFoldersGroupBox.Padding = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.uploadJobsFoldersGroupBox.Size = new System.Drawing.Size(318, 190);
this.uploadJobsFoldersGroupBox.TabIndex = 0;
this.uploadJobsFoldersGroupBox.TabStop = false;
this.uploadJobsFoldersGroupBox.Text = Resources.Upload_jobs_folders_names;
this.uploadJobsFoldersGroupBox.Text = "Upload/import jobs folders names";
//
// uploadInputFolderLabel
//
this.uploadInputFolderLabel.AutoSize = true;
this.uploadInputFolderLabel.Location = new System.Drawing.Point(19, 42);
this.uploadInputFolderLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.uploadInputFolderLabel.Location = new System.Drawing.Point(23, 50);
this.uploadInputFolderLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.uploadInputFolderLabel.Name = "uploadInputFolderLabel";
this.uploadInputFolderLabel.Size = new System.Drawing.Size(90, 20);
this.uploadInputFolderLabel.Size = new System.Drawing.Size(108, 25);
this.uploadInputFolderLabel.TabIndex = 0;
this.uploadInputFolderLabel.Text = Resources.Input_folder;
this.uploadInputFolderLabel.Text = "Input folder";
//
// uploadInputFolder
//
this.uploadInputFolder.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::RecurringIntegrationsScheduler.Properties.Settings.Default, "UploadInputFolder", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.uploadInputFolder.Location = new System.Drawing.Point(118, 39);
this.uploadInputFolder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.uploadInputFolder.Location = new System.Drawing.Point(144, 47);
this.uploadInputFolder.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.uploadInputFolder.Name = "uploadInputFolder";
this.uploadInputFolder.Size = new System.Drawing.Size(127, 26);
this.uploadInputFolder.Size = new System.Drawing.Size(154, 29);
this.uploadInputFolder.TabIndex = 4;
this.uploadInputFolder.Text = global::RecurringIntegrationsScheduler.Properties.Settings.Default.UploadInputFolder;
//
// uploadSuccessFolderLabel
//
this.uploadSuccessFolderLabel.AutoSize = true;
this.uploadSuccessFolderLabel.Location = new System.Drawing.Point(30, 80);
this.uploadSuccessFolderLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.uploadSuccessFolderLabel.Location = new System.Drawing.Point(37, 96);
this.uploadSuccessFolderLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.uploadSuccessFolderLabel.Name = "uploadSuccessFolderLabel";
this.uploadSuccessFolderLabel.Size = new System.Drawing.Size(70, 20);
this.uploadSuccessFolderLabel.Size = new System.Drawing.Size(88, 25);
this.uploadSuccessFolderLabel.TabIndex = 1;
this.uploadSuccessFolderLabel.Text = Resources.Success;
this.uploadSuccessFolderLabel.Text = "Success";
//
// uploadSuccessFolder
//
this.uploadSuccessFolder.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::RecurringIntegrationsScheduler.Properties.Settings.Default, "UploadSuccessFolder", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.uploadSuccessFolder.Location = new System.Drawing.Point(118, 76);
this.uploadSuccessFolder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.uploadSuccessFolder.Location = new System.Drawing.Point(144, 91);
this.uploadSuccessFolder.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.uploadSuccessFolder.Name = "uploadSuccessFolder";
this.uploadSuccessFolder.Size = new System.Drawing.Size(127, 26);
this.uploadSuccessFolder.Size = new System.Drawing.Size(154, 29);
this.uploadSuccessFolder.TabIndex = 5;
this.uploadSuccessFolder.Text = global::RecurringIntegrationsScheduler.Properties.Settings.Default.UploadSuccessFolder;
//
// uploadErrorsFolderLabel
//
this.uploadErrorsFolderLabel.AutoSize = true;
this.uploadErrorsFolderLabel.Location = new System.Drawing.Point(55, 118);
this.uploadErrorsFolderLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.uploadErrorsFolderLabel.Location = new System.Drawing.Point(67, 142);
this.uploadErrorsFolderLabel.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.uploadErrorsFolderLabel.Name = "uploadErrorsFolderLabel";
this.uploadErrorsFolderLabel.Size = new System.Drawing.Size(52, 20);
this.uploadErrorsFolderLabel.Size = new System.Drawing.Size(64, 25);
this.uploadErrorsFolderLabel.TabIndex = 3;
this.uploadErrorsFolderLabel.Text = Resources.Errors;
this.uploadErrorsFolderLabel.Text = "Errors";
//
// uploadErrorsFolder
//
this.uploadErrorsFolder.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::RecurringIntegrationsScheduler.Properties.Settings.Default, "UploadErrorsFolder", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
this.uploadErrorsFolder.Location = new System.Drawing.Point(118, 114);
this.uploadErrorsFolder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.uploadErrorsFolder.Location = new System.Drawing.Point(144, 137);
this.uploadErrorsFolder.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.uploadErrorsFolder.Name = "uploadErrorsFolder";
this.uploadErrorsFolder.Size = new System.Drawing.Size(127, 26);
this.uploadErrorsFolder.Size = new System.Drawing.Size(154, 29);
this.uploadErrorsFolder.TabIndex = 7;
this.uploadErrorsFolder.Text = global::RecurringIntegrationsScheduler.Properties.Settings.Default.UploadErrorsFolder;
//
@ -690,14 +698,14 @@ namespace RecurringIntegrationsScheduler.Forms
this.jobGroupsGroupBox.Controls.Add(this.jobGroupsGrid);
this.jobGroupsGroupBox.Controls.Add(this.jobGroupsToolStrip);
this.jobGroupsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.jobGroupsGroupBox.Location = new System.Drawing.Point(662, 418);
this.jobGroupsGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.jobGroupsGroupBox.Location = new System.Drawing.Point(809, 501);
this.jobGroupsGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.jobGroupsGroupBox.Name = "jobGroupsGroupBox";
this.jobGroupsGroupBox.Padding = new System.Windows.Forms.Padding(6, 12, 6, 6);
this.jobGroupsGroupBox.Size = new System.Drawing.Size(319, 403);
this.jobGroupsGroupBox.Padding = new System.Windows.Forms.Padding(7, 14, 7, 7);
this.jobGroupsGroupBox.Size = new System.Drawing.Size(390, 484);
this.jobGroupsGroupBox.TabIndex = 1;
this.jobGroupsGroupBox.TabStop = false;
this.jobGroupsGroupBox.Text = Resources.Job_groups;
this.jobGroupsGroupBox.Text = "Job groups";
//
// jobGroupsGrid
//
@ -712,15 +720,15 @@ namespace RecurringIntegrationsScheduler.Forms
this.jobGroupsGrid.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.jobGroupName});
this.jobGroupsGrid.Dock = System.Windows.Forms.DockStyle.Fill;
this.jobGroupsGrid.Location = new System.Drawing.Point(6, 31);
this.jobGroupsGrid.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.jobGroupsGrid.Location = new System.Drawing.Point(7, 36);
this.jobGroupsGrid.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.jobGroupsGrid.MultiSelect = false;
this.jobGroupsGrid.Name = "jobGroupsGrid";
this.jobGroupsGrid.ReadOnly = true;
this.jobGroupsGrid.RowHeadersVisible = false;
this.jobGroupsGrid.RowHeadersWidth = 4;
this.jobGroupsGrid.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.jobGroupsGrid.Size = new System.Drawing.Size(307, 334);
this.jobGroupsGrid.Size = new System.Drawing.Size(376, 401);
this.jobGroupsGrid.TabIndex = 1;
this.jobGroupsGrid.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.JobGroupsGrid_CellContentDoubleClick);
this.jobGroupsGrid.RowsRemoved += new System.Windows.Forms.DataGridViewRowsRemovedEventHandler(this.JobGroupsDataGridView_RowsRemoved);
@ -730,6 +738,7 @@ namespace RecurringIntegrationsScheduler.Forms
//
this.jobGroupName.DataPropertyName = "Name";
this.jobGroupName.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Group_name;
this.jobGroupName.MinimumWidth = 9;
this.jobGroupName.Name = "jobGroupName";
this.jobGroupName.ReadOnly = true;
//
@ -738,29 +747,29 @@ namespace RecurringIntegrationsScheduler.Forms
this.foldersGroupBox.Controls.Add(this.uploadJobsFoldersGroupBox);
this.foldersGroupBox.Controls.Add(this.processingJobsFoldersGroupBox);
this.foldersGroupBox.Controls.Add(this.downloadJobsFolderGroupBox);
this.foldersGroupBox.Location = new System.Drawing.Point(988, 4);
this.foldersGroupBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.foldersGroupBox.Location = new System.Drawing.Point(1208, 5);
this.foldersGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.foldersGroupBox.Name = "foldersGroupBox";
this.foldersGroupBox.Padding = new System.Windows.Forms.Padding(6, 12, 6, 6);
this.foldersGroupBox.Padding = new System.Windows.Forms.Padding(7, 14, 7, 7);
this.tableLayoutPanel1.SetRowSpan(this.foldersGroupBox, 2);
this.foldersGroupBox.Size = new System.Drawing.Size(282, 410);
this.foldersGroupBox.Size = new System.Drawing.Size(345, 492);
this.foldersGroupBox.TabIndex = 2;
this.foldersGroupBox.TabStop = false;
this.foldersGroupBox.Text = Resources.Default_folder_names;
this.foldersGroupBox.Text = "Default folder names";
//
// applicationsGroupBox
//
this.applicationsGroupBox.Controls.Add(this.applicationsGrid);
this.applicationsGroupBox.Controls.Add(this.applicationsToolStrip);
this.applicationsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.applicationsGroupBox.Location = new System.Drawing.Point(4, 418);
this.applicationsGroupBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.applicationsGroupBox.Location = new System.Drawing.Point(5, 501);
this.applicationsGroupBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.applicationsGroupBox.Name = "applicationsGroupBox";
this.applicationsGroupBox.Padding = new System.Windows.Forms.Padding(6, 12, 6, 6);
this.applicationsGroupBox.Size = new System.Drawing.Size(320, 403);
this.applicationsGroupBox.Padding = new System.Windows.Forms.Padding(7, 14, 7, 7);
this.applicationsGroupBox.Size = new System.Drawing.Size(391, 484);
this.applicationsGroupBox.TabIndex = 8;
this.applicationsGroupBox.TabStop = false;
this.applicationsGroupBox.Text = Resources.Azure_AD_applications;
this.applicationsGroupBox.Text = "Azure AD applications";
//
// applicationsGrid
//
@ -778,20 +787,56 @@ namespace RecurringIntegrationsScheduler.Forms
this.applicationClientId,
this.applicationSecret});
this.applicationsGrid.Dock = System.Windows.Forms.DockStyle.Fill;
this.applicationsGrid.Location = new System.Drawing.Point(6, 31);
this.applicationsGrid.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.applicationsGrid.Location = new System.Drawing.Point(7, 36);
this.applicationsGrid.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.applicationsGrid.MultiSelect = false;
this.applicationsGrid.Name = "applicationsGrid";
this.applicationsGrid.ReadOnly = true;
this.applicationsGrid.RowHeadersVisible = false;
this.applicationsGrid.RowHeadersWidth = 4;
this.applicationsGrid.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.applicationsGrid.Size = new System.Drawing.Size(308, 334);
this.applicationsGrid.Size = new System.Drawing.Size(377, 401);
this.applicationsGrid.TabIndex = 1;
this.applicationsGrid.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.ApplicationsGrid_CellContentDoubleClick);
this.applicationsGrid.RowsRemoved += new System.Windows.Forms.DataGridViewRowsRemovedEventHandler(this.ApplicationsGrid_RowsRemoved);
this.applicationsGrid.RowStateChanged += new System.Windows.Forms.DataGridViewRowStateChangedEventHandler(this.ApplicationsGrid_RowStateChanged);
//
// applicationName
//
this.applicationName.DataPropertyName = "Name";
this.applicationName.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.NameLabel;
this.applicationName.MinimumWidth = 9;
this.applicationName.Name = "applicationName";
this.applicationName.ReadOnly = true;
//
// applicationType
//
this.applicationType.DataPropertyName = "AuthenticationType";
this.applicationType.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Auth_type;
this.applicationType.MinimumWidth = 9;
this.applicationType.Name = "applicationType";
this.applicationType.ReadOnly = true;
//
// applicationClientId
//
this.applicationClientId.DataPropertyName = "ClientId";
this.applicationClientId.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Client_Id;
this.applicationClientId.MinimumWidth = 9;
this.applicationClientId.Name = "applicationClientId";
this.applicationClientId.ReadOnly = true;
this.applicationClientId.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Application_client_Id_GUID;
this.applicationClientId.Visible = false;
//
// applicationSecret
//
this.applicationSecret.DataPropertyName = "Secret";
this.applicationSecret.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Secret;
this.applicationSecret.MinimumWidth = 9;
this.applicationSecret.Name = "applicationSecret";
this.applicationSecret.ReadOnly = true;
this.applicationSecret.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Web_application_client_secret;
this.applicationSecret.Visible = false;
//
// applicationsToolStrip
//
this.applicationsToolStrip.Dock = System.Windows.Forms.DockStyle.Bottom;
@ -801,10 +846,10 @@ namespace RecurringIntegrationsScheduler.Forms
this.applicationsAddButton,
this.applicationsDeleteButton,
this.applicationsEditButton});
this.applicationsToolStrip.Location = new System.Drawing.Point(6, 365);
this.applicationsToolStrip.Location = new System.Drawing.Point(7, 437);
this.applicationsToolStrip.Name = "applicationsToolStrip";
this.applicationsToolStrip.Padding = new System.Windows.Forms.Padding(0);
this.applicationsToolStrip.Size = new System.Drawing.Size(308, 32);
this.applicationsToolStrip.Size = new System.Drawing.Size(377, 40);
this.applicationsToolStrip.TabIndex = 4;
//
// applicationsAddButton
@ -812,7 +857,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.applicationsAddButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Add_16xMD;
this.applicationsAddButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.applicationsAddButton.Name = "applicationsAddButton";
this.applicationsAddButton.Size = new System.Drawing.Size(70, 29);
this.applicationsAddButton.Size = new System.Drawing.Size(75, 34);
this.applicationsAddButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Add;
this.applicationsAddButton.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Add_Azure_application;
this.applicationsAddButton.Click += new System.EventHandler(this.ApplicationsAddButton_Click);
@ -823,7 +868,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.applicationsDeleteButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Remove_16xMD;
this.applicationsDeleteButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.applicationsDeleteButton.Name = "applicationsDeleteButton";
this.applicationsDeleteButton.Size = new System.Drawing.Size(86, 29);
this.applicationsDeleteButton.Size = new System.Drawing.Size(97, 34);
this.applicationsDeleteButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Delete;
this.applicationsDeleteButton.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Delete_Azure_application;
this.applicationsDeleteButton.Click += new System.EventHandler(this.ApplicationsDeleteButton_Click);
@ -834,7 +879,7 @@ namespace RecurringIntegrationsScheduler.Forms
this.applicationsEditButton.Image = global::RecurringIntegrationsScheduler.Properties.Resources.Edit_16xMD;
this.applicationsEditButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.applicationsEditButton.Name = "applicationsEditButton";
this.applicationsEditButton.Size = new System.Drawing.Size(66, 29);
this.applicationsEditButton.Size = new System.Drawing.Size(72, 34);
this.applicationsEditButton.Text = global::RecurringIntegrationsScheduler.Properties.Resources.Edit;
this.applicationsEditButton.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Edit_Azure_application;
this.applicationsEditButton.Click += new System.EventHandler(this.ApplicationsEditButton_Click);
@ -854,61 +899,29 @@ namespace RecurringIntegrationsScheduler.Forms
this.tableLayoutPanel1.Controls.Add(this.applicationsGroupBox, 0, 1);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 2;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(1275, 826);
this.tableLayoutPanel1.Size = new System.Drawing.Size(1558, 991);
this.tableLayoutPanel1.TabIndex = 9;
//
// applicationName
//
this.applicationName.DataPropertyName = "Name";
this.applicationName.HeaderText = Resources.NameLabel;
this.applicationName.Name = "applicationName";
this.applicationName.ReadOnly = true;
//
// applicationType
//
this.applicationType.DataPropertyName = "AuthenticationType";
this.applicationType.HeaderText = Resources.Auth_type;
this.applicationType.Name = "applicationType";
this.applicationType.ReadOnly = true;
//
// applicationClientId
//
this.applicationClientId.DataPropertyName = "ClientId";
this.applicationClientId.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Client_Id;
this.applicationClientId.Name = "applicationClientId";
this.applicationClientId.ReadOnly = true;
this.applicationClientId.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Application_client_Id_GUID;
this.applicationClientId.Visible = false;
//
// applicationSecret
//
this.applicationSecret.DataPropertyName = "Secret";
this.applicationSecret.HeaderText = global::RecurringIntegrationsScheduler.Properties.Resources.Secret;
this.applicationSecret.Name = "applicationSecret";
this.applicationSecret.ReadOnly = true;
this.applicationSecret.ToolTipText = global::RecurringIntegrationsScheduler.Properties.Resources.Web_application_client_secret;
this.applicationSecret.Visible = false;
//
// Parameters
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 24F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1275, 826);
this.ClientSize = new System.Drawing.Size(1558, 991);
this.Controls.Add(this.tableLayoutPanel1);
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(1190, 736);
this.MinimumSize = new System.Drawing.Size(1449, 870);
this.Name = "Parameters";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = Resources.Parameters;
this.Text = "Parameters";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Settings_FormClosing);
this.Load += new System.EventHandler(this.Settings_Load);
this.instancesToolStrip.ResumeLayout(false);

Просмотреть файл

@ -117,4 +117,19 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="instancesToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="usersToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>257, 17</value>
</metadata>
<metadata name="dataJobsToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>459, 17</value>
</metadata>
<metadata name="jobGroupsToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>696, 17</value>
</metadata>
<metadata name="applicationsToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>949, 17</value>
</metadata>
</root>

621
Scheduler/Forms/UploadJob.Designer.cs сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -116,6 +116,9 @@ namespace RecurringIntegrationsScheduler.Forms
UploadJobDetail.JobDataMap[SettingsConstants.IsDataPackage].ToString());
statusFileExtensionTextBox.Text =
UploadJobDetail.JobDataMap[SettingsConstants.StatusFileExtension]?.ToString() ?? ".Status";
numericUpDownIntervalUploads.Value = Math.Round(Convert.ToDecimal(UploadJobDetail.JobDataMap[SettingsConstants.Interval]));
serviceAuthRadioButton.Checked =
(UploadJobDetail.JobDataMap[SettingsConstants.UseServiceAuthentication] != null) &&
Convert.ToBoolean(UploadJobDetail.JobDataMap[SettingsConstants.UseServiceAuthentication].ToString());
@ -269,6 +272,7 @@ namespace RecurringIntegrationsScheduler.Forms
ProcessingJobDetail.JobDataMap[SettingsConstants.ProcessingSuccessDir]?.ToString() ?? string.Empty;
processingErrorsFolderTextBox.Text =
ProcessingJobDetail.JobDataMap[SettingsConstants.ProcessingErrorsDir]?.ToString() ?? string.Empty;
numericUpDownStatusCheckInterval.Value = Math.Round(Convert.ToDecimal(ProcessingJobDetail.JobDataMap[SettingsConstants.StatusCheckInterval]));
if (ProcessingTrigger.GetType() == typeof(SimpleTriggerImpl))
{
@ -583,7 +587,8 @@ namespace RecurringIntegrationsScheduler.Forms
{SettingsConstants.RetryCount, retriesCountUpDown.Value.ToString(CultureInfo.InvariantCulture)},
{SettingsConstants.RetryDelay, retriesDelayUpDown.Value.ToString(CultureInfo.InvariantCulture)},
{SettingsConstants.PauseJobOnException, pauseOnExceptionsCheckBox.Checked.ToString()},
{SettingsConstants.IndefinitePause, pauseIndefinitelyCheckBox.Checked.ToString()}
{SettingsConstants.IndefinitePause, pauseIndefinitelyCheckBox.Checked.ToString()},
{SettingsConstants.Interval, numericUpDownIntervalUploads.Value.ToString(CultureInfo.InvariantCulture)}
};
if (serviceAuthRadioButton.Checked)
{
@ -619,7 +624,8 @@ namespace RecurringIntegrationsScheduler.Forms
{SettingsConstants.RetryCount, retriesCountUpDown.Value.ToString(CultureInfo.InvariantCulture)},
{SettingsConstants.RetryDelay, retriesDelayUpDown.Value.ToString(CultureInfo.InvariantCulture)},
{SettingsConstants.PauseJobOnException, pauseOnExceptionsCheckBox.Checked.ToString()},
{SettingsConstants.IndefinitePause, pauseIndefinitelyCheckBox.Checked.ToString()}
{SettingsConstants.IndefinitePause, pauseIndefinitelyCheckBox.Checked.ToString()},
{SettingsConstants.StatusCheckInterval, numericUpDownStatusCheckInterval.Value.ToString(CultureInfo.InvariantCulture)}
};
if (serviceAuthRadioButton.Checked)
{

Просмотреть файл

@ -1,8 +1,6 @@
/* Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. */
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Polly;
using RecurringIntegrationsScheduler.Common.Helpers;
using RecurringIntegrationsScheduler.Properties;
@ -133,49 +131,6 @@ namespace RecurringIntegrationsScheduler.Forms
//TODO: Investigate better approach
messagesTextBox.Text += Resources.Access_to_D365FO_instance_was_successful + Environment.NewLine;
}
var checkPackageApi = Task.Run(async () =>
{
var result = await httpClientHelper.GetAzureWriteUrl();
return result;
});
checkPackageApi.Wait();
if (string.IsNullOrEmpty(checkPackageApi.Result))
{
messagesTextBox.Text += Resources.GetAzureWriteUrl_returned_empty_string_Check_previous_errors;
}
else
{
var blobInfo = (JObject)JsonConvert.DeserializeObject(checkPackageApi.Result);
var blobId = blobInfo["BlobId"].ToString();
if (!string.IsNullOrEmpty(blobId))
{
messagesTextBox.Text += Resources.D365FO_instance_seems_to_support_package_API + Environment.NewLine;
}
else
{
messagesTextBox.Text += Resources.D365FO_instance_seems_to_not_support_package_API + Environment.NewLine;
return; //we should not check further.
}
}
var checkKb4058074 = Task.Run(async () =>
{
var result = await httpClientHelper.GetMessageStatus(new Guid().ToString());
return result;
});
checkKb4058074.Wait();
if (string.IsNullOrEmpty(checkKb4058074.Result))
{
//TODO
messagesTextBox.Text += Resources.Method_GetMessageStatus_returned_empty_string_KB4058074_is_not_installed + Environment.NewLine;
}
else
{
//TODO
messagesTextBox.Text += Resources.Instance_seems_to_support_GetMessageStatus_method + Environment.NewLine;
}
}
catch (Exception ex)
{

2
Scheduler/Properties/Settings.Designer.cs сгенерированный
Просмотреть файл

@ -12,7 +12,7 @@ namespace RecurringIntegrationsScheduler.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

Просмотреть файл

@ -167,7 +167,10 @@ namespace RecurringIntegrationsScheduler
if (previousFireTime.HasValue)
row["PreviousFireTime"] =
TimeZone.CurrentTimeZone.ToLocalTime(previousFireTime.Value.DateTime);
row["JobStatus"] = GetScheduler().GetTriggerState(triggers.First().Key).Result.ToString();
var status = GetScheduler().GetTriggerState(triggers.First().Key).Result.ToString();
if (status == "Blocked")
status = "Executing";
row["JobStatus"] = status;
}
table.Rows.Add(row);
}
@ -247,44 +250,42 @@ namespace RecurringIntegrationsScheduler
/// <param name="triggerDetails">The trigger details.</param>
private static void WriteToFile(FileInfo file, List<IJobDetail> jobDetails, List<ITrigger> triggerDetails)
{
using (var writer = file.CreateText())
{
XNamespace ns = "http://quartznet.sourceforge.net/JobSchedulingData";
var doc = new XDocument(new XDeclaration("1.0", "UTF-8", "yes")
, new XElement(ns + "job-scheduling-data"
, new XAttribute(XNamespace.Xmlns + "xsi", "http://www.w3.org/2001/XMLSchema-instance")
, new XAttribute("version", "2.0")
));
doc.Root?.Add(new XElement(ns + "processing-directives"
, new XElement(ns + "overwrite-existing-data", true))
using var writer = file.CreateText();
XNamespace ns = "http://quartznet.sourceforge.net/JobSchedulingData";
var doc = new XDocument(new XDeclaration("1.0", "UTF-8", "yes")
, new XElement(ns + "job-scheduling-data"
, new XAttribute(XNamespace.Xmlns + "xsi", "http://www.w3.org/2001/XMLSchema-instance")
, new XAttribute("version", "2.0")
));
doc.Root?.Add(new XElement(ns + "processing-directives"
, new XElement(ns + "overwrite-existing-data", true))
);
var schedule = new XElement(ns + "schedule");
foreach (var detail in jobDetails)
schedule.Add(
new XElement(ns + "job"
, new XElement(ns + "name", detail.Key.Name)
, new XElement(ns + "group", detail.Key.Group)
, new XElement(ns + "description", detail.Description)
,
new XElement(ns + "job-type",
detail.JobType.FullName + "," + detail.JobType.Assembly.FullName)
, new XElement(ns + "durable", detail.Durable)
, new XElement(ns + "recover", detail.RequestsRecovery)
, GetJobDataMap(ns, detail.JobDataMap)
)
);
var schedule = new XElement(ns + "schedule");
foreach (var detail in jobDetails)
schedule.Add(
new XElement(ns + "job"
, new XElement(ns + "name", detail.Key.Name)
, new XElement(ns + "group", detail.Key.Group)
, new XElement(ns + "description", detail.Description)
,
new XElement(ns + "job-type",
detail.JobType.FullName + "," + detail.JobType.Assembly.FullName)
, new XElement(ns + "durable", detail.Durable)
, new XElement(ns + "recover", detail.RequestsRecovery)
, GetJobDataMap(ns, detail.JobDataMap)
)
);
foreach (var trigger in triggerDetails)
{
if (trigger is SimpleTriggerImpl simple)
schedule.Add(GetSimpleTrigger(ns, simple));
if (trigger is CronTriggerImpl cron)
schedule.Add(GetCronTrigger(ns, cron));
if (trigger is CalendarIntervalTriggerImpl calendar)
schedule.Add(GetCalendarIntervalTrigger(ns, calendar));
}
doc.Root?.Add(schedule);
doc.Save(writer);
foreach (var trigger in triggerDetails)
{
if (trigger is SimpleTriggerImpl simple)
schedule.Add(GetSimpleTrigger(ns, simple));
if (trigger is CronTriggerImpl cron)
schedule.Add(GetCronTrigger(ns, cron));
if (trigger is CalendarIntervalTriggerImpl calendar)
schedule.Add(GetCalendarIntervalTrigger(ns, calendar));
}
doc.Root?.Add(schedule);
doc.Save(writer);
}
/// <summary>
@ -382,24 +383,16 @@ namespace RecurringIntegrationsScheduler
/// <exception cref="System.ArgumentOutOfRangeException"></exception>
private static string GetSimpleTriggerMisfireInstructionText(int misfireInstruction)
{
switch (misfireInstruction)
return misfireInstruction switch
{
case 0:
return "SmartPolicy";
case 1:
return "FireNow";
case 2:
return "RescheduleNowWithExistingRepeatCount";
case 3:
return "RescheduleNowWithRemainingRepeatCount";
case 4:
return "RescheduleNextWithRemainingCount";
case 5:
return "RescheduleNextWithExistingCount";
default:
throw new ArgumentOutOfRangeException(
$"{misfireInstruction} is not a supported misfire instruction for SimpleTrigger See Quartz.MisfireInstruction for more details.");
}
0 => "SmartPolicy",
1 => "FireNow",
2 => "RescheduleNowWithExistingRepeatCount",
3 => "RescheduleNowWithRemainingRepeatCount",
4 => "RescheduleNextWithRemainingCount",
5 => "RescheduleNextWithExistingCount",
_ => throw new ArgumentOutOfRangeException($"{misfireInstruction} is not a supported misfire instruction for SimpleTrigger See Quartz.MisfireInstruction for more details."),
};
}
/// <summary>
@ -410,18 +403,13 @@ namespace RecurringIntegrationsScheduler
/// <exception cref="System.ArgumentOutOfRangeException"></exception>
private static string GetCronTriggerMisfireInstructionText(int misfireInstruction)
{
switch (misfireInstruction)
return misfireInstruction switch
{
case 0:
return "SmartPolicy";
case 1:
return "FireOnceNow";
case 2:
return "DoNothing";
default:
throw new ArgumentOutOfRangeException(
$"{misfireInstruction} is not a supported misfire instruction for CronTrigger See Quartz.MisfireInstruction for more details.");
}
0 => "SmartPolicy",
1 => "FireOnceNow",
2 => "DoNothing",
_ => throw new ArgumentOutOfRangeException($"{misfireInstruction} is not a supported misfire instruction for CronTrigger See Quartz.MisfireInstruction for more details."),
};
}
/// <summary>

Просмотреть файл

@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RecurringIntegrationsScheduler</RootNamespace>
<AssemblyName>RecurringIntegrationsScheduler</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<TargetFrameworkProfile />
@ -41,6 +41,7 @@
<Prefer32Bit>false</Prefer32Bit>
<RunCodeAnalysis>false</RunCodeAnalysis>
<CodeAnalysisIgnoreGeneratedCode>false</CodeAnalysisIgnoreGeneratedCode>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -51,6 +52,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Assets\Recurring Integrations Scheduler.ico</ApplicationIcon>
@ -63,31 +65,42 @@
<HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Polly, Version=6.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.6.1.0\lib\netstandard2.0\Polly.dll</HintPath>
<Reference Include="Polly, Version=7.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc, processorArchitecture=MSIL">
<HintPath>..\packages\Polly.7.2.0\lib\net472\Polly.dll</HintPath>
</Reference>
<Reference Include="PortableSettingsProvider, Version=0.1.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\PortableSettingsProvider.0.1.1\lib\net45\PortableSettingsProvider.dll</HintPath>
<Reference Include="PortableSettingsProvider, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\PortableSettingsProvider.0.2.3\lib\net45\PortableSettingsProvider.dll</HintPath>
</Reference>
<Reference Include="Quartz, Version=3.0.7.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
<HintPath>..\packages\Quartz.3.0.7\lib\net452\Quartz.dll</HintPath>
</Reference>
<Reference Include="Quartz.Plugins">
<HintPath>..\Setup\Quartz.Plugins.dll</HintPath>
<Reference Include="Quartz.Jobs, Version=3.0.7.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
<HintPath>..\packages\Quartz.Jobs.3.0.7\lib\net452\Quartz.Jobs.dll</HintPath>
</Reference>
<Reference Include="Quartz.Plugins, Version=3.0.7.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
<HintPath>..\packages\Quartz.Plugins.3.0.7\lib\net452\Quartz.Plugins.dll</HintPath>
</Reference>
<Reference Include="Quartz.Serialization.Json, Version=3.0.7.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
<HintPath>..\packages\Quartz.Serialization.Json.3.0.7\lib\net452\Quartz.Serialization.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Core" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Runtime.Remoting" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="Topshelf, Version=4.2.1.215, Culture=neutral, PublicKeyToken=b800c4cfcdeea87b, processorArchitecture=MSIL">
<HintPath>..\packages\Topshelf.4.2.1\lib\net452\Topshelf.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\Version.cs">
@ -182,16 +195,7 @@
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Settings\AadApplication.cs" />
<Compile Include="Settings\AadApplications.cs" />
<Compile Include="Settings\JobGroup.cs" />
<Compile Include="Settings\JobGroups.cs" />
<Compile Include="Settings\User.cs" />
<Compile Include="Settings\Instance.cs" />
<Compile Include="Settings\Users.cs" />
<Compile Include="Settings\DataJob.cs" />
<Compile Include="Settings\Instances.cs" />
<Compile Include="Settings\DataJobs.cs" />
<Compile Include="Settings\Settings.cs" />
<Compile Include="Forms\Parameters.cs">
<SubType>Form</SubType>
</Compile>
@ -303,7 +307,7 @@
<None Include="Assets\Folder open_32xMD_exp.png" />
<None Include="Assets\Add_16xMD.png" />
<None Include="Assets\Edit_16xMD.png" />
<Content Include="Assets\RecurringIntegrationsScheduler.ico" />
<None Include="Assets\RecurringIntegrationsScheduler.ico" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.5">

Просмотреть файл

@ -1,55 +0,0 @@
/* Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. */
using System;
namespace RecurringIntegrationsScheduler.Settings
{
/// <summary>
///
/// </summary>
[Serializable]
public class AadApplication
{
/// <summary>
/// Gets or sets the name.
/// </summary>
/// <value>
/// The name.
/// </value>
public string Name { get; set; }
/// <summary>
/// Gets or sets the client identifier.
/// </summary>
/// <value>
/// The client identifier.
/// </value>
public string ClientId { get; set; }
/// <summary>
/// Gets or sets the secret.
/// </summary>
/// <value>
/// The secret.
/// </value>
public string Secret { get; set; }
/// <summary>
/// Gets or sets the type.
/// </summary>
/// <value>
/// The type.
/// </value>
public AuthenticationType AuthenticationType { get; set; }
}
/// <summary>
///
/// </summary>
public enum AuthenticationType
{
User,
Service
}
}

Просмотреть файл

@ -1,15 +0,0 @@
/* Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. */
using System.ComponentModel;
namespace RecurringIntegrationsScheduler.Settings
{
/// <summary>
///
/// </summary>
/// <seealso cref="System.ComponentModel.BindingList{AadApplication}" />
public class AadApplications : BindingList<AadApplication>
{
}
}

Просмотреть файл

@ -1,55 +0,0 @@
/* Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. */
using System;
namespace RecurringIntegrationsScheduler.Settings
{
/// <summary>
///
/// </summary>
[Serializable]
public class DataJob
{
/// <summary>
/// Gets or sets the name.
/// </summary>
/// <value>
/// The name.
/// </value>
public string Name { get; set; }
/// <summary>
/// Gets or sets the activity identifier.
/// </summary>
/// <value>
/// The activity identifier.
/// </value>
public string ActivityId { get; set; }
/// <summary>
/// Gets or sets the name of the entity.
/// </summary>
/// <value>
/// The name of the entity.
/// </value>
public string EntityName { get; set; }
/// <summary>
/// Gets or sets the type.
/// </summary>
/// <value>
/// The type.
/// </value>
public DataJobType Type { get; set; }
}
/// <summary>
///
/// </summary>
public enum DataJobType
{
Download,
Upload
}
}

Просмотреть файл

@ -1,15 +0,0 @@
/* Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. */
using System.ComponentModel;
namespace RecurringIntegrationsScheduler.Settings
{
/// <summary>
///
/// </summary>
/// <seealso cref="System.ComponentModel.BindingList{DataJob}" />
public class DataJobs : BindingList<DataJob>
{
}
}

Просмотреть файл

@ -1,46 +0,0 @@
/* Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. */
using System;
namespace RecurringIntegrationsScheduler.Settings
{
/// <summary>
///
/// </summary>
[Serializable]
public class Instance
{
/// <summary>
/// Gets or sets the name.
/// </summary>
/// <value>
/// The name.
/// </value>
public string Name { get; set; }
/// <summary>
/// Gets or sets the aos URI.
/// </summary>
/// <value>
/// The aos URI.
/// </value>
public string AosUri { get; set; }
/// <summary>
/// Gets or sets the azure authentication endpoint.
/// </summary>
/// <value>
/// The azure authentication endpoint.
/// </value>
public string AzureAuthEndpoint { get; set; }
/// <summary>
/// Gets or sets the aad tenant.
/// </summary>
/// <value>
/// The aad tenant.
/// </value>
public string AadTenant { get; set; }
}
}

Просмотреть файл

@ -1,15 +0,0 @@
/* Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. */
using System.ComponentModel;
namespace RecurringIntegrationsScheduler.Settings
{
/// <summary>
///
/// </summary>
/// <seealso cref="System.ComponentModel.BindingList{Instance}" />
public class Instances : BindingList<Instance>
{
}
}

Просмотреть файл

@ -1,22 +0,0 @@
/* Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. */
using System;
namespace RecurringIntegrationsScheduler.Settings
{
/// <summary>
///
/// </summary>
[Serializable]
public class JobGroup
{
/// <summary>
/// Gets or sets the name.
/// </summary>
/// <value>
/// The name.
/// </value>
public string Name { get; set; }
}
}

Просмотреть файл

@ -1,15 +0,0 @@
/* Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. */
using System.ComponentModel;
namespace RecurringIntegrationsScheduler.Settings
{
/// <summary>
///
/// </summary>
/// <seealso cref="System.ComponentModel.BindingList{JobGroup}" />
public class JobGroups : BindingList<JobGroup>
{
}
}

Просмотреть файл

@ -0,0 +1,218 @@
/* Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. */
using System;
using System.ComponentModel;
namespace RecurringIntegrationsScheduler.Settings
{
[Serializable]
public class AadApplication
{
/// <summary>
/// Gets or sets the name.
/// </summary>
/// <value>
/// The name.
/// </value>
public string Name { get; set; }
/// <summary>
/// Gets or sets the client identifier.
/// </summary>
/// <value>
/// The client identifier.
/// </value>
public string ClientId { get; set; }
/// <summary>
/// Gets or sets the secret.
/// </summary>
/// <value>
/// The secret.
/// </value>
public string Secret { get; set; }
/// <summary>
/// Gets or sets the type.
/// </summary>
/// <value>
/// The type.
/// </value>
public AuthenticationType AuthenticationType { get; set; }
}
/// <summary>
///
/// </summary>
public enum AuthenticationType
{
User,
Service
}
/// <summary>
///
/// </summary>
/// <seealso cref="System.ComponentModel.BindingList{AadApplication}" />
public class AadApplications : BindingList<AadApplication>
{
}
/// <summary>
///
/// </summary>
[Serializable]
public class DataJob
{
/// <summary>
/// Gets or sets the name.
/// </summary>
/// <value>
/// The name.
/// </value>
public string Name { get; set; }
/// <summary>
/// Gets or sets the activity identifier.
/// </summary>
/// <value>
/// The activity identifier.
/// </value>
public string ActivityId { get; set; }
/// <summary>
/// Gets or sets the name of the entity.
/// </summary>
/// <value>
/// The name of the entity.
/// </value>
public string EntityName { get; set; }
/// <summary>
/// Gets or sets the type.
/// </summary>
/// <value>
/// The type.
/// </value>
public DataJobType Type { get; set; }
}
/// <summary>
///
/// </summary>
public enum DataJobType
{
Download,
Upload
}
/// <summary>
///
/// </summary>
/// <seealso cref="System.ComponentModel.BindingList{DataJob}" />
public class DataJobs : BindingList<DataJob>
{
}
/// <summary>
///
/// </summary>
[Serializable]
public class Instance
{
/// <summary>
/// Gets or sets the name.
/// </summary>
/// <value>
/// The name.
/// </value>
public string Name { get; set; }
/// <summary>
/// Gets or sets the aos URI.
/// </summary>
/// <value>
/// The aos URI.
/// </value>
public string AosUri { get; set; }
/// <summary>
/// Gets or sets the azure authentication endpoint.
/// </summary>
/// <value>
/// The azure authentication endpoint.
/// </value>
public string AzureAuthEndpoint { get; set; }
/// <summary>
/// Gets or sets the aad tenant.
/// </summary>
/// <value>
/// The aad tenant.
/// </value>
public string AadTenant { get; set; }
}
/// <summary>
///
/// </summary>
/// <seealso cref="System.ComponentModel.BindingList{Instance}" />
public class Instances : BindingList<Instance>
{
}
/// <summary>
///
/// </summary>
[Serializable]
public class JobGroup
{
/// <summary>
/// Gets or sets the name.
/// </summary>
/// <value>
/// The name.
/// </value>
public string Name { get; set; }
}
/// <summary>
///
/// </summary>
/// <seealso cref="System.ComponentModel.BindingList{JobGroup}" />
public class JobGroups : BindingList<JobGroup>
{
}
/// <summary>
///
/// </summary>
[Serializable]
public class User
{
/// <summary>
/// Gets or sets the login.
/// </summary>
/// <value>
/// The login.
/// </value>
public string Login { get; set; }
/// <summary>
/// Gets or sets the password.
/// </summary>
/// <value>
/// The password.
/// </value>
public string Password { get; set; }
}
/// <summary>
///
/// </summary>
/// <seealso cref="System.ComponentModel.BindingList{User}" />
public class Users : BindingList<User>
{
}
}

Просмотреть файл

@ -1,30 +0,0 @@
/* Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. */
using System;
namespace RecurringIntegrationsScheduler.Settings
{
/// <summary>
///
/// </summary>
[Serializable]
public class User
{
/// <summary>
/// Gets or sets the login.
/// </summary>
/// <value>
/// The login.
/// </value>
public string Login { get; set; }
/// <summary>
/// Gets or sets the password.
/// </summary>
/// <value>
/// The password.
/// </value>
public string Password { get; set; }
}
}

Просмотреть файл

@ -1,15 +0,0 @@
/* Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. */
using System.ComponentModel;
namespace RecurringIntegrationsScheduler.Settings
{
/// <summary>
///
/// </summary>
/// <seealso cref="System.ComponentModel.BindingList{User}" />
public class Users : BindingList<User>
{
}
}

Просмотреть файл

@ -1,8 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.8" targetFramework="net46" />
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="net46" />
<package id="Polly" version="6.1.0" targetFramework="net461" />
<package id="PortableSettingsProvider" version="0.1.1" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
<package id="Polly" version="7.2.0" targetFramework="net472" />
<package id="PortableSettingsProvider" version="0.2.3" targetFramework="net472" />
<package id="Quartz" version="3.0.7" targetFramework="net461" />
<package id="Quartz.Jobs" version="3.0.7" targetFramework="net472" />
<package id="Quartz.Plugins" version="3.0.7" targetFramework="net472" />
<package id="Quartz.Serialization.Json" version="3.0.7" targetFramework="net472" />
<package id="Topshelf" version="4.2.1" targetFramework="net472" />
</packages>

Просмотреть файл

@ -37,11 +37,11 @@ Name: Scheduler; Description: Recurring Integrations Scheduler Service; Types: f
; Quartz
Source: "..\Output\Release\Quartz.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\log4net.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: ".\Quartz.Plugins.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: ".\Quartz.Jobs.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: ".\Quartz.Serialization.Json.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\Quartz.Plugins.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\Quartz.Jobs.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\Quartz.Serialization.Json.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\Topshelf.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: Scheduler
Source: ".\Quartz.Server.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: Scheduler
Source: ".\Topshelf.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: Scheduler
; Common
Source: "..\Output\Release\RecurringIntegrationsScheduler.Common.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
; Jobs
@ -52,112 +52,14 @@ Source: "..\Output\Release\RecurringIntegrationsScheduler.Job.Import.dll"; DestD
Source: "..\Output\Release\RecurringIntegrationsScheduler.Job.Export.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\RecurringIntegrationsScheduler.Job.ExecutionMonitor.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
; References
Source: "..\Output\Release\Microsoft.IdentityModel.Clients.ActiveDirectory.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\Microsoft.Identity.Clients.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Linq.Dynamic.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\Polly.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\PortableSettingsProvider.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\Microsoft.Win32.Primitives.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\netstandard.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.AppContext.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Collections.Concurrent.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Collections.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Collections.NonGeneric.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Collections.Specialized.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.ComponentModel.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.ComponentModel.EventBasedAsync.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.ComponentModel.Primitives.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.ComponentModel.TypeConverter.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Console.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Data.Common.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Diagnostics.Contracts.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Diagnostics.Debug.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Diagnostics.FileVersionInfo.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Diagnostics.Process.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Diagnostics.StackTrace.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Diagnostics.TextWriterTraceListener.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Diagnostics.Tools.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Diagnostics.TraceSource.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Diagnostics.Tracing.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Drawing.Primitives.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Dynamic.Runtime.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Globalization.Calendars.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Globalization.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Globalization.Extensions.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.IO.Compression.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.IO.Compression.ZipFile.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.IO.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.IO.FileSystem.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.IO.FileSystem.DriveInfo.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.IO.FileSystem.Primitives.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.IO.FileSystem.Watcher.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.IO.IsolatedStorage.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.IO.MemoryMappedFiles.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.IO.Pipes.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.IO.UnmanagedMemoryStream.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Linq.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Linq.Expressions.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Linq.Parallel.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Linq.Queryable.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Net.Http.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Net.NameResolution.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Net.NetworkInformation.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Net.Ping.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Net.Primitives.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Net.Requests.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Net.Security.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Net.Sockets.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Net.WebHeaderCollection.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Net.WebSockets.Client.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Net.WebSockets.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.ObjectModel.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Reflection.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Reflection.Extensions.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Reflection.Primitives.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Resources.Reader.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Resources.ResourceManager.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Resources.Writer.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Runtime.CompilerServices.VisualC.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Runtime.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Runtime.Extensions.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Runtime.Handles.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Runtime.InteropServices.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Runtime.InteropServices.RuntimeInformation.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Runtime.Numerics.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Runtime.Serialization.Formatters.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Runtime.Serialization.Json.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Runtime.Serialization.Primitives.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Runtime.Serialization.Xml.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Security.Claims.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Security.Cryptography.Algorithms.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Security.Cryptography.Csp.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Security.Cryptography.Encoding.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Security.Cryptography.Primitives.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Security.Cryptography.X509Certificates.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Security.Principal.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Security.SecureString.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Text.Encoding.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Text.Encoding.Extensions.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Text.RegularExpressions.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Threading.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Threading.Overlapped.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Threading.Tasks.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Threading.Tasks.Parallel.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Threading.Thread.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Threading.ThreadPool.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Threading.Timer.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.ValueTuple.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Xml.ReaderWriter.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Xml.XDocument.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Xml.XmlDocument.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Xml.XmlSerializer.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Xml.XPath.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\System.Xml.XPath.XDocument.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
; App
Source: "..\Output\Release\RecurringIntegrationsScheduler.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: App
Source: "..\Output\Release\RecurringIntegrationsScheduler.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: App
Source: "..\Output\Release\RecurringIntegrationsScheduler.exe.config"; DestDir: "{app}"; Flags: ignoreversion; Components: App
; Configuration files

Просмотреть файл

@ -2,4 +2,4 @@
Licensed under the MIT License. */
using System.Reflection;
[assembly: AssemblyVersion("2.5.0.0")]
[assembly: AssemblyVersion("2.9.0.0")]