diff --git a/doc/dependency_decisions.yml b/doc/dependency_decisions.yml old mode 100755 new mode 100644 index 3154b00f4..027801285 --- a/doc/dependency_decisions.yml +++ b/doc/dependency_decisions.yml @@ -28,7 +28,7 @@ :versions: - 4.0.1 - 4.1.1 - :when: 2022-10-14 23:36:39.999308652 Z + :when: 2023-08-15 16:36:39.999308652 Z - - :approve - AutoFixture - :who: mocsharp @@ -606,6 +606,7 @@ - 2.0.0 - 6.0.4 - 7.0.0 + - 6.0.4 :when: 2022-10-14 23:37:09.821156462 Z - - :approve - Microsoft.Extensions.Logging.Configuration diff --git a/src/Shared/Configuration/ArgoCallbackConfiguration.cs b/src/Common/Configuration/ArgoCallbackConfiguration.cs similarity index 95% rename from src/Shared/Configuration/ArgoCallbackConfiguration.cs rename to src/Common/Configuration/ArgoCallbackConfiguration.cs index 402e11f62..5ab8e2d81 100644 --- a/src/Shared/Configuration/ArgoCallbackConfiguration.cs +++ b/src/Common/Configuration/ArgoCallbackConfiguration.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Configuration; -namespace Monai.Deploy.WorkflowManager.Configuration +namespace Monai.Deploy.WorkflowManager.Common.Configuration { public class ArgoCallbackConfiguration { diff --git a/src/Shared/Configuration/BackgroundServiceSettings.cs b/src/Common/Configuration/BackgroundServiceSettings.cs similarity index 93% rename from src/Shared/Configuration/BackgroundServiceSettings.cs rename to src/Common/Configuration/BackgroundServiceSettings.cs index d1161ea8b..79d5c9462 100644 --- a/src/Shared/Configuration/BackgroundServiceSettings.cs +++ b/src/Common/Configuration/BackgroundServiceSettings.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Configuration; -namespace Monai.Deploy.WorkflowManager.Configuration +namespace Monai.Deploy.WorkflowManager.Common.Configuration { public class BackgroundServiceSettings { diff --git a/src/Shared/Configuration/ConfigurationValidator.cs b/src/Common/Configuration/ConfigurationValidator.cs similarity index 97% rename from src/Shared/Configuration/ConfigurationValidator.cs rename to src/Common/Configuration/ConfigurationValidator.cs index 71f9c3529..b1ba52a89 100644 --- a/src/Shared/Configuration/ConfigurationValidator.cs +++ b/src/Common/Configuration/ConfigurationValidator.cs @@ -19,7 +19,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -namespace Monai.Deploy.WorkflowManager.Configuration +namespace Monai.Deploy.WorkflowManager.Common.Configuration { /// /// Validates configuration based on application requirements and DICOM VR requirements. diff --git a/src/Shared/Configuration/DicomAgentConfiguration.cs b/src/Common/Configuration/DicomAgentConfiguration.cs similarity index 95% rename from src/Shared/Configuration/DicomAgentConfiguration.cs rename to src/Common/Configuration/DicomAgentConfiguration.cs index a42dedbac..16cbb1c6d 100644 --- a/src/Shared/Configuration/DicomAgentConfiguration.cs +++ b/src/Common/Configuration/DicomAgentConfiguration.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Configuration; -namespace Monai.Deploy.WorkflowManager.Configuration +namespace Monai.Deploy.WorkflowManager.Common.Configuration { public class DicomAgentConfiguration { diff --git a/src/Shared/Configuration/Exceptions/ConfigurationException.cs b/src/Common/Configuration/Exceptions/ConfigurationException.cs similarity index 94% rename from src/Shared/Configuration/Exceptions/ConfigurationException.cs rename to src/Common/Configuration/Exceptions/ConfigurationException.cs index c3f38151f..f5653f2ff 100644 --- a/src/Shared/Configuration/Exceptions/ConfigurationException.cs +++ b/src/Common/Configuration/Exceptions/ConfigurationException.cs @@ -17,7 +17,7 @@ using System; using System.Runtime.Serialization; -namespace Monai.Deploy.WorkflowManager.Configuration.Exceptions +namespace Monai.Deploy.WorkflowManager.Common.Configuration.Exceptions { /// /// Represnets an exception based upon invalid configuration. diff --git a/src/Shared/Configuration/InformaticsGatewayConfiguration.cs b/src/Common/Configuration/InformaticsGatewayConfiguration.cs similarity index 94% rename from src/Shared/Configuration/InformaticsGatewayConfiguration.cs rename to src/Common/Configuration/InformaticsGatewayConfiguration.cs index b2c316846..61bc18e3c 100644 --- a/src/Shared/Configuration/InformaticsGatewayConfiguration.cs +++ b/src/Common/Configuration/InformaticsGatewayConfiguration.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Configuration; -namespace Monai.Deploy.WorkflowManager.Configuration +namespace Monai.Deploy.WorkflowManager.Common.Configuration { public class InformaticsGatewayConfiguration { diff --git a/src/Shared/Configuration/MessageBrokerConfiguration.cs b/src/Common/Configuration/MessageBrokerConfiguration.cs similarity index 96% rename from src/Shared/Configuration/MessageBrokerConfiguration.cs rename to src/Common/Configuration/MessageBrokerConfiguration.cs index ac9b15755..b227190f0 100644 --- a/src/Shared/Configuration/MessageBrokerConfiguration.cs +++ b/src/Common/Configuration/MessageBrokerConfiguration.cs @@ -17,7 +17,7 @@ using Microsoft.Extensions.Configuration; using Monai.Deploy.Messaging.Configuration; -namespace Monai.Deploy.WorkflowManager.Configuration +namespace Monai.Deploy.WorkflowManager.Common.Configuration { public class MessageBrokerConfiguration : MessageBrokerServiceConfiguration { diff --git a/src/Shared/Configuration/MessageBrokerConfigurationKeys.cs b/src/Common/Configuration/MessageBrokerConfigurationKeys.cs similarity index 98% rename from src/Shared/Configuration/MessageBrokerConfigurationKeys.cs rename to src/Common/Configuration/MessageBrokerConfigurationKeys.cs index 116d6c387..96e7e0c2e 100644 --- a/src/Shared/Configuration/MessageBrokerConfigurationKeys.cs +++ b/src/Common/Configuration/MessageBrokerConfigurationKeys.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Configuration; -namespace Monai.Deploy.WorkflowManager.Configuration +namespace Monai.Deploy.WorkflowManager.Common.Configuration { public class MessageBrokerConfigurationKeys { diff --git a/src/Shared/Configuration/Monai.Deploy.WorkflowManager.Configuration.csproj b/src/Common/Configuration/Monai.Deploy.WorkflowManager.Common.Configuration.csproj old mode 100755 new mode 100644 similarity index 100% rename from src/Shared/Configuration/Monai.Deploy.WorkflowManager.Configuration.csproj rename to src/Common/Configuration/Monai.Deploy.WorkflowManager.Common.Configuration.csproj diff --git a/src/Shared/Configuration/PagedOptions.cs b/src/Common/Configuration/PagedOptions.cs similarity index 93% rename from src/Shared/Configuration/PagedOptions.cs rename to src/Common/Configuration/PagedOptions.cs index 56796bc7d..00b5aab53 100644 --- a/src/Shared/Configuration/PagedOptions.cs +++ b/src/Common/Configuration/PagedOptions.cs @@ -15,7 +15,7 @@ */ using Microsoft.Extensions.Configuration; -namespace Monai.Deploy.WorkflowManager.Configuration +namespace Monai.Deploy.WorkflowManager.Common.Configuration { public class PagedOptions { diff --git a/src/Shared/Configuration/PaginationSettings.cs b/src/Common/Configuration/PaginationSettings.cs similarity index 93% rename from src/Shared/Configuration/PaginationSettings.cs rename to src/Common/Configuration/PaginationSettings.cs index ce898c4fb..41cb7fce1 100644 --- a/src/Shared/Configuration/PaginationSettings.cs +++ b/src/Common/Configuration/PaginationSettings.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Configuration; -namespace Monai.Deploy.WorkflowManager.Configuration +namespace Monai.Deploy.WorkflowManager.Common.Configuration { public class EndpointSettings { diff --git a/src/Shared/Configuration/RetryConfiguration.cs b/src/Common/Configuration/RetryConfiguration.cs similarity index 96% rename from src/Shared/Configuration/RetryConfiguration.cs rename to src/Common/Configuration/RetryConfiguration.cs index ad33af275..45dad8969 100644 --- a/src/Shared/Configuration/RetryConfiguration.cs +++ b/src/Common/Configuration/RetryConfiguration.cs @@ -18,7 +18,7 @@ using System.Collections.Generic; using Microsoft.Extensions.Configuration; -namespace Monai.Deploy.WorkflowManager.Configuration +namespace Monai.Deploy.WorkflowManager.Common.Configuration { public class RetryConfiguration { diff --git a/src/Shared/Configuration/StorageConfiguration.cs b/src/Common/Configuration/StorageConfiguration.cs similarity index 97% rename from src/Shared/Configuration/StorageConfiguration.cs rename to src/Common/Configuration/StorageConfiguration.cs index 440e83cce..13445b5da 100644 --- a/src/Shared/Configuration/StorageConfiguration.cs +++ b/src/Common/Configuration/StorageConfiguration.cs @@ -18,7 +18,7 @@ using Microsoft.Extensions.Configuration; using Monai.Deploy.Storage.Configuration; -namespace Monai.Deploy.WorkflowManager.Configuration +namespace Monai.Deploy.WorkflowManager.Common.Configuration { public class StorageConfiguration : StorageServiceConfiguration { diff --git a/src/Shared/Configuration/TaskManagerConfiguration.cs b/src/Common/Configuration/TaskManagerConfiguration.cs similarity index 98% rename from src/Shared/Configuration/TaskManagerConfiguration.cs rename to src/Common/Configuration/TaskManagerConfiguration.cs index b7eca5642..352dee455 100644 --- a/src/Shared/Configuration/TaskManagerConfiguration.cs +++ b/src/Common/Configuration/TaskManagerConfiguration.cs @@ -17,7 +17,7 @@ using System.Collections.Generic; using Microsoft.Extensions.Configuration; -namespace Monai.Deploy.WorkflowManager.Configuration +namespace Monai.Deploy.WorkflowManager.Common.Configuration { public class TaskManagerConfiguration { diff --git a/src/Shared/Configuration/WorkflowManagerOptions.cs b/src/Common/Configuration/WorkflowManagerOptions.cs old mode 100755 new mode 100644 similarity index 98% rename from src/Shared/Configuration/WorkflowManagerOptions.cs rename to src/Common/Configuration/WorkflowManagerOptions.cs index 9207f09c3..b3f375a83 --- a/src/Shared/Configuration/WorkflowManagerOptions.cs +++ b/src/Common/Configuration/WorkflowManagerOptions.cs @@ -18,7 +18,7 @@ using System.Collections.Generic; using Microsoft.Extensions.Configuration; -namespace Monai.Deploy.WorkflowManager.Configuration +namespace Monai.Deploy.WorkflowManager.Common.Configuration { public class WorkflowManagerOptions : PagedOptions { diff --git a/src/Shared/Configuration/packages.lock.json b/src/Common/Configuration/packages.lock.json old mode 100755 new mode 100644 similarity index 100% rename from src/Shared/Configuration/packages.lock.json rename to src/Common/Configuration/packages.lock.json diff --git a/src/Shared/Shared/ApiControllerBase.cs b/src/Common/Miscellaneous/ApiControllerBase.cs similarity index 91% rename from src/Shared/Shared/ApiControllerBase.cs rename to src/Common/Miscellaneous/ApiControllerBase.cs index e85fe25c0..86b3efdc4 100644 --- a/src/Shared/Shared/ApiControllerBase.cs +++ b/src/Common/Miscellaneous/ApiControllerBase.cs @@ -18,12 +18,12 @@ using Ardalis.GuardClauses; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Shared.Filter; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; -using Monai.Deploy.WorkflowManager.Shared.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; -namespace Monai.Deploy.WorkflowManager.ControllersShared +namespace Monai.Deploy.WorkflowManager.Common.ControllersShared { /// /// Base Api Controller. diff --git a/src/Shared/Shared/Filter/PaginationFilter.cs b/src/Common/Miscellaneous/Filter/PaginationFilter.cs similarity index 96% rename from src/Shared/Shared/Filter/PaginationFilter.cs rename to src/Common/Miscellaneous/Filter/PaginationFilter.cs index 921ffd36e..9b53ad8ec 100644 --- a/src/Shared/Shared/Filter/PaginationFilter.cs +++ b/src/Common/Miscellaneous/Filter/PaginationFilter.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Shared.Filter +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter { /// /// Pagination Filter class. diff --git a/src/Shared/Shared/Filter/TimeFilter.cs b/src/Common/Miscellaneous/Filter/TimeFilter.cs similarity index 91% rename from src/Shared/Shared/Filter/TimeFilter.cs rename to src/Common/Miscellaneous/Filter/TimeFilter.cs index a5723f8fd..62cc60b7b 100644 --- a/src/Shared/Shared/Filter/TimeFilter.cs +++ b/src/Common/Miscellaneous/Filter/TimeFilter.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Shared.Filter +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter { public class TimeFilter : PaginationFilter { diff --git a/src/Shared/Shared/HttpLoggingExtensions.cs b/src/Common/Miscellaneous/HttpLoggingExtensions.cs similarity index 97% rename from src/Shared/Shared/HttpLoggingExtensions.cs rename to src/Common/Miscellaneous/HttpLoggingExtensions.cs index f67443b6c..fb2f409c6 100644 --- a/src/Shared/Shared/HttpLoggingExtensions.cs +++ b/src/Common/Miscellaneous/HttpLoggingExtensions.cs @@ -18,7 +18,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -namespace Monai.Deploy.WorkflowManager.Shared +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous { public static class HttpLoggingExtensions { diff --git a/src/Shared/Shared/IMonaiService.cs b/src/Common/Miscellaneous/IMonaiService.cs similarity index 92% rename from src/Shared/Shared/IMonaiService.cs rename to src/Common/Miscellaneous/IMonaiService.cs index 1e36cb5bc..2e85f3290 100644 --- a/src/Shared/Shared/IMonaiService.cs +++ b/src/Common/Miscellaneous/IMonaiService.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Shared +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous { public interface IMonaiService { diff --git a/src/Shared/Shared/IMonaiServiceLocator.cs b/src/Common/Miscellaneous/IMonaiServiceLocator.cs similarity index 92% rename from src/Shared/Shared/IMonaiServiceLocator.cs rename to src/Common/Miscellaneous/IMonaiServiceLocator.cs index 248e90cdd..43add2599 100644 --- a/src/Shared/Shared/IMonaiServiceLocator.cs +++ b/src/Common/Miscellaneous/IMonaiServiceLocator.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Shared +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous { public interface IMonaiServiceLocator { diff --git a/src/Shared/Shared/Monai.Deploy.WorkflowManager.Shared.csproj b/src/Common/Miscellaneous/Monai.Deploy.WorkflowManager.Common.Miscellaneous.csproj old mode 100755 new mode 100644 similarity index 95% rename from src/Shared/Shared/Monai.Deploy.WorkflowManager.Shared.csproj rename to src/Common/Miscellaneous/Monai.Deploy.WorkflowManager.Common.Miscellaneous.csproj index 6d9962dbc..9b6a642b8 --- a/src/Shared/Shared/Monai.Deploy.WorkflowManager.Shared.csproj +++ b/src/Common/Miscellaneous/Monai.Deploy.WorkflowManager.Common.Miscellaneous.csproj @@ -18,7 +18,7 @@ net6.0 - Monai.Deploy.WorkflowManager.Shared + Monai.Deploy.WorkflowManager.Common enable enable false @@ -53,7 +53,7 @@ - + diff --git a/src/Shared/Shared/MonaiHealthCheck.cs b/src/Common/Miscellaneous/MonaiHealthCheck.cs similarity index 96% rename from src/Shared/Shared/MonaiHealthCheck.cs rename to src/Common/Miscellaneous/MonaiHealthCheck.cs index bd6ef5f79..5ef29b381 100644 --- a/src/Shared/Shared/MonaiHealthCheck.cs +++ b/src/Common/Miscellaneous/MonaiHealthCheck.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Diagnostics.HealthChecks; -namespace Monai.Deploy.WorkflowManager.Shared +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous { public class MonaiHealthCheck : IHealthCheck { diff --git a/src/Shared/Shared/MonaiServiceLocator.cs b/src/Common/Miscellaneous/MonaiServiceLocator.cs similarity index 97% rename from src/Shared/Shared/MonaiServiceLocator.cs rename to src/Common/Miscellaneous/MonaiServiceLocator.cs index 621953fb4..d8ef88144 100644 --- a/src/Shared/Shared/MonaiServiceLocator.cs +++ b/src/Common/Miscellaneous/MonaiServiceLocator.cs @@ -16,7 +16,7 @@ using Ardalis.GuardClauses; -namespace Monai.Deploy.WorkflowManager.Shared +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous { public class MonaiServiceLocator : IMonaiServiceLocator { diff --git a/src/Shared/Shared/PatientKeys.cs b/src/Common/Miscellaneous/PatientKeys.cs similarity index 96% rename from src/Shared/Shared/PatientKeys.cs rename to src/Common/Miscellaneous/PatientKeys.cs index 78465c3b1..0ab8fd969 100644 --- a/src/Shared/Shared/PatientKeys.cs +++ b/src/Common/Miscellaneous/PatientKeys.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Shared +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous { public static class PatientKeys { diff --git a/src/Shared/Shared/PlugInAttribute.cs b/src/Common/Miscellaneous/PlugInAttribute.cs similarity index 92% rename from src/Shared/Shared/PlugInAttribute.cs rename to src/Common/Miscellaneous/PlugInAttribute.cs index 1e6366186..181b82e52 100644 --- a/src/Shared/Shared/PlugInAttribute.cs +++ b/src/Common/Miscellaneous/PlugInAttribute.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Shared +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous { [AttributeUsage(AttributeTargets.Assembly)] public class PlugInAttribute : Attribute diff --git a/src/Shared/Shared/ServiceStatus.cs b/src/Common/Miscellaneous/ServiceStatus.cs similarity index 95% rename from src/Shared/Shared/ServiceStatus.cs rename to src/Common/Miscellaneous/ServiceStatus.cs index c4b4d72d1..b7bbad2b1 100644 --- a/src/Shared/Shared/ServiceStatus.cs +++ b/src/Common/Miscellaneous/ServiceStatus.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Shared +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous { /// /// Defines the state of a running service. diff --git a/src/Shared/Shared/Services/IUriService.cs b/src/Common/Miscellaneous/Services/IUriService.cs similarity index 88% rename from src/Shared/Shared/Services/IUriService.cs rename to src/Common/Miscellaneous/Services/IUriService.cs index 1a4311d7f..ac79d9fa5 100644 --- a/src/Shared/Shared/Services/IUriService.cs +++ b/src/Common/Miscellaneous/Services/IUriService.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Shared.Filter; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; -namespace Monai.Deploy.WorkflowManager.Shared.Services +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services { /// /// Uri Serivce. diff --git a/src/Shared/Shared/Services/UriService.cs b/src/Common/Miscellaneous/Services/UriService.cs similarity index 93% rename from src/Shared/Shared/Services/UriService.cs rename to src/Common/Miscellaneous/Services/UriService.cs index 3f1131d5f..04247b504 100644 --- a/src/Shared/Shared/Services/UriService.cs +++ b/src/Common/Miscellaneous/Services/UriService.cs @@ -15,9 +15,9 @@ */ using Microsoft.AspNetCore.WebUtilities; -using Monai.Deploy.WorkflowManager.Shared.Filter; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; -namespace Monai.Deploy.WorkflowManager.Shared.Services +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services { /// /// Uri Service. diff --git a/src/Shared/Shared/Utilities/DicomTagUtilities.cs b/src/Common/Miscellaneous/Utilities/DicomTagUtilities.cs similarity index 95% rename from src/Shared/Shared/Utilities/DicomTagUtilities.cs rename to src/Common/Miscellaneous/Utilities/DicomTagUtilities.cs index 8a2efce5e..d37d6c8d5 100644 --- a/src/Shared/Shared/Utilities/DicomTagUtilities.cs +++ b/src/Common/Miscellaneous/Utilities/DicomTagUtilities.cs @@ -17,7 +17,7 @@ using System.Text.RegularExpressions; using FellowOakDicom; -namespace Monai.Deploy.WorkflowManager.Shared.Utilities +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Utilities { public static class DicomTagUtilities { diff --git a/src/Shared/Shared/ValidationConstants.cs b/src/Common/Miscellaneous/ValidationConstants.cs similarity index 97% rename from src/Shared/Shared/ValidationConstants.cs rename to src/Common/Miscellaneous/ValidationConstants.cs index 234412e18..1429ac56e 100644 --- a/src/Shared/Shared/ValidationConstants.cs +++ b/src/Common/Miscellaneous/ValidationConstants.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Shared +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous { public static class ValidationConstants { @@ -172,7 +172,8 @@ public enum NotificationValues RouterTaskType, ExportTaskType, DockerTaskType, - Email + Email, + ExternalAppTaskType }; } } diff --git a/src/Shared/Shared/Wrappers/PagedResponse.cs b/src/Common/Miscellaneous/Wrappers/PagedResponse.cs similarity index 94% rename from src/Shared/Shared/Wrappers/PagedResponse.cs rename to src/Common/Miscellaneous/Wrappers/PagedResponse.cs index 0ed5690b7..c18681c14 100644 --- a/src/Shared/Shared/Wrappers/PagedResponse.cs +++ b/src/Common/Miscellaneous/Wrappers/PagedResponse.cs @@ -14,10 +14,10 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Shared.Filter; -using Monai.Deploy.WorkflowManager.Shared.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; -namespace Monai.Deploy.WorkflowManager.Shared.Wrappers +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers { /// /// Paged Response for use with paginations. diff --git a/src/Shared/Shared/Wrappers/Response.cs b/src/Common/Miscellaneous/Wrappers/Response.cs similarity index 90% rename from src/Shared/Shared/Wrappers/Response.cs rename to src/Common/Miscellaneous/Wrappers/Response.cs index 53052dea7..73ba0c35b 100644 --- a/src/Shared/Shared/Wrappers/Response.cs +++ b/src/Common/Miscellaneous/Wrappers/Response.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Shared.Wrappers +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers { /// /// Response object. @@ -44,7 +44,7 @@ public Response(T data) /// /// Gets or sets Data. /// - public T Data { get; set; } + public T? Data { get; set; } /// /// Gets or sets a value indicating whether response has succeeded. @@ -54,7 +54,7 @@ public Response(T data) /// /// Gets or sets errors. /// - public string?[] Errors { get; set; } + public string[]? Errors { get; set; } = Array.Empty(); /// /// Gets or sets message. diff --git a/src/Shared/Shared/Wrappers/StatsPagedResponse.cs b/src/Common/Miscellaneous/Wrappers/StatsPagedResponse.cs similarity index 84% rename from src/Shared/Shared/Wrappers/StatsPagedResponse.cs rename to src/Common/Miscellaneous/Wrappers/StatsPagedResponse.cs index 222ee5fda..1be58c374 100644 --- a/src/Shared/Shared/Wrappers/StatsPagedResponse.cs +++ b/src/Common/Miscellaneous/Wrappers/StatsPagedResponse.cs @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Shared.Wrappers +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers { public class StatsPagedResponse : PagedResponse { @@ -30,9 +30,5 @@ public StatsPagedResponse(T data, int pageNumber, int pageSize) : base(data, pag { } - //public StatsPagedResponse(PagedResponse paged) : base(paged.Data, paged.PageNumber, paged.PageSize) - //{ - // int re = 0; - //} } } diff --git a/src/Shared/Shared/packages.lock.json b/src/Common/Miscellaneous/packages.lock.json similarity index 99% rename from src/Shared/Shared/packages.lock.json rename to src/Common/Miscellaneous/packages.lock.json index 3226da97e..02fb527c5 100644 --- a/src/Shared/Shared/packages.lock.json +++ b/src/Common/Miscellaneous/packages.lock.json @@ -205,7 +205,7 @@ "resolved": "6.0.0", "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==" }, - "monai.deploy.workflowmanager.configuration": { + "Monai.Deploy.WorkflowManager.Common.configuration": { "type": "Project", "dependencies": { "Monai.Deploy.Messaging": "[0.1.25, )", diff --git a/src/Monai.Deploy.WorkflowManager.sln b/src/Monai.Deploy.WorkflowManager.sln index 79a08c4a1..02c60ae9c 100644 --- a/src/Monai.Deploy.WorkflowManager.sln +++ b/src/Monai.Deploy.WorkflowManager.sln @@ -64,9 +64,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManage EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Storage", "WorkflowManager\Storage\Monai.Deploy.WorkflowManager.Storage.csproj", "{ED1808DD-C873-44DE-8D7F-399104D1FF8E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{37A19144-CEA5-47A2-9FFD-22C522E8B895}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{37A19144-CEA5-47A2-9FFD-22C522E8B895}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Configuration", "Shared\Configuration\Monai.Deploy.WorkflowManager.Configuration.csproj", "{DD11E3E8-1D6F-47F9-98A7-5D2CC7A53C43}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Common.Configuration", "Common\Configuration\Monai.Deploy.WorkflowManager.Common.Configuration.csproj", "{DD11E3E8-1D6F-47F9-98A7-5D2CC7A53C43}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.MonaiBackgroundService", "WorkflowManager\MonaiBackgroundService\Monai.Deploy.WorkflowManager.MonaiBackgroundService.csproj", "{93F4FE97-120C-44DC-9B21-69FB7EAB5846}" EndProject @@ -76,20 +76,20 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManage EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.TaskManager.Docker.Tests", "..\tests\UnitTests\TaskManager.Docker.Tests\Monai.Deploy.WorkflowManager.TaskManager.Docker.Tests.csproj", "{BF6569A1-1A5A-4358-9C02-1A6A5F0FBFD9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Shared", "Shared\Shared\Monai.Deploy.WorkflowManager.Shared.csproj", "{81E3F943-B992-4C81-AA09-A17C05081236}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Shared.Tests", "..\tests\UnitTests\Monai.Deploy.WorkflowManager.Shared.Tests\Monai.Deploy.WorkflowManager.Shared.Tests.csproj", "{C853A9E3-C53D-4B1A-BFDA-228689A8C94C}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Common.Tests", "..\tests\UnitTests\Common.Tests\Monai.Deploy.WorkflowManager.Common.Tests.csproj", "{75A4AEDA-0386-4B2D-9DBA-BC9AE733660E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Services", "WorkflowManager\Monai.Deploy.WorkflowManager.Services\Monai.Deploy.WorkflowManager.Services.csproj", "{526FF10C-1C7F-4C26-8E8A-D7ACD65F5467}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Services.Tests", "..\tests\UnitTests\WorkflowManager.Services.Tests\Monai.Deploy.WorkflowManager.Services.Tests.csproj", "{0D40F7D6-3747-4280-8EB3-9F3A18AC1125}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.TaskManager.Email", "TaskManager\Plug-ins\Email\Monai.Deploy.WorkflowManager.TaskManager.Email.csproj", "{72DFDA92-0689-41D7-B3F1-9D41D5AA276E}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.TaskManager.Email.Tests", "..\tests\UnitTests\TaskManager.Email.Tests\Monai.Deploy.WorkflowManager.TaskManager.Email.Tests.csproj", "{0F0D6868-366E-47FB-B059-F1176562CC15}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Common.Miscellaneous", "Common\Miscellaneous\Monai.Deploy.WorkflowManager.Common.Miscellaneous.csproj", "{8BB67FED-E81A-4EC9-9167-C9F313D96C12}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Monai.Deploy.WorkflowManager.Services", "WorkflowManager\Services\Monai.Deploy.WorkflowManager.Services.csproj", "{76A9FF94-862D-43E8-A0A7-562DD1DDDB3B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -224,10 +224,6 @@ Global {BF6569A1-1A5A-4358-9C02-1A6A5F0FBFD9}.Debug|Any CPU.Build.0 = Debug|Any CPU {BF6569A1-1A5A-4358-9C02-1A6A5F0FBFD9}.Release|Any CPU.ActiveCfg = Release|Any CPU {BF6569A1-1A5A-4358-9C02-1A6A5F0FBFD9}.Release|Any CPU.Build.0 = Release|Any CPU - {81E3F943-B992-4C81-AA09-A17C05081236}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {81E3F943-B992-4C81-AA09-A17C05081236}.Debug|Any CPU.Build.0 = Debug|Any CPU - {81E3F943-B992-4C81-AA09-A17C05081236}.Release|Any CPU.ActiveCfg = Release|Any CPU - {81E3F943-B992-4C81-AA09-A17C05081236}.Release|Any CPU.Build.0 = Release|Any CPU {C853A9E3-C53D-4B1A-BFDA-228689A8C94C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C853A9E3-C53D-4B1A-BFDA-228689A8C94C}.Debug|Any CPU.Build.0 = Debug|Any CPU {C853A9E3-C53D-4B1A-BFDA-228689A8C94C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -236,10 +232,6 @@ Global {75A4AEDA-0386-4B2D-9DBA-BC9AE733660E}.Debug|Any CPU.Build.0 = Debug|Any CPU {75A4AEDA-0386-4B2D-9DBA-BC9AE733660E}.Release|Any CPU.ActiveCfg = Release|Any CPU {75A4AEDA-0386-4B2D-9DBA-BC9AE733660E}.Release|Any CPU.Build.0 = Release|Any CPU - {526FF10C-1C7F-4C26-8E8A-D7ACD65F5467}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {526FF10C-1C7F-4C26-8E8A-D7ACD65F5467}.Debug|Any CPU.Build.0 = Debug|Any CPU - {526FF10C-1C7F-4C26-8E8A-D7ACD65F5467}.Release|Any CPU.ActiveCfg = Release|Any CPU - {526FF10C-1C7F-4C26-8E8A-D7ACD65F5467}.Release|Any CPU.Build.0 = Release|Any CPU {0D40F7D6-3747-4280-8EB3-9F3A18AC1125}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0D40F7D6-3747-4280-8EB3-9F3A18AC1125}.Debug|Any CPU.Build.0 = Debug|Any CPU {0D40F7D6-3747-4280-8EB3-9F3A18AC1125}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -252,6 +244,14 @@ Global {0F0D6868-366E-47FB-B059-F1176562CC15}.Debug|Any CPU.Build.0 = Debug|Any CPU {0F0D6868-366E-47FB-B059-F1176562CC15}.Release|Any CPU.ActiveCfg = Release|Any CPU {0F0D6868-366E-47FB-B059-F1176562CC15}.Release|Any CPU.Build.0 = Release|Any CPU + {8BB67FED-E81A-4EC9-9167-C9F313D96C12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BB67FED-E81A-4EC9-9167-C9F313D96C12}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BB67FED-E81A-4EC9-9167-C9F313D96C12}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BB67FED-E81A-4EC9-9167-C9F313D96C12}.Release|Any CPU.Build.0 = Release|Any CPU + {76A9FF94-862D-43E8-A0A7-562DD1DDDB3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76A9FF94-862D-43E8-A0A7-562DD1DDDB3B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76A9FF94-862D-43E8-A0A7-562DD1DDDB3B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76A9FF94-862D-43E8-A0A7-562DD1DDDB3B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -290,13 +290,13 @@ Global {EFECF826-B036-4689-B223-D791CD2C0F10} = {71DDEE7B-E213-4E39-A7F4-4646783A27F7} {47C31FB9-C862-4770-83B6-E2DDF260CC67} = {541C5347-5D7D-44B7-95D3-B6FB3D9EB955} {BF6569A1-1A5A-4358-9C02-1A6A5F0FBFD9} = {71DDEE7B-E213-4E39-A7F4-4646783A27F7} - {81E3F943-B992-4C81-AA09-A17C05081236} = {37A19144-CEA5-47A2-9FFD-22C522E8B895} {C853A9E3-C53D-4B1A-BFDA-228689A8C94C} = {71DDEE7B-E213-4E39-A7F4-4646783A27F7} {75A4AEDA-0386-4B2D-9DBA-BC9AE733660E} = {71DDEE7B-E213-4E39-A7F4-4646783A27F7} - {526FF10C-1C7F-4C26-8E8A-D7ACD65F5467} = {AC5B198A-C3F2-4AD2-B532-E71B4630BDD5} {0D40F7D6-3747-4280-8EB3-9F3A18AC1125} = {71DDEE7B-E213-4E39-A7F4-4646783A27F7} {72DFDA92-0689-41D7-B3F1-9D41D5AA276E} = {541C5347-5D7D-44B7-95D3-B6FB3D9EB955} {0F0D6868-366E-47FB-B059-F1176562CC15} = {71DDEE7B-E213-4E39-A7F4-4646783A27F7} + {8BB67FED-E81A-4EC9-9167-C9F313D96C12} = {37A19144-CEA5-47A2-9FFD-22C522E8B895} + {76A9FF94-862D-43E8-A0A7-562DD1DDDB3B} = {AC5B198A-C3F2-4AD2-B532-E71B4630BDD5} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {DC0D56C8-D8CB-45CE-B528-F3DCF86D63ED} diff --git a/src/Shared/Shared/TimeFilter.cs b/src/Shared/Shared/TimeFilter.cs deleted file mode 100644 index 0ef3a6642..000000000 --- a/src/Shared/Shared/TimeFilter.cs +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2023 MONAI Consortium - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -using Monai.Deploy.WorkflowManager.Shared.Filter; - -namespace Monai.Deploy.WorkflowManager.TaskManager.Filter -{ - public class TimeFilter : PaginationFilter - { - public DateTime StartTime { get; set; } - - public DateTime EndTime { get; set; } - } -} diff --git a/src/TaskManager/API/ExecutionStatus.cs b/src/TaskManager/API/ExecutionStatus.cs index 09c30900a..f79606cc9 100644 --- a/src/TaskManager/API/ExecutionStatus.cs +++ b/src/TaskManager/API/ExecutionStatus.cs @@ -38,6 +38,6 @@ public class ExecutionStatus /// /// Contains various stats /// - public Dictionary Stats { get; set; } + public Dictionary Stats { get; set; } = new(); } } diff --git a/src/TaskManager/API/ITaskDispatchEventService.cs b/src/TaskManager/API/ITaskDispatchEventService.cs index 886b4455d..db4ce1c10 100644 --- a/src/TaskManager/API/ITaskDispatchEventService.cs +++ b/src/TaskManager/API/ITaskDispatchEventService.cs @@ -16,7 +16,7 @@ using Monai.Deploy.WorkflowManager.TaskManager.API.Models; -namespace Monai.Deploy.TaskManager.API +namespace Monai.Deploy.WorkflowManager.TaskManager.API { public interface ITaskDispatchEventService { @@ -46,6 +46,6 @@ public interface ITaskDispatchEventService /// A TaskDispatchEvent to update. /// The plugin arguments to update. /// Returns the updated TaskDispatchEventInfo. - Task UpdateTaskPluginArgsAsync(TaskDispatchEventInfo taskDispatchEvent, Dictionary pluginArgs); + Task UpdateTaskPluginArgsAsync(TaskDispatchEventInfo taskDispatchEvent, Dictionary pluginArgs); } } diff --git a/src/TaskManager/API/Monai.Deploy.WorkflowManager.TaskManager.API.csproj b/src/TaskManager/API/Monai.Deploy.WorkflowManager.TaskManager.API.csproj old mode 100755 new mode 100644 diff --git a/src/TaskManager/Database/ITaskDispatchEventRepository.cs b/src/TaskManager/Database/ITaskDispatchEventRepository.cs index 2f7a7de5e..2a7a8de47 100644 --- a/src/TaskManager/Database/ITaskDispatchEventRepository.cs +++ b/src/TaskManager/Database/ITaskDispatchEventRepository.cs @@ -53,6 +53,6 @@ public interface ITaskDispatchEventRepository /// A TaskDispatchEvent to update. /// The plugin arguments to update. /// The updated TaskDispatchEventInfo. - Task UpdateTaskPluginArgsAsync(TaskDispatchEventInfo taskDispatchEventInfo, Dictionary pluginArgs); + Task UpdateTaskPluginArgsAsync(TaskDispatchEventInfo taskDispatchEventInfo, Dictionary pluginArgs); } } diff --git a/src/TaskManager/Database/TaskDispatchEventRepository.cs b/src/TaskManager/Database/TaskDispatchEventRepository.cs index 277c17634..d6ec5cc2f 100755 --- a/src/TaskManager/Database/TaskDispatchEventRepository.cs +++ b/src/TaskManager/Database/TaskDispatchEventRepository.cs @@ -110,7 +110,7 @@ await _taskDispatchEventCollection.DeleteOneAsync( } } - public async Task UpdateTaskPluginArgsAsync(TaskDispatchEventInfo taskDispatchEventInfo, Dictionary pluginArgs) + public async Task UpdateTaskPluginArgsAsync(TaskDispatchEventInfo taskDispatchEventInfo, Dictionary pluginArgs) { Guard.Against.Null(taskDispatchEventInfo, nameof(taskDispatchEventInfo)); Guard.Against.Null(pluginArgs, nameof(pluginArgs)); diff --git a/src/TaskManager/Plug-ins/AideClinicalReview/AideClinicalReviewPlugin.cs b/src/TaskManager/Plug-ins/AideClinicalReview/AideClinicalReviewPlugin.cs index 838ec0c20..0af719ecd 100644 --- a/src/TaskManager/Plug-ins/AideClinicalReview/AideClinicalReviewPlugin.cs +++ b/src/TaskManager/Plug-ins/AideClinicalReview/AideClinicalReviewPlugin.cs @@ -21,8 +21,8 @@ using Monai.Deploy.Messaging.API; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Messaging.Messages; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Shared; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Monai.Deploy.WorkflowManager.TaskManager.AideClinicalReview.Events; using Monai.Deploy.WorkflowManager.TaskManager.AideClinicalReview.Logging; using Monai.Deploy.WorkflowManager.TaskManager.AideClinicalReview.Models; @@ -38,21 +38,21 @@ public class AideClinicalReviewPlugin : TaskPluginBase private readonly IOptions _options; private readonly IMessageBrokerPublisherService _messageBrokerPublisherService; - private string _patientId; - private string _patientName; - private string _patientSex; - private string _patientDob; - private string _patientAge; - private string _patientHospitalId; - private string _queueName; - private string _workflowName; + private string? _patientId; + private string? _patientName; + private string? _patientSex; + private string? _patientDob; + private string? _patientAge; + private string? _patientHospitalId; + private string? _queueName = null; + private string? _workflowName; private bool _notifications; - private string _reviewedTaskId; - private string _applicationName; - private string _mode; - private string _applicationVersion; - private string _reviewedExecutionId; - private string[] _reviewerRoles; + private string? _reviewedTaskId; + private string? _applicationName; + private string? _mode; + private string? _applicationVersion; + private string? _reviewedExecutionId; + private string[] _reviewerRoles = Array.Empty(); public AideClinicalReviewPlugin( IServiceScopeFactory serviceScopeFactory, @@ -206,7 +206,7 @@ public override async Task ExecuteTask(CancellationToken cancel } catch (Exception ex) { - _logger.ErrorSendingMessage(_queueName, ex); + _logger.ErrorSendingMessage(_queueName ?? "no queue name", ex); return new ExecutionStatus { Status = TaskExecutionStatus.Failed, FailureReason = FailureReason.PluginError, Errors = ex.Message }; } @@ -220,9 +220,9 @@ private JsonMessage GenerateClinicalReviewRequestEve ExecutionId = Event.ExecutionId, WorkflowInstanceId = Event.WorkflowInstanceId, TaskId = Event.TaskId, - ReviewedTaskId = _reviewedTaskId, - ReviewedExecutionId = _reviewedExecutionId, - WorkflowName = _workflowName, + ReviewedTaskId = _reviewedTaskId ?? string.Empty, + ReviewedExecutionId = _reviewedExecutionId ?? string.Empty, + WorkflowName = _workflowName ?? string.Empty, Notifications = _notifications, Files = Event.Inputs, ReviewerRoles = _reviewerRoles, @@ -237,9 +237,9 @@ private JsonMessage GenerateClinicalReviewRequestEve }, ApplicationMetadata = new Dictionary { - { Keys.ApplicationName, _applicationName }, - { Keys.ApplicationVersion, _applicationVersion }, - { Keys.Mode, _mode }, + { Keys.ApplicationName, _applicationName ?? string.Empty }, + { Keys.ApplicationVersion, _applicationVersion ?? string.Empty}, + { Keys.Mode, _mode ?? string.Empty }, } }, TaskManagerApplicationId, Event.CorrelationId); } @@ -249,7 +249,7 @@ private async Task SendClinicalReviewRequestEvent(JsonMessage GetStatus(string identity, TaskCallb executionStatus == TaskExecutionStatus.Succeeded ? "Accepted" : "Rejected", DateTime.UtcNow.ToLongDateString(), userId, - _applicationName, + _applicationName ?? string.Empty, reason, message); diff --git a/src/TaskManager/Plug-ins/AideClinicalReview/Events/ClinicalReviewRequestEvent.cs b/src/TaskManager/Plug-ins/AideClinicalReview/Events/ClinicalReviewRequestEvent.cs index eafd915ee..60cbfaee4 100644 --- a/src/TaskManager/Plug-ins/AideClinicalReview/Events/ClinicalReviewRequestEvent.cs +++ b/src/TaskManager/Plug-ins/AideClinicalReview/Events/ClinicalReviewRequestEvent.cs @@ -28,48 +28,48 @@ public class ClinicalReviewRequestEvent : EventBase /// [JsonProperty(PropertyName = "workflow_instance_id")] [Required] - public string WorkflowInstanceId { get; set; } + public string WorkflowInstanceId { get; set; } = string.Empty; /// /// Gets or sets the execution ID representing the instance of the task. /// [JsonProperty(PropertyName = "execution_id")] [Required] - public string ExecutionId { get; set; } + public string ExecutionId { get; set; } = string.Empty; /// /// Gets or sets the ID representing the instance of the Task. /// [Required] [JsonProperty(PropertyName = "task_id")] - public string TaskId { get; set; } + public string TaskId { get; set; } = string.Empty; /// /// Gets or sets the ID of the reviewed task ID. /// [Required] [JsonProperty(PropertyName = "reviewed_task_id")] - public string ReviewedTaskId { get; set; } + public string ReviewedTaskId { get; set; } = string.Empty; /// /// Gets or sets the ID of the reviewed execution ID. /// [Required] [JsonProperty(PropertyName = "reviewed_execution_id")] - public string ReviewedExecutionId { get; set; } + public string ReviewedExecutionId { get; set; } = string.Empty; /// /// Gets or sets the correlation ID. /// [JsonProperty(PropertyName = "correlation_id")] [Required] - public string CorrelationId { get; set; } + public string CorrelationId { get; set; } = string.Empty; /// /// Gets or sets the name of the workflow. /// [JsonProperty(PropertyName = "workflow_name")] [Required] - public string WorkflowName { get; set; } + public string WorkflowName { get; set; } = string.Empty; /// /// Gets or sets the name of the workflow. @@ -82,7 +82,7 @@ public class ClinicalReviewRequestEvent : EventBase /// Gets or sets patient metadata. /// [JsonProperty(PropertyName = "patient_metadata")] - public PatientMetadata PatientMetadata { get; set; } + public PatientMetadata? PatientMetadata { get; set; } /// /// Gets or sets the reviewer roles. @@ -100,6 +100,6 @@ public class ClinicalReviewRequestEvent : EventBase /// Gets or sets the name of the workflow. /// [JsonProperty(PropertyName = "files")] - public List Files { get; set; } + public List Files { get; set; } = new(); } } diff --git a/src/TaskManager/Plug-ins/AideClinicalReview/Models/PatientMetadata.cs b/src/TaskManager/Plug-ins/AideClinicalReview/Models/PatientMetadata.cs index 2f51351af..d3a0bd48b 100644 --- a/src/TaskManager/Plug-ins/AideClinicalReview/Models/PatientMetadata.cs +++ b/src/TaskManager/Plug-ins/AideClinicalReview/Models/PatientMetadata.cs @@ -21,21 +21,21 @@ namespace Monai.Deploy.WorkflowManager.TaskManager.AideClinicalReview.Models public class PatientMetadata { [JsonProperty(PropertyName = "patient_name")] - public string PatientName { get; set; } + public string? PatientName { get; set; } [JsonProperty(PropertyName = "patient_id")] - public string PatientId { get; set; } + public string? PatientId { get; set; } [JsonProperty(PropertyName = "patient_dob")] - public string PatientDob { get; set; } + public string? PatientDob { get; set; } [JsonProperty(PropertyName = "patient_sex")] - public string PatientSex { get; set; } + public string? PatientSex { get; set; } [JsonProperty(PropertyName = "patient_age")] - public string PatientAge { get; set; } + public string? PatientAge { get; set; } [JsonProperty(PropertyName = "patient_hospital_id")] - public string PatientHospitalId { get; set; } + public string? PatientHospitalId { get; set; } } } diff --git a/src/TaskManager/Plug-ins/AideClinicalReview/Monai.Deploy.WorkflowManager.TaskManager.AideClinicalReview.csproj b/src/TaskManager/Plug-ins/AideClinicalReview/Monai.Deploy.WorkflowManager.TaskManager.AideClinicalReview.csproj index e24c711b2..2734b4274 100644 --- a/src/TaskManager/Plug-ins/AideClinicalReview/Monai.Deploy.WorkflowManager.TaskManager.AideClinicalReview.csproj +++ b/src/TaskManager/Plug-ins/AideClinicalReview/Monai.Deploy.WorkflowManager.TaskManager.AideClinicalReview.csproj @@ -32,8 +32,8 @@ - - + + diff --git a/src/TaskManager/Plug-ins/AideClinicalReview/packages.lock.json b/src/TaskManager/Plug-ins/AideClinicalReview/packages.lock.json index e0430d0d1..f2c9f58dd 100644 --- a/src/TaskManager/Plug-ins/AideClinicalReview/packages.lock.json +++ b/src/TaskManager/Plug-ins/AideClinicalReview/packages.lock.json @@ -700,19 +700,19 @@ "resolved": "4.5.0", "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" }, - "monai.deploy.workflowmanager.configuration": { + "Monai.Deploy.WorkflowManager.Common.configuration": { "type": "Project", "dependencies": { "Monai.Deploy.Messaging": "[0.1.25, )", "Monai.Deploy.Storage": "[0.2.18, )" } }, - "monai.deploy.workflowmanager.shared": { + "Monai.Deploy.WorkflowManager.Common.miscellaneous": { "type": "Project", "dependencies": { "Ardalis.GuardClauses": "[4.1.1, )", "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.21, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", "fo-dicom": "[5.0.3, )" } }, diff --git a/src/TaskManager/Plug-ins/Argo/ArgoClient.cs b/src/TaskManager/Plug-ins/Argo/ArgoClient.cs index 75b99a00a..5224afbbe 100755 --- a/src/TaskManager/Plug-ins/Argo/ArgoClient.cs +++ b/src/TaskManager/Plug-ins/Argo/ArgoClient.cs @@ -40,7 +40,7 @@ public async Task Argo_CreateWorkflowAsync(string argoNamespace, Workf } - public async Task Argo_GetWorkflowAsync(string argoNamespace, string name, string getOptions_resourceVersion, string fields, CancellationToken cancellationToken) + public async Task Argo_GetWorkflowAsync(string argoNamespace, string name, string? getOptions_resourceVersion, string? fields, CancellationToken cancellationToken) { Guard.Against.NullOrWhiteSpace(argoNamespace, nameof(argoNamespace)); Guard.Against.Null(name, nameof(name)); @@ -91,7 +91,7 @@ public async Task Argo_TerminateWorkflowAsync(string argoNamespace, st return await SendRequest(content, urlBuilder, Method, new CancellationToken()).ConfigureAwait(false); } - public async Task Argo_GetWorkflowTemplateAsync(string argoNamespace, string name, string getOptions_resourceVersion) + public async Task Argo_GetWorkflowTemplateAsync(string argoNamespace, string name, string? getOptions_resourceVersion) { Guard.Against.NullOrWhiteSpace(argoNamespace, nameof(argoNamespace)); Guard.Against.Null(name, nameof(name)); @@ -116,7 +116,7 @@ public async Task Argo_GetWorkflowTemplateAsync(string argoNam return await GetRequest(urlBuilder).ConfigureAwait(false); } - public async Task Argo_Get_WorkflowLogsAsync(string argoNamespace, string name, string podName, string logOptions_container) + public async Task Argo_Get_WorkflowLogsAsync(string argoNamespace, string name, string? podName, string logOptions_container) { Guard.Against.NullOrWhiteSpace(argoNamespace, nameof(argoNamespace)); Guard.Against.Null(name, nameof(name)); @@ -124,7 +124,7 @@ public async Task Argo_GetWorkflowTemplateAsync(string argoNam var urlBuilder = new StringBuilder(); urlBuilder.Append(CultureInfo.InvariantCulture, $"{FormattedBaseUrl}/api/v1/workflows/{argoNamespace}/{name}/log?"); - if (podName != null) + if (string.IsNullOrWhiteSpace(podName) is false) { urlBuilder.Append(Uri.EscapeDataString("podName") + "=").Append(Uri.EscapeDataString(ConvertToString(podName, CultureInfo.InvariantCulture))).Append('&'); } @@ -385,7 +385,7 @@ protected virtual async Task> ReadLogResponseAsync( { if (response == null || response.Content == null) { - return new ObjectResponseResult(default, string.Empty); + return new ObjectResponseResult(string.Empty, string.Empty); } try @@ -398,7 +398,7 @@ protected virtual async Task> ReadLogResponseAsync( var jsonBody = $"[{string.Join(",", rows)}]"; var typedBody = Newtonsoft.Json.JsonConvert.DeserializeObject>(jsonBody); - var outputLogs = string.Join("\n", typedBody.Select(b => b.Result.Content)); + var outputLogs = string.Join("\n", typedBody?.Select(b => b.Result.Content) ?? Array.Empty()); return new ObjectResponseResult(outputLogs, string.Empty); } diff --git a/src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs b/src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs index b69291226..2aa6c20b9 100755 --- a/src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs +++ b/src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs @@ -23,10 +23,9 @@ using Microsoft.Extensions.Options; using Monai.Deploy.Messaging.Configuration; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.TaskManager.API; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Shared; using Monai.Deploy.WorkflowManager.TaskManager.API; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Monai.Deploy.WorkflowManager.TaskManager.API.Extensions; using Monai.Deploy.WorkflowManager.TaskManager.API.Models; using Monai.Deploy.WorkflowManager.TaskManager.Argo.Logging; @@ -242,7 +241,7 @@ public override async Task GetStatus(string identity, TaskCallb // it take sometime for the Argo job to be in the final state after emitting the callback event. var retryCount = 30; - while (workflow.Status.Phase.Equals(Strings.ArgoPhaseRunning, StringComparison.OrdinalIgnoreCase) && retryCount-- > 0) + while (workflow!.Status.Phase.Equals(Strings.ArgoPhaseRunning, StringComparison.OrdinalIgnoreCase) && retryCount-- > 0) { await Task.Delay(1000, cancellationToken).ConfigureAwait(false); workflow = await client.Argo_GetWorkflowAsync(_namespace, identity, null, null, cancellationToken).ConfigureAwait(false); @@ -348,8 +347,10 @@ private Dictionary GetExecutuionStats(Workflow workflow) { preprend = Strings.ExitHookTemplateSendTemplateName; } +#pragma warning disable CS8604 // Possible null reference argument. stats.Add($"{preprend}podStartTime{podcount}", item.Value.StartedAt is not null ? item.Value.StartedAt.ToString() : ""); stats.Add($"{preprend}podFinishTime{podcount++}", item.Value.FinishedAt is not null ? item.Value.FinishedAt.ToString() : ""); +#pragma warning restore CS8604 // Possible null reference argument. } } } @@ -362,17 +363,17 @@ private async Task PipeExecutionLogs(IArgoClient client, string identity) try { #pragma warning disable CA2254 // Template should be a static expression - var logs = await client.Argo_Get_WorkflowLogsAsync(_namespace, identity, null, "init"); + var logs = await client.Argo_Get_WorkflowLogsAsync(_namespace, identity, null, "init") ?? ""; _logger.ArgoLog(logs); - logs = await client.Argo_Get_WorkflowLogsAsync(_namespace, identity, null, "wait"); + logs = await client.Argo_Get_WorkflowLogsAsync(_namespace, identity, null, "wait") ?? ""; _logger.ArgoLog(logs); - logs = await client.Argo_Get_WorkflowLogsAsync(_namespace, identity, null, "main"); + logs = await client.Argo_Get_WorkflowLogsAsync(_namespace, identity, null, "main") ?? ""; _logger.ArgoLog(logs); #pragma warning restore CA2254 // Template should be a static expression } - catch (Exception ex) + catch (Exception) { - int we = 0; + // swallow execption on purpose. } } @@ -533,7 +534,7 @@ private async Task AddExitHookTemplate(Workflow workflow, CancellationToken canc workflow.Spec.Templates.Add(exitHookTemplate.GenerateCallbackMessageTemplate(artifact)); } - private async Task LoadWorkflowTemplate(string workflowTemplateName) + private async Task LoadWorkflowTemplate(string workflowTemplateName) { Guard.Against.NullOrWhiteSpace(workflowTemplateName, nameof(workflowTemplateName)); @@ -932,7 +933,7 @@ public async Task CreateArgoTemplate(string template) throw new InvalidOperationException(mess); } - return await client.Argo_CreateWorkflowTemplateAsync(_namespace, templateCreateRequest, new CancellationToken()).ConfigureAwait(false); + return await client.Argo_CreateWorkflowTemplateAsync(_namespace, templateCreateRequest!, new CancellationToken()).ConfigureAwait(false); } catch (Exception ex) { diff --git a/src/TaskManager/Plug-ins/Argo/Controllers/TemplateController.cs b/src/TaskManager/Plug-ins/Argo/Controllers/TemplateController.cs index f64ed337f..3d718180b 100644 --- a/src/TaskManager/Plug-ins/Argo/Controllers/TemplateController.cs +++ b/src/TaskManager/Plug-ins/Argo/Controllers/TemplateController.cs @@ -21,7 +21,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Configuration; +using Monai.Deploy.WorkflowManager.Common.Configuration; namespace Monai.Deploy.WorkflowManager.TaskManager.Argo.Controllers { diff --git a/src/TaskManager/Plug-ins/Argo/ExitHookTemplate.cs b/src/TaskManager/Plug-ins/Argo/ExitHookTemplate.cs index ce0ca5b31..87b018d45 100755 --- a/src/TaskManager/Plug-ins/Argo/ExitHookTemplate.cs +++ b/src/TaskManager/Plug-ins/Argo/ExitHookTemplate.cs @@ -16,7 +16,7 @@ using Argo; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Configuration; +using Monai.Deploy.WorkflowManager.Common.Configuration; using Monai.Deploy.WorkflowManager.TaskManager.Argo.StaticValues; using Newtonsoft.Json; diff --git a/src/TaskManager/Plug-ins/Argo/IArgoClient.cs b/src/TaskManager/Plug-ins/Argo/IArgoClient.cs index ea15b34bb..ded53f890 100644 --- a/src/TaskManager/Plug-ins/Argo/IArgoClient.cs +++ b/src/TaskManager/Plug-ins/Argo/IArgoClient.cs @@ -23,9 +23,9 @@ public interface IArgoClient { Task Argo_CreateWorkflowAsync(string argoNamespace, WorkflowCreateRequest body, CancellationToken cancellationToken); - Task Argo_GetWorkflowAsync(string argoNamespace, string name, string getOptions_resourceVersion, string fields, CancellationToken cancellationToken); + Task Argo_GetWorkflowAsync(string argoNamespace, string name, string? getOptions_resourceVersion, string? fields, CancellationToken cancellationToken); - Task Argo_GetWorkflowTemplateAsync(string argoNamespace, string name, string getOptions_resourceVersion); + Task Argo_GetWorkflowTemplateAsync(string argoNamespace, string name, string? getOptions_resourceVersion); Task Argo_StopWorkflowAsync(string argoNamespace, string name, WorkflowStopRequest body); @@ -33,7 +33,7 @@ public interface IArgoClient Task Argo_GetVersionAsync(); - Task Argo_Get_WorkflowLogsAsync(string argoNamespace, string name, string podName, string logOptions_container); + Task Argo_Get_WorkflowLogsAsync(string argoNamespace, string name, string? podName, string logOptions_container); Task Argo_CreateWorkflowTemplateAsync(string argoNamespace, WorkflowTemplateCreateRequest body, CancellationToken cancellationToken); diff --git a/src/TaskManager/Plug-ins/Argo/Monai.Deploy.WorkflowManager.TaskManager.Argo.csproj b/src/TaskManager/Plug-ins/Argo/Monai.Deploy.WorkflowManager.TaskManager.Argo.csproj index 870a2843d..a355c5015 100755 --- a/src/TaskManager/Plug-ins/Argo/Monai.Deploy.WorkflowManager.TaskManager.Argo.csproj +++ b/src/TaskManager/Plug-ins/Argo/Monai.Deploy.WorkflowManager.TaskManager.Argo.csproj @@ -41,8 +41,8 @@ - - + + diff --git a/src/TaskManager/Plug-ins/Argo/StaticValues/ResourcesKeys.cs b/src/TaskManager/Plug-ins/Argo/StaticValues/ResourcesKeys.cs index 5d3fdb08b..52fcfd174 100644 --- a/src/TaskManager/Plug-ins/Argo/StaticValues/ResourcesKeys.cs +++ b/src/TaskManager/Plug-ins/Argo/StaticValues/ResourcesKeys.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -using static Monai.Deploy.WorkflowManager.Shared.ValidationConstants; +using static Monai.Deploy.WorkflowManager.Common.Miscellaneous.ValidationConstants; namespace Monai.Deploy.WorkflowManager.TaskManager.Argo.StaticValues { diff --git a/src/TaskManager/Plug-ins/Argo/packages.lock.json b/src/TaskManager/Plug-ins/Argo/packages.lock.json index 93e734b73..9e57e4d5a 100644 --- a/src/TaskManager/Plug-ins/Argo/packages.lock.json +++ b/src/TaskManager/Plug-ins/Argo/packages.lock.json @@ -1180,19 +1180,19 @@ "resolved": "13.0.1", "contentHash": "E1e/xFXB+Cbn7pLVlr+8E3nemEitIReVgmAMMMveADvZvXGuSGHP+1Cg6oA+SUfwXHfaXLQn4STCaPKtdIJkWA==" }, - "monai.deploy.workflowmanager.configuration": { + "Monai.Deploy.WorkflowManager.Common.configuration": { "type": "Project", "dependencies": { "Monai.Deploy.Messaging": "[0.1.25, )", "Monai.Deploy.Storage": "[0.2.18, )" } }, - "monai.deploy.workflowmanager.shared": { + "Monai.Deploy.WorkflowManager.Common.miscellaneous": { "type": "Project", "dependencies": { "Ardalis.GuardClauses": "[4.1.1, )", "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.21, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", "fo-dicom": "[5.0.3, )" } }, diff --git a/src/TaskManager/Plug-ins/Docker/ContainerStatusMonitor.cs b/src/TaskManager/Plug-ins/Docker/ContainerStatusMonitor.cs index 61fa920bb..a5b630b3b 100644 --- a/src/TaskManager/Plug-ins/Docker/ContainerStatusMonitor.cs +++ b/src/TaskManager/Plug-ins/Docker/ContainerStatusMonitor.cs @@ -25,7 +25,7 @@ using Monai.Deploy.Messaging.Events; using Monai.Deploy.Messaging.Messages; using Monai.Deploy.Storage.API; -using Monai.Deploy.WorkflowManager.Configuration; +using Monai.Deploy.WorkflowManager.Common.Configuration; using Monai.Deploy.WorkflowManager.TaskManager.API; using Monai.Deploy.WorkflowManager.TaskManager.Docker.Logging; @@ -170,7 +170,7 @@ private async Task UploadOutputArtifacts(IStorageService storageService, IConten } _logger.ContentTypeForFile(objectName, contentType); using var stream = _fileSystem.File.OpenRead(file); - await storageService.PutObjectAsync(destination.Bucket, objectName, stream, stream.Length, contentType, null, cancellationToken).ConfigureAwait(false); + await storageService.PutObjectAsync(destination.Bucket, objectName, stream, stream.Length, contentType, new Dictionary(), cancellationToken).ConfigureAwait(false); } catch (Exception ex) { diff --git a/src/TaskManager/Plug-ins/Docker/Monai.Deploy.WorkflowManager.TaskManager.Docker.csproj b/src/TaskManager/Plug-ins/Docker/Monai.Deploy.WorkflowManager.TaskManager.Docker.csproj index dc3f904df..99d94b012 100644 --- a/src/TaskManager/Plug-ins/Docker/Monai.Deploy.WorkflowManager.TaskManager.Docker.csproj +++ b/src/TaskManager/Plug-ins/Docker/Monai.Deploy.WorkflowManager.TaskManager.Docker.csproj @@ -37,7 +37,7 @@ - + diff --git a/src/TaskManager/Plug-ins/Email/EmailPlugin.cs b/src/TaskManager/Plug-ins/Email/EmailPlugin.cs index 07d863293..e0b582fcf 100644 --- a/src/TaskManager/Plug-ins/Email/EmailPlugin.cs +++ b/src/TaskManager/Plug-ins/Email/EmailPlugin.cs @@ -23,10 +23,10 @@ using Monai.Deploy.Messaging.API; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Messaging.Messages; -using Monai.Deploy.WorkflowManager.Configuration; +using Monai.Deploy.WorkflowManager.Common.Configuration; using Monai.Deploy.WorkflowManager.TaskManager.API; using Monai.Deploy.Storage.API; -using Monai.Deploy.WorkflowManager.Shared; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Microsoft.Extensions.DependencyInjection; namespace Monai.Deploy.WorkflowManager.TaskManager.Email @@ -162,8 +162,17 @@ private async Task>> AddRawMetaFromFile(Dictiona _logger.NoMetaDataRequested(); return metadata; } + List allFiles; + try + { + allFiles = (List)await _storageService.ListObjectsAsync(bucketName, path, true); + } + catch (Exception ex) + { + var mess = ex.Message; + throw; + } - var allFiles = await _storageService.ListObjectsAsync(bucketName, path, true); foreach (var file in allFiles) { if (file.FilePath.EndsWith(".json", StringComparison.InvariantCultureIgnoreCase)) continue; diff --git a/src/TaskManager/Plug-ins/Email/Monai.Deploy.WorkflowManager.TaskManager.Email.csproj b/src/TaskManager/Plug-ins/Email/Monai.Deploy.WorkflowManager.TaskManager.Email.csproj index 8d3e74ea6..c299e29dd 100644 --- a/src/TaskManager/Plug-ins/Email/Monai.Deploy.WorkflowManager.TaskManager.Email.csproj +++ b/src/TaskManager/Plug-ins/Email/Monai.Deploy.WorkflowManager.TaskManager.Email.csproj @@ -33,9 +33,9 @@ - + + - diff --git a/src/TaskManager/TaskManager/ApplicationPartsLogger.cs b/src/TaskManager/TaskManager/ApplicationPartsLogger.cs index d5c6ce94a..ee827f784 100644 --- a/src/TaskManager/TaskManager/ApplicationPartsLogger.cs +++ b/src/TaskManager/TaskManager/ApplicationPartsLogger.cs @@ -45,8 +45,10 @@ public Task StartAsync(CancellationToken cancellationToken) var controllers = controllerFeature.Controllers.Select(x => x.Name); // Log the application parts and controllers - _logger.LogInformation("Found the following application parts: '{ApplicationParts}' with the following controllers: '{Controllers}'", - string.Join(", ", applicationParts), string.Join(", ", controllers)); + _logger.LogInformation( + "Found the following application parts: '{ApplicationParts}' with the following controllers: '{Controllers}'", + string.Join(", ", applicationParts), + string.Join(", ", controllers)); return Task.CompletedTask; } diff --git a/src/TaskManager/TaskManager/Extensions/TaskManagerExtensions.cs b/src/TaskManager/TaskManager/Extensions/TaskManagerExtensions.cs index f0b406562..17872a3de 100644 --- a/src/TaskManager/TaskManager/Extensions/TaskManagerExtensions.cs +++ b/src/TaskManager/TaskManager/Extensions/TaskManagerExtensions.cs @@ -21,10 +21,9 @@ using Microsoft.Extensions.Hosting; using Monai.Deploy.Security.Authentication.Configurations; using Monai.Deploy.Security.Authentication.Extensions; -using Monai.Deploy.TaskManager.API; -using Monai.Deploy.WorkflowManager.Shared; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; +using Monai.Deploy.WorkflowManager.TaskManager.API; using Monai.Deploy.WorkflowManager.TaskManager.Argo; -using Monai.Deploy.WorkflowManager.TaskManager.Argo.Controllers; using Monai.Deploy.WorkflowManager.TaskManager.Docker; using Monai.Deploy.WorkflowManager.TaskManager.Services; using NLog; @@ -49,6 +48,7 @@ public static IServiceCollection AddTaskManager(this IServiceCollection services Guard.Against.Null(hostContext, nameof(hostContext)); services.AddTransient(); + // TODO: the plug-in dependencies need to be injected dynamically similar to how storage lib is loaded services.AddSingleton(); services.AddSingleton(); @@ -77,7 +77,7 @@ public static IServiceCollection AddTaskManager(this IServiceCollection services return services; } - private static void CheckAddControllerPlugins(this IServiceCollection services, IConfiguration Configuration, Logger logger) + private static void CheckAddControllerPlugins(this IServiceCollection services, IConfiguration configuration, Logger logger) { var numberAdded = 0; var allFiles = Directory.GetFiles(".", "*.dll"); @@ -95,7 +95,7 @@ private static void CheckAddControllerPlugins(this IServiceCollection services, if (numberAdded > 0) { services.AddOptions() - .Bind(Configuration.GetSection("MonaiDeployAuthentication")); + .Bind(configuration.GetSection("MonaiDeployAuthentication")); services.AddMonaiAuthentication(); } } diff --git a/src/TaskManager/TaskManager/GlobalSuppressions.cs b/src/TaskManager/TaskManager/GlobalSuppressions.cs new file mode 100644 index 000000000..12d41f973 --- /dev/null +++ b/src/TaskManager/TaskManager/GlobalSuppressions.cs @@ -0,0 +1,28 @@ +/* + * Copyright 2022 MONAI Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1200:Using directives should be placed correctly", Justification = "this is a test")] +[assembly: SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1600:Elements should be documented", Justification = "this is a test", Scope = "member", Target = "~P:Monai.Deploy.WorkflowManager.TaskManager.TaskManager.Status")] +[assembly: SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1600:Elements should be documented", Justification = "this is a test", Scope = "member", Target = "~P:Monai.Deploy.WorkflowManager.TaskManager.TaskManager.ServiceName")] +[assembly: SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1600:Elements should be documented", Justification = "this is a test", Scope = "member", Target = "~M:Monai.Deploy.WorkflowManager.TaskManager.TaskManager.#ctor(Microsoft.Extensions.Logging.ILogger{Monai.Deploy.WorkflowManager.TaskManager.TaskManager},Microsoft.Extensions.Options.IOptions{Monai.Deploy.WorkflowManager.Configuration.WorkflowManagerOptions},Microsoft.Extensions.DependencyInjection.IServiceScopeFactory)")] +[assembly: SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1633:File should have header", Justification = "this is a test")] +[assembly: SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1600:Elements should be documented", Justification = "this is a test", Scope = "type", Target = "~T:Monai.Deploy.WorkflowManager.TaskManager.ApplicationPartsLogger")] diff --git a/src/TaskManager/TaskManager/Monai.Deploy.WorkflowManager.TaskManager.csproj b/src/TaskManager/TaskManager/Monai.Deploy.WorkflowManager.TaskManager.csproj old mode 100755 new mode 100644 index 332f64c39..fd9ead51b --- a/src/TaskManager/TaskManager/Monai.Deploy.WorkflowManager.TaskManager.csproj +++ b/src/TaskManager/TaskManager/Monai.Deploy.WorkflowManager.TaskManager.csproj @@ -77,8 +77,9 @@ - - + + + diff --git a/src/TaskManager/TaskManager/PluginStrings.cs b/src/TaskManager/TaskManager/PluginStrings.cs index 712641b5c..6a8c5156a 100644 --- a/src/TaskManager/TaskManager/PluginStrings.cs +++ b/src/TaskManager/TaskManager/PluginStrings.cs @@ -16,6 +16,7 @@ namespace Monai.Deploy.WorkflowManager.TaskManager { +#pragma warning disable SA1600 // Elements should be documented public static class PluginStrings { // note not to be confused with the ApplicationId Monai.Deploy.WorkflowManager.TaskManager.Argo @@ -26,3 +27,4 @@ public static class PluginStrings public static readonly IReadOnlyList PlugsRequiresPermanentAccoutns = new List() { Argo, Docker }; } } +#pragma warning restore SA1600 // Elements should be documented diff --git a/src/TaskManager/TaskManager/Program.cs b/src/TaskManager/TaskManager/Program.cs index 54ca453ed..f9f2be025 100755 --- a/src/TaskManager/TaskManager/Program.cs +++ b/src/TaskManager/TaskManager/Program.cs @@ -16,7 +16,9 @@ using System.IO.Abstractions; using System.Reflection; +using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.StaticFiles; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -26,43 +28,38 @@ using Monai.Deploy.Messaging.Configuration; using Monai.Deploy.Storage; using Monai.Deploy.Storage.Configuration; -using Monai.Deploy.WorkflowManager.Configuration; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; using Monai.Deploy.WorkflowManager.TaskManager.Database; using Monai.Deploy.WorkflowManager.TaskManager.Database.Options; using Monai.Deploy.WorkflowManager.TaskManager.Extensions; using Monai.Deploy.WorkflowManager.TaskManager.Services.Http; -using Mongo.Migration.Startup.DotNetCore; using Mongo.Migration.Startup; +using Mongo.Migration.Startup.DotNetCore; using MongoDB.Driver; using NLog; using NLog.LayoutRenderers; using NLog.Web; -using Microsoft.AspNetCore.Http; -using Monai.Deploy.WorkflowManager.Shared.Services; -using Microsoft.AspNetCore.Builder; namespace Monai.Deploy.WorkflowManager.TaskManager { + /// + /// Main entry point for TaskManager. + /// public class Program { + /// + /// Initializes a new instance of the class. + /// protected Program() - { } - - private static void Main(string[] args) { - var version = typeof(Program).Assembly; - var assemblyVersionNumber = version.GetCustomAttribute()?.InformationalVersion ?? "0.0.1"; - - var logger = ConfigureNLog(assemblyVersionNumber); - logger.Info($"Initializing MONAI Deploy Task Manager v{assemblyVersionNumber}"); - - var host = CreateHostBuilder(args).Build(); - host.Run(); - logger.Info("MONAI Deploy Deploy Task Manager shutting down."); - - NLog.LogManager.Shutdown(); } + /// + /// standard host builder construction. + /// + /// args passed in to the runtime. + /// host builder. public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => @@ -95,6 +92,21 @@ public static IHostBuilder CreateHostBuilder(string[] args) => .UseNLog(); + private static void Main(string[] args) + { + var version = typeof(Program).Assembly; + var assemblyVersionNumber = version.GetCustomAttribute()?.InformationalVersion ?? "0.0.1"; + + var logger = ConfigureNLog(assemblyVersionNumber); + logger.Info($"Initializing MONAI Deploy Task Manager v{assemblyVersionNumber}"); + + var host = CreateHostBuilder(args).Build(); + host.Run(); + logger.Info("MONAI Deploy Deploy Task Manager shutting down."); + + NLog.LogManager.Shutdown(); + } + private static void ConfigureServices(HostBuilderContext hostContext, IServiceCollection services) { services.AddOptions().Bind(hostContext.Configuration.GetSection("WorkflowManager")); diff --git a/src/TaskManager/TaskManager/Services/Http/Startup.cs b/src/TaskManager/TaskManager/Services/Http/Startup.cs index 1f50d1c1b..0dee0e0ca 100644 --- a/src/TaskManager/TaskManager/Services/Http/Startup.cs +++ b/src/TaskManager/TaskManager/Services/Http/Startup.cs @@ -24,7 +24,7 @@ using Microsoft.Extensions.Logging; using Microsoft.OpenApi.Models; using Monai.Deploy.Security.Authentication.Extensions; -using Monai.Deploy.WorkflowManager.Shared; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Newtonsoft.Json.Converters; namespace Monai.Deploy.WorkflowManager.TaskManager.Services.Http diff --git a/src/TaskManager/TaskManager/Services/TaskDispatchEventService.cs b/src/TaskManager/TaskManager/Services/TaskDispatchEventService.cs index 1ff14ec53..ec6639884 100644 --- a/src/TaskManager/TaskManager/Services/TaskDispatchEventService.cs +++ b/src/TaskManager/TaskManager/Services/TaskDispatchEventService.cs @@ -16,13 +16,17 @@ using Ardalis.GuardClauses; using Microsoft.Extensions.Logging; -using Monai.Deploy.TaskManager.API; +using Monai.Deploy.WorkflowManager.TaskManager.API; using Monai.Deploy.WorkflowManager.TaskManager.API.Models; using Monai.Deploy.WorkflowManager.TaskManager.Database; using Monai.Deploy.WorkflowManager.TaskManager.Logging; namespace Monai.Deploy.WorkflowManager.TaskManager.Services { +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. +#pragma warning disable SA1600 public class TaskDispatchEventService : ITaskDispatchEventService { private readonly ITaskDispatchEventRepository _taskDispatchEventRepository; @@ -69,7 +73,7 @@ public TaskDispatchEventService(ITaskDispatchEventRepository taskDispatchEventRe return await _taskDispatchEventRepository.GetByTaskExecutionIdAsync(taskExecutionId).ConfigureAwait(false); } - public async Task UpdateTaskPluginArgsAsync(TaskDispatchEventInfo taskDispatchEvent, Dictionary pluginArgs) + public async Task UpdateTaskPluginArgsAsync(TaskDispatchEventInfo taskDispatchEvent, Dictionary pluginArgs) { Guard.Against.Null(taskDispatchEvent, nameof(taskDispatchEvent)); Guard.Against.Null(pluginArgs, nameof(pluginArgs)); @@ -85,3 +89,7 @@ public async Task UpdateTaskPluginArgsAsync(TaskDispatchE } } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. +#pragma warning restore SA1600 diff --git a/src/TaskManager/TaskManager/TaskManager.cs b/src/TaskManager/TaskManager/TaskManager.cs index 2091f1db3..0e29af285 100644 --- a/src/TaskManager/TaskManager/TaskManager.cs +++ b/src/TaskManager/TaskManager/TaskManager.cs @@ -14,6 +14,7 @@ * limitations under the License. */ +using System.Reflection; using Ardalis.GuardClauses; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; @@ -25,14 +26,18 @@ using Monai.Deploy.Messaging.Messages; using Monai.Deploy.Storage.API; using Monai.Deploy.Storage.S3Policy.Policies; -using Monai.Deploy.TaskManager.API; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Shared; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Monai.Deploy.WorkflowManager.TaskManager.API; using Monai.Deploy.WorkflowManager.TaskManager.API.Extensions; using Monai.Deploy.WorkflowManager.TaskManager.API.Models; using Monai.Deploy.WorkflowManager.TaskManager.Logging; +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. +#pragma warning disable SA1600 // Elements should be documented +#pragma warning disable SA1201 // Elements should be documented namespace Monai.Deploy.WorkflowManager.TaskManager { public class TaskManager : IHostedService, IDisposable, IMonaiService @@ -111,6 +116,26 @@ public Task StopAsync(CancellationToken cancellationToken) return Task.CompletedTask; } + public void Dispose() + { + // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method + Dispose(disposing: true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (!_disposedValue) + { + if (disposing) + { + _scope.Dispose(); + } + + _disposedValue = true; + } + } + private static JsonMessage GenerateUpdateEventMessage( JsonMessage message, string executionId, @@ -160,13 +185,14 @@ private async Task TaskCancelationEventCallback(MessageReceivedEventArgs args) } /// - /// Generic Version of task callbacks + /// Generic Version of task callbacks. /// - /// + /// type. /// Message. /// Action to run on the message. - /// - private async Task TaskCallBackGeneric(MessageReceivedEventArgs args, Func, Task> func) where T : EventBase + /// Task. + private async Task TaskCallBackGeneric(MessageReceivedEventArgs args, Func, Task> func) + where T : EventBase { Guard.Against.Null(args, nameof(args)); @@ -174,7 +200,7 @@ private async Task TaskCallBackGeneric(MessageReceivedEventArgs args, Func? message = null; @@ -217,7 +243,7 @@ private async Task HandleCancellationTask(JsonMessage mes try { var taskExecution = await _taskDispatchEventService.GetByTaskExecutionIdAsync(message.Body.ExecutionId).ConfigureAwait(false); - pluginAssembly = _options.Value.TaskManager.PluginAssemblyMappings[taskExecution?.Event.TaskPluginType] ?? String.Empty; + pluginAssembly = _options.Value.TaskManager.PluginAssemblyMappings[taskExecution?.Event.TaskPluginType] ?? string.Empty; var taskExecEvent = taskExecution?.Event; if (taskExecEvent == null) { @@ -303,7 +329,9 @@ private async Task HandleTaskCallback(JsonMessage message) updateMessage = GenerateUpdateEventMessage(message, message.Body.ExecutionId, message.Body.WorkflowInstanceId, message.Body.TaskId, executionStatus, taskExecution.Event.Outputs); updateMessage.Body.Metadata.Add(Strings.JobIdentity, message.Body.Identity); foreach (var item in message.Body.Metadata) + { updateMessage.Body.Metadata.Add(item.Key, item.Value); + } } catch (Exception ex) { @@ -380,7 +408,7 @@ private async Task HandleDispatchTask(JsonMessage message) { ["workflowInstanceId"] = eventInfo.Event.WorkflowInstanceId, ["taskId"] = eventInfo.Event.TaskId, - ["executionId"] = eventInfo.Event.ExecutionId + ["executionId"] = eventInfo.Event.ExecutionId, }); await _taskDispatchEventService.CreateAsync(eventInfo).ConfigureAwait(false); @@ -435,6 +463,9 @@ await Task.WhenAll( } catch (Exception ex) { + var ass = Assembly.Load("Monai.Deploy.WorkflowManager.TaskManager.AideClinicalReview"); + var types = ass.GetTypes().ToArray(); + _logger.UnsupportedRunner(pluginAssembly, ex); await HandleMessageExceptionTaskUpdate(message, message.Body.WorkflowInstanceId, message.Body.TaskId, message.Body.ExecutionId, ex.Message, false).ConfigureAwait(false); taskRunner?.Dispose(); @@ -500,7 +531,7 @@ private async Task AddCredentialsToPlugin(JsonMessage storage.Credentials = new Credentials { AccessKey = creds.AccessKeyId, - AccessToken = creds.SecretAccessKey + AccessToken = creds.SecretAccessKey, }; } @@ -540,7 +571,7 @@ private void AcknowledgeMessage(JsonMessage message) } } - //TODO: gh-100 implement retry logic + // TODO: gh-100 implement retry logic private async Task SendUpdateEvent(JsonMessage message) { Guard.Against.NullService(_messageBrokerPublisherService, nameof(IMessageBrokerPublisherService)); @@ -570,11 +601,11 @@ private bool TryReserveResourceForExecution() return Interlocked.CompareExchange(ref _activeJobs, expectedActiveJobs, activeJobs) != activeJobs; } - private async Task HandleMessageExceptionTaskUpdate(MessageBase message, string WorkflowInstanceId, string taskId, string executionId, string errors, bool requeue) + private async Task HandleMessageExceptionTaskUpdate(MessageBase message, string workflowInstanceId, string taskId, string executionId, string errors, bool requeue) { Guard.Against.NullService(_messageBrokerSubscriberService, nameof(IMessageBrokerSubscriberService)); - await HandleMessageException(message, WorkflowInstanceId, taskId, executionId, requeue); + await HandleMessageException(message, workflowInstanceId, taskId, executionId, requeue); var updateMessage = new JsonMessage( new TaskUpdateEvent @@ -583,7 +614,7 @@ private async Task HandleMessageExceptionTaskUpdate(MessageBase message, string ExecutionId = executionId, Reason = FailureReason.PluginError, Status = TaskExecutionStatus.Failed, - WorkflowInstanceId = WorkflowInstanceId, + WorkflowInstanceId = workflowInstanceId, TaskId = taskId, Message = errors, }, @@ -628,25 +659,9 @@ private async Task HandleMessageException(MessageBase message, string workflowIn _logger.ErrorSendingMessage(message.MessageDescription, ex); } } - - protected virtual void Dispose(bool disposing) - { - if (!_disposedValue) - { - if (disposing) - { - _scope.Dispose(); - } - - _disposedValue = true; - } - } - - public void Dispose() - { - // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method - Dispose(disposing: true); - GC.SuppressFinalize(this); - } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. +#pragma warning restore SA1600 // Elements should be documented } } diff --git a/src/TaskManager/TaskManager/TaskManagerException.cs b/src/TaskManager/TaskManager/TaskManagerException.cs index ced7e4dce..0bf8aa205 100644 --- a/src/TaskManager/TaskManager/TaskManagerException.cs +++ b/src/TaskManager/TaskManager/TaskManagerException.cs @@ -19,22 +19,27 @@ namespace Monai.Deploy.WorkflowManager.TaskManager { [Serializable] +#pragma warning disable SA1600 // Elements should be documented internal class TaskManagerException : Exception { public TaskManagerException() { } - public TaskManagerException(string? message) : base(message) + public TaskManagerException(string? message) + : base(message) { } - public TaskManagerException(string? message, Exception? innerException) : base(message, innerException) + public TaskManagerException(string? message, Exception? innerException) + : base(message, innerException) { } - protected TaskManagerException(SerializationInfo info, StreamingContext context) : base(info, context) + protected TaskManagerException(SerializationInfo info, StreamingContext context) + : base(info, context) { } +#pragma warning restore SA1600 // Elements should be documented } } diff --git a/src/TaskManager/TaskManager/packages.lock.json b/src/TaskManager/TaskManager/packages.lock.json index 4c52e800b..2fc1b6ac7 100644 --- a/src/TaskManager/TaskManager/packages.lock.json +++ b/src/TaskManager/TaskManager/packages.lock.json @@ -1589,27 +1589,27 @@ "resolved": "0.6.2", "contentHash": "jPao/LdUNLUz8rn3H1D8W7wQbZsRZM0iayvWI4xGejJg3XJHT56gcmYdgmCGPdJF1UEBqUjucCRrFB+4HbJsbw==" }, - "monai.deploy.workflowmanager.configuration": { + "Monai.Deploy.WorkflowManager.Common.configuration": { "type": "Project", "dependencies": { "Monai.Deploy.Messaging": "[0.1.25, )", "Monai.Deploy.Storage": "[0.2.18, )" } }, - "monai.deploy.workflowmanager.shared": { + "Monai.Deploy.WorkflowManager.Common.miscellaneous": { "type": "Project", "dependencies": { "Ardalis.GuardClauses": "[4.1.1, )", "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.21, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", "fo-dicom": "[5.0.3, )" } }, "monai.deploy.workflowmanager.taskmanager.aideclinicalreview": { "type": "Project", "dependencies": { - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Shared": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Miscellaneous": "[1.0.0, )", "Monai.Deploy.WorkflowManager.TaskManager.API": "[1.0.0, )" } }, @@ -1626,8 +1626,8 @@ "dependencies": { "KubernetesClient": "[10.1.4, )", "Microsoft.AspNetCore.Mvc.Core": "[2.2.5, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Shared": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Miscellaneous": "[1.0.0, )", "Monai.Deploy.WorkflowManager.TaskManager.API": "[1.0.0, )" } }, @@ -1642,15 +1642,15 @@ "type": "Project", "dependencies": { "Docker.DotNet": "[3.125.13, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", "Monai.Deploy.WorkflowManager.TaskManager.API": "[1.0.0, )" } }, "monai.deploy.workflowmanager.taskmanager.email": { "type": "Project", "dependencies": { - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Shared": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Miscellaneous": "[1.0.0, )", "Monai.Deploy.WorkflowManager.TaskManager.API": "[1.0.0, )", "fo-dicom": "[5.0.3, )" } diff --git a/src/WorkflowManager/Common/Exceptions/BadRequestException.cs b/src/WorkflowManager/Common/Exceptions/BadRequestException.cs index af03776b2..1162f4005 100644 --- a/src/WorkflowManager/Common/Exceptions/BadRequestException.cs +++ b/src/WorkflowManager/Common/Exceptions/BadRequestException.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Common.Exceptions +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions { public class MonaiBadRequestException : Exception { diff --git a/src/WorkflowManager/Common/Exceptions/InternalServerException.cs b/src/WorkflowManager/Common/Exceptions/InternalServerException.cs index 4557c83b1..9fb44e631 100644 --- a/src/WorkflowManager/Common/Exceptions/InternalServerException.cs +++ b/src/WorkflowManager/Common/Exceptions/InternalServerException.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Common.Exceptions +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions { public class MonaiInternalServerException : Exception { diff --git a/src/WorkflowManager/Common/Exceptions/NotFoundException.cs b/src/WorkflowManager/Common/Exceptions/NotFoundException.cs index 35f81d6e2..960dda14b 100644 --- a/src/WorkflowManager/Common/Exceptions/NotFoundException.cs +++ b/src/WorkflowManager/Common/Exceptions/NotFoundException.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Common.Exceptions +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions { public class MonaiNotFoundException : Exception { diff --git a/src/WorkflowManager/Common/Extensions/ArrayExtensions.cs b/src/WorkflowManager/Common/Extensions/ArrayExtensions.cs index 4187366ce..0e5841633 100644 --- a/src/WorkflowManager/Common/Extensions/ArrayExtensions.cs +++ b/src/WorkflowManager/Common/Extensions/ArrayExtensions.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Common.Extensions +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Extensions { public static class ArrayExtensions { diff --git a/src/WorkflowManager/Common/Extensions/CollectionExtensions.cs b/src/WorkflowManager/Common/Extensions/CollectionExtensions.cs index 25c3e7f9c..991bcbd6e 100644 --- a/src/WorkflowManager/Common/Extensions/CollectionExtensions.cs +++ b/src/WorkflowManager/Common/Extensions/CollectionExtensions.cs @@ -16,7 +16,7 @@ using Ardalis.GuardClauses; -namespace Monai.Deploy.WorkflowManager.Common.Extensions +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Extensions { /// /// Set of useful extensions for collections. diff --git a/src/WorkflowManager/Common/Extensions/FileExtensions.cs b/src/WorkflowManager/Common/Extensions/FileExtensions.cs index 30e8723e2..563e14a51 100644 --- a/src/WorkflowManager/Common/Extensions/FileExtensions.cs +++ b/src/WorkflowManager/Common/Extensions/FileExtensions.cs @@ -16,7 +16,7 @@ using Monai.Deploy.Storage.API; -namespace Monai.Deploy.WorkflowManager.Common.Extensions +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Extensions { public static class FileExtensions { diff --git a/src/WorkflowManager/Common/Extensions/StorageListExtensions.cs b/src/WorkflowManager/Common/Extensions/StorageListExtensions.cs index a2ccf3a75..bc99e35bd 100755 --- a/src/WorkflowManager/Common/Extensions/StorageListExtensions.cs +++ b/src/WorkflowManager/Common/Extensions/StorageListExtensions.cs @@ -16,7 +16,7 @@ using Ardalis.GuardClauses; -namespace Monai.Deploy.WorkflowManager.Common.Extensions +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Extensions { public static class StorageListExtensions { diff --git a/src/WorkflowManager/Common/Interfaces/IPaginatedApi.cs b/src/WorkflowManager/Common/Interfaces/IPaginatedApi.cs index 75dc3c6ce..3889661f9 100644 --- a/src/WorkflowManager/Common/Interfaces/IPaginatedApi.cs +++ b/src/WorkflowManager/Common/Interfaces/IPaginatedApi.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Common.Interfaces +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces { public interface IPaginatedApi { diff --git a/src/WorkflowManager/Common/Interfaces/IPayloadService.cs b/src/WorkflowManager/Common/Interfaces/IPayloadService.cs index f4b586eee..5362ffca9 100644 --- a/src/WorkflowManager/Common/Interfaces/IPayloadService.cs +++ b/src/WorkflowManager/Common/Interfaces/IPayloadService.cs @@ -15,9 +15,9 @@ */ using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Common.Interfaces +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces { public interface IPayloadService : IPaginatedApi { diff --git a/src/WorkflowManager/Common/Interfaces/ITasksService.cs b/src/WorkflowManager/Common/Interfaces/ITasksService.cs index a886d8b61..0b0ab317b 100644 --- a/src/WorkflowManager/Common/Interfaces/ITasksService.cs +++ b/src/WorkflowManager/Common/Interfaces/ITasksService.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Common.Interfaces +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces { public interface ITasksService { diff --git a/src/WorkflowManager/Common/Interfaces/IWorkflowInstanceService.cs b/src/WorkflowManager/Common/Interfaces/IWorkflowInstanceService.cs index fef88b3ff..3495ed042 100644 --- a/src/WorkflowManager/Common/Interfaces/IWorkflowInstanceService.cs +++ b/src/WorkflowManager/Common/Interfaces/IWorkflowInstanceService.cs @@ -15,9 +15,9 @@ */ using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Common.Interfaces +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces { public interface IWorkflowInstanceService : IPaginatedApi { diff --git a/src/WorkflowManager/Common/Interfaces/IWorkflowService.cs b/src/WorkflowManager/Common/Interfaces/IWorkflowService.cs index 8cce59cc4..14de0c5fa 100644 --- a/src/WorkflowManager/Common/Interfaces/IWorkflowService.cs +++ b/src/WorkflowManager/Common/Interfaces/IWorkflowService.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Common.Interfaces +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces { public interface IWorkflowService : IPaginatedApi { diff --git a/src/WorkflowManager/Common/Services/PayloadService.cs b/src/WorkflowManager/Common/Services/PayloadService.cs index d98287105..53bd57f08 100644 --- a/src/WorkflowManager/Common/Services/PayloadService.cs +++ b/src/WorkflowManager/Common/Services/PayloadService.cs @@ -19,14 +19,14 @@ using Microsoft.Extensions.Logging; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Storage.API; -using Monai.Deploy.WorkflowManager.Common.Exceptions; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.Storage.Services; - -namespace Monai.Deploy.WorkflowManager.Common.Services +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.Storage.Services; + +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services { public class PayloadService : IPayloadService { @@ -119,7 +119,7 @@ public async Task> GetAllAsync(int? skip = null, string? patientId = "", string? patientName = "") => await CreatePayloadsDto( - await _payloadRepository.GetAllAsync(skip, limit, patientId, patientName) + await _payloadRepository.GetAllAsync(skip, limit, patientId ?? string.Empty, patientName ?? string.Empty) ); public async Task> GetAllAsync(int? skip = null, int? limit = null) diff --git a/src/WorkflowManager/Common/Services/TasksService.cs b/src/WorkflowManager/Common/Services/TasksService.cs index e361660de..8efc68ff3 100644 --- a/src/WorkflowManager/Common/Services/TasksService.cs +++ b/src/WorkflowManager/Common/Services/TasksService.cs @@ -14,11 +14,11 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; -namespace Monai.Deploy.WorkflowManager.Common.Services +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services { public class TasksService : ITasksService { diff --git a/src/WorkflowManager/Common/Services/WorkflowInstanceService.cs b/src/WorkflowManager/Common/Services/WorkflowInstanceService.cs index 535c28d1e..9a17907f1 100644 --- a/src/WorkflowManager/Common/Services/WorkflowInstanceService.cs +++ b/src/WorkflowManager/Common/Services/WorkflowInstanceService.cs @@ -17,13 +17,13 @@ using Ardalis.GuardClauses; using Microsoft.Extensions.Logging; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Common.Exceptions; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.Logging; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Logging; -namespace Monai.Deploy.WorkflowManager.Common.Services +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services { public class WorkflowInstanceService : IWorkflowInstanceService, IPaginatedApi { diff --git a/src/WorkflowManager/Common/Services/WorkflowService.cs b/src/WorkflowManager/Common/Services/WorkflowService.cs index 1e61b1977..fb3717244 100644 --- a/src/WorkflowManager/Common/Services/WorkflowService.cs +++ b/src/WorkflowManager/Common/Services/WorkflowService.cs @@ -16,12 +16,12 @@ using Ardalis.GuardClauses; using Microsoft.Extensions.Logging; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.Logging; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Logging; -namespace Monai.Deploy.WorkflowManager.Common.Services +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services { public class WorkflowService : IWorkflowService { diff --git a/src/WorkflowManager/ConditionsResolver/Constants/ParameterConstants.cs b/src/WorkflowManager/ConditionsResolver/Constants/ParameterConstants.cs index ff9f9a9bc..3c873ed4b 100644 --- a/src/WorkflowManager/ConditionsResolver/Constants/ParameterConstants.cs +++ b/src/WorkflowManager/ConditionsResolver/Constants/ParameterConstants.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Constants +namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Constants { public static class ParameterConstants { diff --git a/src/WorkflowManager/ConditionsResolver/Extensions/RegexExtensions.cs b/src/WorkflowManager/ConditionsResolver/Extensions/RegexExtensions.cs index a27637e63..8fc5e6e42 100644 --- a/src/WorkflowManager/ConditionsResolver/Extensions/RegexExtensions.cs +++ b/src/WorkflowManager/ConditionsResolver/Extensions/RegexExtensions.cs @@ -16,7 +16,7 @@ using System.Text.RegularExpressions; -namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Extensions +namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Extensions { public static class RegexExtensions { diff --git a/src/WorkflowManager/ConditionsResolver/Extensions/StringExtensions.cs b/src/WorkflowManager/ConditionsResolver/Extensions/StringExtensions.cs index 3654b8ff0..bccc68181 100644 --- a/src/WorkflowManager/ConditionsResolver/Extensions/StringExtensions.cs +++ b/src/WorkflowManager/ConditionsResolver/Extensions/StringExtensions.cs @@ -16,7 +16,7 @@ using System.Text; -namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Extensions +namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Extensions { public static class StringExtensions { diff --git a/src/WorkflowManager/ConditionsResolver/Parser/ConditionalParameterParser.cs b/src/WorkflowManager/ConditionsResolver/Parser/ConditionalParameterParser.cs index abcd5bdda..c0765c6e4 100644 --- a/src/WorkflowManager/ConditionsResolver/Parser/ConditionalParameterParser.cs +++ b/src/WorkflowManager/ConditionsResolver/Parser/ConditionalParameterParser.cs @@ -18,15 +18,15 @@ using System.Text.RegularExpressions; using Ardalis.GuardClauses; using Microsoft.Extensions.Logging; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.ConditionsResolver.Constants; -using Monai.Deploy.WorkflowManager.ConditionsResolver.Extensions; -using Monai.Deploy.WorkflowManager.ConditionsResolver.Resolver; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.Storage.Services; - -namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Parser +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Constants; +using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Extensions; +using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Resolver; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.Storage.Services; + +namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Parser { public enum ParameterContext { diff --git a/src/WorkflowManager/ConditionsResolver/Parser/IConditionalParameterParser.cs b/src/WorkflowManager/ConditionsResolver/Parser/IConditionalParameterParser.cs index e929ac00b..02b74dd7e 100644 --- a/src/WorkflowManager/ConditionsResolver/Parser/IConditionalParameterParser.cs +++ b/src/WorkflowManager/ConditionsResolver/Parser/IConditionalParameterParser.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Parser +namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Parser { public interface IConditionalParameterParser { diff --git a/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs b/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs index 1d4fc2345..73d03c8c4 100644 --- a/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs +++ b/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs @@ -17,7 +17,7 @@ using System.Globalization; using System.Text.RegularExpressions; -namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Resolver +namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Resolver { public sealed class Conditional { diff --git a/src/WorkflowManager/ConditionsResolver/Resovler/ConditionalGroup.cs b/src/WorkflowManager/ConditionsResolver/Resovler/ConditionalGroup.cs index 6fb6e3182..d10f9d0ae 100644 --- a/src/WorkflowManager/ConditionsResolver/Resovler/ConditionalGroup.cs +++ b/src/WorkflowManager/ConditionsResolver/Resovler/ConditionalGroup.cs @@ -16,9 +16,9 @@ using System.Text.RegularExpressions; using Ardalis.GuardClauses; -using Monai.Deploy.WorkflowManager.ConditionsResolver.Extensions; +using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Extensions; -namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Resolver +namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Resolver { public class ConditionalGroup { diff --git a/src/WorkflowManager/ConditionsResolver/Resovler/Keyword.cs b/src/WorkflowManager/ConditionsResolver/Resovler/Keyword.cs index a30fdd827..9bd77f3dd 100644 --- a/src/WorkflowManager/ConditionsResolver/Resovler/Keyword.cs +++ b/src/WorkflowManager/ConditionsResolver/Resovler/Keyword.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Resolver +namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Resolver { /// /// Group Keywords or Operators diff --git a/src/WorkflowManager/Contracts/Constants/TaskTypeConstants.cs b/src/WorkflowManager/Contracts/Constants/TaskTypeConstants.cs index 49520b317..32632a8a3 100644 --- a/src/WorkflowManager/Contracts/Constants/TaskTypeConstants.cs +++ b/src/WorkflowManager/Contracts/Constants/TaskTypeConstants.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Contracts.Constants +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Constants { public static class TaskTypeConstants { @@ -23,6 +23,5 @@ public static class TaskTypeConstants public const string ExportTask = "export"; public const string ExternalAppTask = "remote_app_execution"; - } } diff --git a/src/WorkflowManager/Contracts/Migrations/DocumentVersionConvert.cs b/src/WorkflowManager/Contracts/Migrations/DocumentVersionConvert.cs index b80062afe..2e06d685a 100755 --- a/src/WorkflowManager/Contracts/Migrations/DocumentVersionConvert.cs +++ b/src/WorkflowManager/Contracts/Migrations/DocumentVersionConvert.cs @@ -19,7 +19,7 @@ using MongoDB.Bson.Serialization; using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Migrations +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations { public class DocumentVersionConvert : JsonConverter { diff --git a/src/WorkflowManager/Contracts/Migrations/M001_ExecutionStats_addVersion.cs b/src/WorkflowManager/Contracts/Migrations/M001_ExecutionStats_addVersion.cs index 67c56bcf3..636b9e4ba 100644 --- a/src/WorkflowManager/Contracts/Migrations/M001_ExecutionStats_addVersion.cs +++ b/src/WorkflowManager/Contracts/Migrations/M001_ExecutionStats_addVersion.cs @@ -14,11 +14,11 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; using Mongo.Migration.Migrations.Document; using MongoDB.Bson; -namespace Monai.Deploy.WorkflowManager.Contracts.Migrations +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations { public class M001_ExecutionStats_addVersion : DocumentMigration { diff --git a/src/WorkflowManager/Contracts/Migrations/M001_Payload_addVerion.cs b/src/WorkflowManager/Contracts/Migrations/M001_Payload_addVerion.cs index b734e7b23..d377ee09e 100644 --- a/src/WorkflowManager/Contracts/Migrations/M001_Payload_addVerion.cs +++ b/src/WorkflowManager/Contracts/Migrations/M001_Payload_addVerion.cs @@ -13,11 +13,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; using Mongo.Migration.Migrations.Document; using MongoDB.Bson; -namespace Monai.Deploy.WorkflowManager.Contracts.Migrations +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations { public class M001_Payload_addVerion : DocumentMigration { diff --git a/src/WorkflowManager/Contracts/Migrations/M001_WorkflowInstance_addVerion.cs b/src/WorkflowManager/Contracts/Migrations/M001_WorkflowInstance_addVerion.cs index 96e3d9a38..6bb32be66 100644 --- a/src/WorkflowManager/Contracts/Migrations/M001_WorkflowInstance_addVerion.cs +++ b/src/WorkflowManager/Contracts/Migrations/M001_WorkflowInstance_addVerion.cs @@ -13,11 +13,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; using Mongo.Migration.Migrations.Document; using MongoDB.Bson; -namespace Monai.Deploy.WorkflowManager.Contracts.Migrations +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations { public class M001_WorkflowInstance_addVerion : DocumentMigration { diff --git a/src/WorkflowManager/Contracts/Migrations/M001_WorkflowRevision_addVerion.cs b/src/WorkflowManager/Contracts/Migrations/M001_WorkflowRevision_addVerion.cs index 4896f8485..45c1a7449 100644 --- a/src/WorkflowManager/Contracts/Migrations/M001_WorkflowRevision_addVerion.cs +++ b/src/WorkflowManager/Contracts/Migrations/M001_WorkflowRevision_addVerion.cs @@ -13,11 +13,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; using Mongo.Migration.Migrations.Document; using MongoDB.Bson; -namespace Monai.Deploy.WorkflowManager.Contracts.Migrations +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations { public class M001_WorkflowRevision_addVerion : DocumentMigration { diff --git a/src/WorkflowManager/Contracts/Migrations/M002_ExecutionStats_addWorkflowId.cs b/src/WorkflowManager/Contracts/Migrations/M002_ExecutionStats_addWorkflowId.cs index 103b73ac5..deeb530c5 100644 --- a/src/WorkflowManager/Contracts/Migrations/M002_ExecutionStats_addWorkflowId.cs +++ b/src/WorkflowManager/Contracts/Migrations/M002_ExecutionStats_addWorkflowId.cs @@ -14,11 +14,11 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; using Mongo.Migration.Migrations.Document; using MongoDB.Bson; -namespace Monai.Deploy.WorkflowManager.Contracts.Migrations +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations { public class M002_ExecutionStats_addWorkflowId : DocumentMigration { diff --git a/src/WorkflowManager/Contracts/Migrations/M002_Payload_addPayloadDeleted.cs b/src/WorkflowManager/Contracts/Migrations/M002_Payload_addPayloadDeleted.cs index 7baa4002b..3d80fc912 100644 --- a/src/WorkflowManager/Contracts/Migrations/M002_Payload_addPayloadDeleted.cs +++ b/src/WorkflowManager/Contracts/Migrations/M002_Payload_addPayloadDeleted.cs @@ -13,11 +13,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; using Mongo.Migration.Migrations.Document; using MongoDB.Bson; -namespace Monai.Deploy.WorkflowManager.Contracts.Migrations +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Migrations { public class M002_Payload_addPayloadDeleted : DocumentMigration { diff --git a/src/WorkflowManager/Contracts/Models/Artifact.cs b/src/WorkflowManager/Contracts/Models/Artifact.cs index d1591e905..13b784538 100644 --- a/src/WorkflowManager/Contracts/Models/Artifact.cs +++ b/src/WorkflowManager/Contracts/Models/Artifact.cs @@ -16,7 +16,7 @@ using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public class Artifact { diff --git a/src/WorkflowManager/Contracts/Models/ArtifactMap.cs b/src/WorkflowManager/Contracts/Models/ArtifactMap.cs index eca655953..e58634594 100644 --- a/src/WorkflowManager/Contracts/Models/ArtifactMap.cs +++ b/src/WorkflowManager/Contracts/Models/ArtifactMap.cs @@ -16,7 +16,7 @@ using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public class ArtifactMap { diff --git a/src/WorkflowManager/Contracts/Models/DicomValue.cs b/src/WorkflowManager/Contracts/Models/DicomValue.cs index 3c58a8144..3659155dd 100644 --- a/src/WorkflowManager/Contracts/Models/DicomValue.cs +++ b/src/WorkflowManager/Contracts/Models/DicomValue.cs @@ -16,7 +16,7 @@ using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public class DicomValue { diff --git a/src/WorkflowManager/Contracts/Models/ExecutionStatDTO.cs b/src/WorkflowManager/Contracts/Models/ExecutionStatDTO.cs index d21195a4d..80316be22 100644 --- a/src/WorkflowManager/Contracts/Models/ExecutionStatDTO.cs +++ b/src/WorkflowManager/Contracts/Models/ExecutionStatDTO.cs @@ -16,7 +16,7 @@ using System; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public class ExecutionStatDTO diff --git a/src/WorkflowManager/Contracts/Models/ExecutionStats.cs b/src/WorkflowManager/Contracts/Models/ExecutionStats.cs index e7e5a6ad5..1d5eb39c6 100644 --- a/src/WorkflowManager/Contracts/Models/ExecutionStats.cs +++ b/src/WorkflowManager/Contracts/Models/ExecutionStats.cs @@ -16,7 +16,7 @@ using System; using System.ComponentModel.DataAnnotations; -using Monai.Deploy.WorkflowManager.Contracts.Migrations; +using Monai.Deploy.WorkflowManager.Common.Contracts.Migrations; using Ardalis.GuardClauses; using Monai.Deploy.Messaging.Events; using Mongo.Migration.Documents; @@ -24,7 +24,7 @@ using MongoDB.Bson.Serialization.Attributes; using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { [CollectionLocation("ExecutionStats"), RuntimeVersion("1.0.1")] public class ExecutionStats : IDocument diff --git a/src/WorkflowManager/Contracts/Models/ExportDestination.cs b/src/WorkflowManager/Contracts/Models/ExportDestination.cs index 7cc856f19..1b9bed245 100644 --- a/src/WorkflowManager/Contracts/Models/ExportDestination.cs +++ b/src/WorkflowManager/Contracts/Models/ExportDestination.cs @@ -16,11 +16,11 @@ using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public class ExportDestination { [JsonProperty(PropertyName = "name")] - public string Name { get; set; } + public string Name { get; set; } = ""; } } diff --git a/src/WorkflowManager/Contracts/Models/ISoftDeleteable.cs b/src/WorkflowManager/Contracts/Models/ISoftDeleteable.cs index 5257e2b27..82365a157 100644 --- a/src/WorkflowManager/Contracts/Models/ISoftDeleteable.cs +++ b/src/WorkflowManager/Contracts/Models/ISoftDeleteable.cs @@ -16,7 +16,7 @@ using System; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public interface ISoftDeleteable { diff --git a/src/WorkflowManager/Contracts/Models/InformaticsGateway.cs b/src/WorkflowManager/Contracts/Models/InformaticsGateway.cs index fcef1fe4c..60f066120 100644 --- a/src/WorkflowManager/Contracts/Models/InformaticsGateway.cs +++ b/src/WorkflowManager/Contracts/Models/InformaticsGateway.cs @@ -16,7 +16,7 @@ using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public class InformaticsGateway { diff --git a/src/WorkflowManager/Contracts/Models/PatientDetails.cs b/src/WorkflowManager/Contracts/Models/PatientDetails.cs index 6e5e4543a..cafc94bde 100644 --- a/src/WorkflowManager/Contracts/Models/PatientDetails.cs +++ b/src/WorkflowManager/Contracts/Models/PatientDetails.cs @@ -17,7 +17,7 @@ using System; using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public class PatientDetails { diff --git a/src/WorkflowManager/Contracts/Models/Payload.cs b/src/WorkflowManager/Contracts/Models/Payload.cs index cba4f3f54..c46dbd222 100755 --- a/src/WorkflowManager/Contracts/Models/Payload.cs +++ b/src/WorkflowManager/Contracts/Models/Payload.cs @@ -17,14 +17,14 @@ using System; using System.Collections.Generic; using Monai.Deploy.Messaging.Common; -using Monai.Deploy.WorkflowManager.Contracts.Migrations; +using Monai.Deploy.WorkflowManager.Common.Contracts.Migrations; using Mongo.Migration.Documents; using Mongo.Migration.Documents.Attributes; using MongoDB.Bson.Serialization; using MongoDB.Bson.Serialization.Attributes; using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { [CollectionLocation("Payloads"), RuntimeVersion("1.0.1")] public class Payload : IDocument diff --git a/src/WorkflowManager/Contracts/Models/PayloadDto.cs b/src/WorkflowManager/Contracts/Models/PayloadDto.cs index 116f6278b..5988e9fa2 100644 --- a/src/WorkflowManager/Contracts/Models/PayloadDto.cs +++ b/src/WorkflowManager/Contracts/Models/PayloadDto.cs @@ -16,7 +16,7 @@ using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public class PayloadDto : Payload { diff --git a/src/WorkflowManager/Contracts/Models/Status.cs b/src/WorkflowManager/Contracts/Models/Status.cs index 0ca97fb0f..487bddc20 100644 --- a/src/WorkflowManager/Contracts/Models/Status.cs +++ b/src/WorkflowManager/Contracts/Models/Status.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public enum Status { diff --git a/src/WorkflowManager/Contracts/Models/TaskDestination.cs b/src/WorkflowManager/Contracts/Models/TaskDestination.cs index 7ddf53ca7..f767777ce 100644 --- a/src/WorkflowManager/Contracts/Models/TaskDestination.cs +++ b/src/WorkflowManager/Contracts/Models/TaskDestination.cs @@ -17,7 +17,7 @@ using System; using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public class TaskDestination { diff --git a/src/WorkflowManager/Contracts/Models/TaskExecution.cs b/src/WorkflowManager/Contracts/Models/TaskExecution.cs index 8e9de57ab..a76865bca 100644 --- a/src/WorkflowManager/Contracts/Models/TaskExecution.cs +++ b/src/WorkflowManager/Contracts/Models/TaskExecution.cs @@ -19,7 +19,7 @@ using Monai.Deploy.Messaging.Events; using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public class TaskExecution { diff --git a/src/WorkflowManager/Contracts/Models/TaskObject.cs b/src/WorkflowManager/Contracts/Models/TaskObject.cs index 70c84134c..d9cff4a4f 100644 --- a/src/WorkflowManager/Contracts/Models/TaskObject.cs +++ b/src/WorkflowManager/Contracts/Models/TaskObject.cs @@ -18,7 +18,7 @@ using System.Collections.Generic; using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public class TaskObject { diff --git a/src/WorkflowManager/Contracts/Models/Workflow.cs b/src/WorkflowManager/Contracts/Models/Workflow.cs index 17a05a4c9..da6435c49 100755 --- a/src/WorkflowManager/Contracts/Models/Workflow.cs +++ b/src/WorkflowManager/Contracts/Models/Workflow.cs @@ -16,7 +16,7 @@ using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public class Workflow diff --git a/src/WorkflowManager/Contracts/Models/WorkflowInstance.cs b/src/WorkflowManager/Contracts/Models/WorkflowInstance.cs index d620ce062..e22ffc2a4 100755 --- a/src/WorkflowManager/Contracts/Models/WorkflowInstance.cs +++ b/src/WorkflowManager/Contracts/Models/WorkflowInstance.cs @@ -16,13 +16,13 @@ using System; using System.Collections.Generic; -using Monai.Deploy.WorkflowManager.Contracts.Migrations; +using Monai.Deploy.WorkflowManager.Common.Contracts.Migrations; using Mongo.Migration.Documents; using Mongo.Migration.Documents.Attributes; using MongoDB.Bson.Serialization.Attributes; using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { [CollectionLocation("WorkflowInstances"), RuntimeVersion("1.0.0")] public class WorkflowInstance : IDocument diff --git a/src/WorkflowManager/Contracts/Models/WorkflowRevision.cs b/src/WorkflowManager/Contracts/Models/WorkflowRevision.cs index 0e35c09af..af34bdbd9 100755 --- a/src/WorkflowManager/Contracts/Models/WorkflowRevision.cs +++ b/src/WorkflowManager/Contracts/Models/WorkflowRevision.cs @@ -15,13 +15,13 @@ */ using System; -using Monai.Deploy.WorkflowManager.Contracts.Migrations; +using Monai.Deploy.WorkflowManager.Common.Contracts.Migrations; using Mongo.Migration.Documents; using Mongo.Migration.Documents.Attributes; using MongoDB.Bson.Serialization.Attributes; using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { [CollectionLocation("Workflows"), RuntimeVersion("1.0.0")] public class WorkflowRevision : ISoftDeleteable, IDocument diff --git a/src/WorkflowManager/Contracts/Models/WorkflowUpdateRequest.cs b/src/WorkflowManager/Contracts/Models/WorkflowUpdateRequest.cs index 90daca353..f9e5081e3 100644 --- a/src/WorkflowManager/Contracts/Models/WorkflowUpdateRequest.cs +++ b/src/WorkflowManager/Contracts/Models/WorkflowUpdateRequest.cs @@ -16,14 +16,14 @@ using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Models +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Models { public class WorkflowUpdateRequest { [JsonProperty(PropertyName = "original_workflow_name")] - public string OriginalWorkflowName { get; set; } + public string OriginalWorkflowName { get; set; } = ""; [JsonProperty(PropertyName = "workflow")] - public Workflow Workflow { get; set; } + public Workflow Workflow { get; set; } = new(); } } diff --git a/src/WorkflowManager/Contracts/Monai.Deploy.WorkflowManager.Contracts.csproj b/src/WorkflowManager/Contracts/Monai.Deploy.WorkflowManager.Contracts.csproj old mode 100755 new mode 100644 diff --git a/src/WorkflowManager/Contracts/Responses/CreateWorkflowResponse.cs b/src/WorkflowManager/Contracts/Responses/CreateWorkflowResponse.cs index fda0b85e8..85622e107 100644 --- a/src/WorkflowManager/Contracts/Responses/CreateWorkflowResponse.cs +++ b/src/WorkflowManager/Contracts/Responses/CreateWorkflowResponse.cs @@ -16,7 +16,7 @@ using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Contracts.Responses +namespace Monai.Deploy.WorkflowManager.Common.Contracts.Responses { public class CreateWorkflowResponse { diff --git a/src/WorkflowManager/Database/Interfaces/IPayloadRepository.cs b/src/WorkflowManager/Database/Interfaces/IPayloadRepository.cs index 75553371e..61fed986d 100644 --- a/src/WorkflowManager/Database/Interfaces/IPayloadRepository.cs +++ b/src/WorkflowManager/Database/Interfaces/IPayloadRepository.cs @@ -16,9 +16,9 @@ using System.Collections.Generic; using System.Threading.Tasks; -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Database.Interfaces +namespace Monai.Deploy.WorkflowManager.Common.Database.Interfaces { public interface IPayloadRepository { diff --git a/src/WorkflowManager/Database/Interfaces/ITaskExecutionStatsRepository.cs b/src/WorkflowManager/Database/Interfaces/ITaskExecutionStatsRepository.cs index e9bd9dbf3..16f51022d 100644 --- a/src/WorkflowManager/Database/Interfaces/ITaskExecutionStatsRepository.cs +++ b/src/WorkflowManager/Database/Interfaces/ITaskExecutionStatsRepository.cs @@ -19,9 +19,9 @@ using System.Linq.Expressions; using System.Threading.Tasks; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Database +namespace Monai.Deploy.WorkflowManager.Common.Database { public interface ITaskExecutionStatsRepository { diff --git a/src/WorkflowManager/Database/Interfaces/ITasksRepository.cs b/src/WorkflowManager/Database/Interfaces/ITasksRepository.cs index 00876de4a..8863f2012 100644 --- a/src/WorkflowManager/Database/Interfaces/ITasksRepository.cs +++ b/src/WorkflowManager/Database/Interfaces/ITasksRepository.cs @@ -16,9 +16,9 @@ using System.Collections.Generic; using System.Threading.Tasks; -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Database.Interfaces +namespace Monai.Deploy.WorkflowManager.Common.Database.Interfaces { public interface ITasksRepository { diff --git a/src/WorkflowManager/Database/Interfaces/IWorkflowInstanceRepository.cs b/src/WorkflowManager/Database/Interfaces/IWorkflowInstanceRepository.cs index d3131ce8b..a6ffbcf4b 100644 --- a/src/WorkflowManager/Database/Interfaces/IWorkflowInstanceRepository.cs +++ b/src/WorkflowManager/Database/Interfaces/IWorkflowInstanceRepository.cs @@ -17,9 +17,9 @@ using System.Collections.Generic; using System.Threading.Tasks; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Database.Interfaces +namespace Monai.Deploy.WorkflowManager.Common.Database.Interfaces { public interface IWorkflowInstanceRepository { diff --git a/src/WorkflowManager/Database/Interfaces/IWorkflowRepository.cs b/src/WorkflowManager/Database/Interfaces/IWorkflowRepository.cs index 41cb8abb7..b8b8107be 100644 --- a/src/WorkflowManager/Database/Interfaces/IWorkflowRepository.cs +++ b/src/WorkflowManager/Database/Interfaces/IWorkflowRepository.cs @@ -18,9 +18,9 @@ using System.Collections.Generic; using System.Threading.Tasks; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Database.Interfaces +namespace Monai.Deploy.WorkflowManager.Common.Database.Interfaces { public interface IWorkflowRepository { diff --git a/src/WorkflowManager/Database/Options/ExecutionStatsDatabaseSettings.cs b/src/WorkflowManager/Database/Options/ExecutionStatsDatabaseSettings.cs index 01bd75012..6b9d86fb0 100644 --- a/src/WorkflowManager/Database/Options/ExecutionStatsDatabaseSettings.cs +++ b/src/WorkflowManager/Database/Options/ExecutionStatsDatabaseSettings.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Configuration; -namespace Monai.Deploy.WorkflowManager.Database.Options +namespace Monai.Deploy.WorkflowManager.Common.Database.Options { public class ExecutionStatsDatabaseSettings { diff --git a/src/WorkflowManager/Database/Options/WorkloadManagerDatabaseSettings.cs b/src/WorkflowManager/Database/Options/WorkloadManagerDatabaseSettings.cs index d471a2121..e6baf7340 100755 --- a/src/WorkflowManager/Database/Options/WorkloadManagerDatabaseSettings.cs +++ b/src/WorkflowManager/Database/Options/WorkloadManagerDatabaseSettings.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Configuration; -namespace Monai.Deploy.WorkflowManager.Database.Options +namespace Monai.Deploy.WorkflowManager.Common.Database.Options { public class WorkloadManagerDatabaseSettings { diff --git a/src/WorkflowManager/Database/Repositories/PayloadRepository.cs b/src/WorkflowManager/Database/Repositories/PayloadRepository.cs old mode 100755 new mode 100644 index 75ffe04ba..78736de45 --- a/src/WorkflowManager/Database/Repositories/PayloadRepository.cs +++ b/src/WorkflowManager/Database/Repositories/PayloadRepository.cs @@ -20,14 +20,14 @@ using Ardalis.GuardClauses; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.Database.Options; -using Monai.Deploy.WorkflowManager.Logging; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Database.Options; +using Monai.Deploy.WorkflowManager.Common.Logging; using MongoDB.Bson; using MongoDB.Driver; -namespace Monai.Deploy.WorkflowManager.Database.Repositories +namespace Monai.Deploy.WorkflowManager.Common.Database.Repositories { public class PayloadRepository : RepositoryBase, IPayloadRepository { @@ -69,7 +69,7 @@ public async Task CreateAsync(Payload payload) } } - public async Task> GetAllAsync(int? skip = null, int? limit = null, string patientId = "", string patientName = "") + public async Task> GetAllAsync(int? skip = null, int? limit = null, string? patientId = "", string? patientName = "") { var builder = Builders.Filter; var filter = builder.Empty; @@ -120,7 +120,7 @@ public async Task UpdateAsync(Payload payload) public async Task UpdateAssociatedWorkflowInstancesAsync(string payloadId, IEnumerable workflowInstances) { - Guard.Against.NullOrEmpty(workflowInstances, nameof(WorkflowInstance)); + Guard.Against.NullOrEmpty(workflowInstances, nameof(workflowInstances)); Guard.Against.NullOrWhiteSpace(payloadId, nameof(payloadId)); try diff --git a/src/WorkflowManager/Database/Repositories/RepositoryBase.cs b/src/WorkflowManager/Database/Repositories/RepositoryBase.cs index 48367a335..e4f120d55 100644 --- a/src/WorkflowManager/Database/Repositories/RepositoryBase.cs +++ b/src/WorkflowManager/Database/Repositories/RepositoryBase.cs @@ -20,11 +20,11 @@ using System.Threading.Tasks; using MongoDB.Driver; -namespace Monai.Deploy.WorkflowManager.Database.Repositories +namespace Monai.Deploy.WorkflowManager.Common.Database.Repositories { public abstract class RepositoryBase { - public static async Task CountAsync(IMongoCollection collection, FilterDefinition filter) + public static async Task CountAsync(IMongoCollection collection, FilterDefinition? filter) => await collection.CountDocumentsAsync(filter ?? Builders.Filter.Empty); /// @@ -37,7 +37,7 @@ public static async Task CountAsync(IMongoCollection collection, Fil /// Items to skip. /// Items to limit results by. /// - public static async Task> GetAllAsync(IMongoCollection collection, Expression> filterFunction, SortDefinition sortFunction, int? skip = null, int? limit = null) + public static async Task> GetAllAsync(IMongoCollection collection, Expression>? filterFunction, SortDefinition sortFunction, int? skip = null, int? limit = null) { return await collection .Find(filterFunction ?? Builders.Filter.Empty) diff --git a/src/WorkflowManager/Database/Repositories/TaskExecutionStatsRepository.cs b/src/WorkflowManager/Database/Repositories/TaskExecutionStatsRepository.cs index 4d2a79d7b..b8c0c7690 100644 --- a/src/WorkflowManager/Database/Repositories/TaskExecutionStatsRepository.cs +++ b/src/WorkflowManager/Database/Repositories/TaskExecutionStatsRepository.cs @@ -23,12 +23,12 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Options; -using Monai.Deploy.WorkflowManager.Logging; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Options; +using Monai.Deploy.WorkflowManager.Common.Logging; using MongoDB.Driver; -namespace Monai.Deploy.WorkflowManager.Database +namespace Monai.Deploy.WorkflowManager.Common.Database { public class TaskExecutionStatsRepository : ITaskExecutionStatsRepository { diff --git a/src/WorkflowManager/Database/Repositories/TasksRepository.cs b/src/WorkflowManager/Database/Repositories/TasksRepository.cs index 72a7ad9c2..7fdd540a4 100755 --- a/src/WorkflowManager/Database/Repositories/TasksRepository.cs +++ b/src/WorkflowManager/Database/Repositories/TasksRepository.cs @@ -21,13 +21,13 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.Database.Options; -using Monai.Deploy.WorkflowManager.Logging; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Database.Options; +using Monai.Deploy.WorkflowManager.Common.Logging; using MongoDB.Driver; -namespace Monai.Deploy.WorkflowManager.Database.Repositories +namespace Monai.Deploy.WorkflowManager.Common.Database.Repositories { public class TasksRepository : RepositoryBase, ITasksRepository { diff --git a/src/WorkflowManager/Database/Repositories/WorkflowInstanceRepository.cs b/src/WorkflowManager/Database/Repositories/WorkflowInstanceRepository.cs index 5541f0164..4e1ddf205 100755 --- a/src/WorkflowManager/Database/Repositories/WorkflowInstanceRepository.cs +++ b/src/WorkflowManager/Database/Repositories/WorkflowInstanceRepository.cs @@ -22,15 +22,14 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.Database.Options; -using Monai.Deploy.WorkflowManager.Logging; -using MongoDB.Bson; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Database.Options; +using Monai.Deploy.WorkflowManager.Common.Logging; using MongoDB.Driver; using MongoDB.Driver.Linq; -namespace Monai.Deploy.WorkflowManager.Database.Repositories +namespace Monai.Deploy.WorkflowManager.Common.Database.Repositories { public class WorkflowInstanceRepository : RepositoryBase, IWorkflowInstanceRepository { diff --git a/src/WorkflowManager/Database/Repositories/WorkflowRepository.cs b/src/WorkflowManager/Database/Repositories/WorkflowRepository.cs index 8acb50806..e4bd22af0 100755 --- a/src/WorkflowManager/Database/Repositories/WorkflowRepository.cs +++ b/src/WorkflowManager/Database/Repositories/WorkflowRepository.cs @@ -20,13 +20,13 @@ using System.Threading.Tasks; using Ardalis.GuardClauses; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.Database.Options; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Database.Options; using MongoDB.Driver; using MongoDB.Driver.Linq; -namespace Monai.Deploy.WorkflowManager.Database.Repositories +namespace Monai.Deploy.WorkflowManager.Common.Database.Repositories { public class WorkflowRepository : RepositoryBase, IWorkflowRepository { @@ -63,10 +63,12 @@ private async Task EnsureIndex() { Name = "AeTitleIndex" }; +#pragma warning disable CS8602 // Dereference of a possibly null reference. var model = new CreateIndexModel( Builders.IndexKeys.Ascending(s => s.Workflow.InformaticsGateway.AeTitle), options ); +#pragma warning restore CS8602 // Dereference of a possibly null reference. await _workflowCollection.Indexes.CreateOneAsync(model); } diff --git a/src/WorkflowManager/Logging/Log.100000.Http.cs b/src/WorkflowManager/Logging/Log.100000.Http.cs index 3dca637bd..12054ed60 100644 --- a/src/WorkflowManager/Logging/Log.100000.Http.cs +++ b/src/WorkflowManager/Logging/Log.100000.Http.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Logging; -namespace Monai.Deploy.WorkflowManager.Logging +namespace Monai.Deploy.WorkflowManager.Common.Logging { public static partial class Log { diff --git a/src/WorkflowManager/Logging/Log.200000.Workflow.cs b/src/WorkflowManager/Logging/Log.200000.Workflow.cs index a735fa225..f0a236fff 100644 --- a/src/WorkflowManager/Logging/Log.200000.Workflow.cs +++ b/src/WorkflowManager/Logging/Log.200000.Workflow.cs @@ -15,9 +15,9 @@ */ using Microsoft.Extensions.Logging; -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Logging +namespace Monai.Deploy.WorkflowManager.Common.Logging { public static partial class Log { diff --git a/src/WorkflowManager/Logging/Log.300000.Payload.cs b/src/WorkflowManager/Logging/Log.300000.Payload.cs index b7f23ef1b..fc85e9ba3 100644 --- a/src/WorkflowManager/Logging/Log.300000.Payload.cs +++ b/src/WorkflowManager/Logging/Log.300000.Payload.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Logging; -namespace Monai.Deploy.WorkflowManager.Logging +namespace Monai.Deploy.WorkflowManager.Common.Logging { public static partial class Log { diff --git a/src/WorkflowManager/Logging/Log.500000.Messaging.cs b/src/WorkflowManager/Logging/Log.500000.Messaging.cs index dcadc5bf2..a79eed69e 100644 --- a/src/WorkflowManager/Logging/Log.500000.Messaging.cs +++ b/src/WorkflowManager/Logging/Log.500000.Messaging.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Logging; -namespace Monai.Deploy.WorkflowManager.Logging +namespace Monai.Deploy.WorkflowManager.Common.Logging { public static partial class Log { diff --git a/src/WorkflowManager/Logging/Log.600000.Dicom.cs b/src/WorkflowManager/Logging/Log.600000.Dicom.cs index 817353cd4..3a9dc909e 100644 --- a/src/WorkflowManager/Logging/Log.600000.Dicom.cs +++ b/src/WorkflowManager/Logging/Log.600000.Dicom.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Logging; -namespace Monai.Deploy.WorkflowManager.Logging +namespace Monai.Deploy.WorkflowManager.Common.Logging { public static partial class Log { diff --git a/src/WorkflowManager/Logging/Log.700000.Artifact.cs b/src/WorkflowManager/Logging/Log.700000.Artifact.cs index 4812c46db..0eceb1e9e 100644 --- a/src/WorkflowManager/Logging/Log.700000.Artifact.cs +++ b/src/WorkflowManager/Logging/Log.700000.Artifact.cs @@ -15,9 +15,9 @@ */ using Microsoft.Extensions.Logging; -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Logging +namespace Monai.Deploy.WorkflowManager.Common.Logging { public static partial class Log { diff --git a/src/WorkflowManager/Logging/Log.800000.Database.cs b/src/WorkflowManager/Logging/Log.800000.Database.cs index f2eb2b320..fc2a9c854 100644 --- a/src/WorkflowManager/Logging/Log.800000.Database.cs +++ b/src/WorkflowManager/Logging/Log.800000.Database.cs @@ -16,9 +16,9 @@ using Microsoft.Extensions.Logging; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Logging +namespace Monai.Deploy.WorkflowManager.Common.Logging { public static partial class Log { diff --git a/src/WorkflowManager/Logging/Log.900000.General.cs b/src/WorkflowManager/Logging/Log.900000.General.cs index 3b052346b..ef474dffa 100644 --- a/src/WorkflowManager/Logging/Log.900000.General.cs +++ b/src/WorkflowManager/Logging/Log.900000.General.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Logging; -namespace Monai.Deploy.WorkflowManager.Logging +namespace Monai.Deploy.WorkflowManager.Common.Logging { public static partial class Log { diff --git a/src/WorkflowManager/Monai.Deploy.WorkflowManager.Services/packages.lock.json b/src/WorkflowManager/Monai.Deploy.WorkflowManager.Services/packages.lock.json index 871d66306..d5185dcdb 100644 --- a/src/WorkflowManager/Monai.Deploy.WorkflowManager.Services/packages.lock.json +++ b/src/WorkflowManager/Monai.Deploy.WorkflowManager.Services/packages.lock.json @@ -713,7 +713,7 @@ "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" } }, - "monai.deploy.workflowmanager.configuration": { + "monai.deploy.workflowmanager.common.configuration": { "type": "Project", "dependencies": { "Monai.Deploy.Messaging": "[0.1.25, )", diff --git a/src/WorkflowManager/MonaiBackgroundService/Logging/Log.400000.cs b/src/WorkflowManager/MonaiBackgroundService/Logging/Log.400000.cs index 7d499a123..b068ceca1 100644 --- a/src/WorkflowManager/MonaiBackgroundService/Logging/Log.400000.cs +++ b/src/WorkflowManager/MonaiBackgroundService/Logging/Log.400000.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.MonaiBackgroundService.Logging +namespace Monai.Deploy.WorkflowManager.Common.MonaiBackgroundService.Logging { public static partial class Log { diff --git a/src/WorkflowManager/MonaiBackgroundService/Worker.cs b/src/WorkflowManager/MonaiBackgroundService/Worker.cs index fcb05d3fa..1e1c26eec 100644 --- a/src/WorkflowManager/MonaiBackgroundService/Worker.cs +++ b/src/WorkflowManager/MonaiBackgroundService/Worker.cs @@ -17,14 +17,14 @@ using Microsoft.Extensions.Options; using Monai.Deploy.Messaging.API; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.MonaiBackgroundService.Logging; -using Monai.Deploy.WorkflowManager.WorkfowExecuter.Common; - -namespace Monai.Deploy.WorkflowManager.MonaiBackgroundService +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.MonaiBackgroundService.Logging; +using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Common; + +namespace Monai.Deploy.WorkflowManager.Common.MonaiBackgroundService { public class Worker : BackgroundService { @@ -80,7 +80,7 @@ public async Task DoWork() await PublishTimeoutUpdateEvent(task, correlationId, task.WorkflowInstanceId).ConfigureAwait(false); // -> task manager - await PublishCancellationEvent(task, correlationId, (string)identity ?? task.ExecutionId, task.WorkflowInstanceId).ConfigureAwait(false); // -> workflow executor + await PublishCancellationEvent(task, correlationId, identity as string ?? task.ExecutionId, task.WorkflowInstanceId).ConfigureAwait(false); // -> workflow executor } } catch (Exception e) diff --git a/src/WorkflowManager/PayloadListener/Extensions/ValidationExtensions.cs b/src/WorkflowManager/PayloadListener/Extensions/ValidationExtensions.cs index 2c850670c..0e1ba99ab 100644 --- a/src/WorkflowManager/PayloadListener/Extensions/ValidationExtensions.cs +++ b/src/WorkflowManager/PayloadListener/Extensions/ValidationExtensions.cs @@ -16,9 +16,9 @@ using Ardalis.GuardClauses; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.PayloadListener.Extensions +namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Extensions { public static class ValidationExtensions { diff --git a/src/WorkflowManager/PayloadListener/Monai.Deploy.WorkflowManager.PayloadListener.csproj b/src/WorkflowManager/PayloadListener/Monai.Deploy.WorkflowManager.PayloadListener.csproj index fd8beeaaf..28fe61cf7 100644 --- a/src/WorkflowManager/PayloadListener/Monai.Deploy.WorkflowManager.PayloadListener.csproj +++ b/src/WorkflowManager/PayloadListener/Monai.Deploy.WorkflowManager.PayloadListener.csproj @@ -36,10 +36,9 @@ - - + + - diff --git a/src/WorkflowManager/PayloadListener/Services/EventPayloadRecieverService.cs b/src/WorkflowManager/PayloadListener/Services/EventPayloadRecieverService.cs index 6de3b9361..67d781124 100644 --- a/src/WorkflowManager/PayloadListener/Services/EventPayloadRecieverService.cs +++ b/src/WorkflowManager/PayloadListener/Services/EventPayloadRecieverService.cs @@ -18,12 +18,12 @@ using Monai.Deploy.Messaging.API; using Monai.Deploy.Messaging.Common; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.PayloadListener.Validators; -using Monai.Deploy.WorkflowManager.WorkfowExecuter.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.PayloadListener.Validators; +using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Services; -namespace Monai.Deploy.WorkflowManager.PayloadListener.Services +namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Services { public class EventPayloadReceiverService : IEventPayloadReceiverService { diff --git a/src/WorkflowManager/PayloadListener/Services/IEventPayloadRecieverService.cs b/src/WorkflowManager/PayloadListener/Services/IEventPayloadRecieverService.cs index cd30ec036..2772687f6 100644 --- a/src/WorkflowManager/PayloadListener/Services/IEventPayloadRecieverService.cs +++ b/src/WorkflowManager/PayloadListener/Services/IEventPayloadRecieverService.cs @@ -16,7 +16,7 @@ using Monai.Deploy.Messaging.Common; -namespace Monai.Deploy.WorkflowManager.PayloadListener.Services +namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Services { public interface IEventPayloadReceiverService { diff --git a/src/WorkflowManager/PayloadListener/Services/PayloadListenerService.cs b/src/WorkflowManager/PayloadListener/Services/PayloadListenerService.cs index 0e203a79a..62a39607a 100644 --- a/src/WorkflowManager/PayloadListener/Services/PayloadListenerService.cs +++ b/src/WorkflowManager/PayloadListener/Services/PayloadListenerService.cs @@ -20,11 +20,11 @@ using Microsoft.Extensions.Options; using Monai.Deploy.Messaging.API; using Monai.Deploy.Messaging.Common; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.Shared; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; -namespace Monai.Deploy.WorkflowManager.PayloadListener.Services +namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Services { public class PayloadListenerService : IHostedService, IMonaiService, IDisposable { @@ -105,7 +105,6 @@ private void SetupPolling() _messageSubscriber.SubscribeAsync(ExportCompleteRoutingKey, ExportCompleteRoutingKey, OnExportCompleteReceivedCallback); _logger.EventSubscription(ServiceName, ExportCompleteRoutingKey); } - private async Task OnWorkflowRequestReceivedCallbackAsync(MessageReceivedEventArgs eventArgs) { diff --git a/src/WorkflowManager/PayloadListener/Validators/EventPayloadValidator.cs b/src/WorkflowManager/PayloadListener/Validators/EventPayloadValidator.cs index f29dead08..e1c2f5682 100644 --- a/src/WorkflowManager/PayloadListener/Validators/EventPayloadValidator.cs +++ b/src/WorkflowManager/PayloadListener/Validators/EventPayloadValidator.cs @@ -18,10 +18,10 @@ using Microsoft.Extensions.Logging; using Monai.Deploy.Messaging.Common; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.PayloadListener.Extensions; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.PayloadListener.Extensions; -namespace Monai.Deploy.WorkflowManager.PayloadListener.Validators +namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Validators { public class EventPayloadValidator : IEventPayloadValidator { diff --git a/src/WorkflowManager/PayloadListener/Validators/IEventPayloadValidator.cs b/src/WorkflowManager/PayloadListener/Validators/IEventPayloadValidator.cs index 77e4f7856..e8835e77b 100644 --- a/src/WorkflowManager/PayloadListener/Validators/IEventPayloadValidator.cs +++ b/src/WorkflowManager/PayloadListener/Validators/IEventPayloadValidator.cs @@ -16,7 +16,7 @@ using Monai.Deploy.Messaging.Events; -namespace Monai.Deploy.WorkflowManager.PayloadListener.Validators +namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Validators { public interface IEventPayloadValidator { diff --git a/src/WorkflowManager/PayloadListener/packages.lock.json b/src/WorkflowManager/PayloadListener/packages.lock.json index f4852353d..39bd70d80 100644 --- a/src/WorkflowManager/PayloadListener/packages.lock.json +++ b/src/WorkflowManager/PayloadListener/packages.lock.json @@ -738,6 +738,22 @@ "resolved": "0.6.2", "contentHash": "jPao/LdUNLUz8rn3H1D8W7wQbZsRZM0iayvWI4xGejJg3XJHT56gcmYdgmCGPdJF1UEBqUjucCRrFB+4HbJsbw==" }, + "Monai.Deploy.WorkflowManager.Common.configuration": { + "type": "Project", + "dependencies": { + "Monai.Deploy.Messaging": "[0.1.25, )", + "Monai.Deploy.Storage": "[0.2.18, )" + } + }, + "Monai.Deploy.WorkflowManager.Common.miscellaneous": { + "type": "Project", + "dependencies": { + "Ardalis.GuardClauses": "[4.1.1, )", + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.21, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "fo-dicom": "[5.0.3, )" + } + }, "monai.deploy.workflowmanager.common": { "type": "Project", "dependencies": { @@ -755,13 +771,6 @@ "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" } }, - "monai.deploy.workflowmanager.configuration": { - "type": "Project", - "dependencies": { - "Monai.Deploy.Messaging": "[0.1.25, )", - "Monai.Deploy.Storage": "[0.2.18, )" - } - }, "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { @@ -785,15 +794,6 @@ "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )" } }, - "monai.deploy.workflowmanager.shared": { - "type": "Project", - "dependencies": { - "Ardalis.GuardClauses": "[4.1.1, )", - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.21, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", - "fo-dicom": "[5.0.3, )" - } - }, "monai.deploy.workflowmanager.storage": { "type": "Project", "dependencies": { @@ -805,13 +805,13 @@ "monai.deploy.workloadmanager.workfowexecuter": { "type": "Project", "dependencies": { + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Miscellaneous": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )", "Monai.Deploy.WorkflowManager.ConditionsResolver": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Database": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Shared": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" } } diff --git a/src/WorkflowManager/Monai.Deploy.WorkflowManager.Services/InformaticsGateway/IInformaticsGatewayService.cs b/src/WorkflowManager/Services/InformaticsGateway/IInformaticsGatewayService.cs similarity index 92% rename from src/WorkflowManager/Monai.Deploy.WorkflowManager.Services/InformaticsGateway/IInformaticsGatewayService.cs rename to src/WorkflowManager/Services/InformaticsGateway/IInformaticsGatewayService.cs index 2b738159d..13a252503 100644 --- a/src/WorkflowManager/Monai.Deploy.WorkflowManager.Services/InformaticsGateway/IInformaticsGatewayService.cs +++ b/src/WorkflowManager/Services/InformaticsGateway/IInformaticsGatewayService.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Services.InformaticsGateway +namespace Monai.Deploy.WorkflowManager.Common.Services.InformaticsGateway { public interface IInformaticsGatewayService { diff --git a/src/WorkflowManager/Monai.Deploy.WorkflowManager.Services/InformaticsGateway/InformaticsGatewayService.cs b/src/WorkflowManager/Services/InformaticsGateway/InformaticsGatewayService.cs similarity index 91% rename from src/WorkflowManager/Monai.Deploy.WorkflowManager.Services/InformaticsGateway/InformaticsGatewayService.cs rename to src/WorkflowManager/Services/InformaticsGateway/InformaticsGatewayService.cs index 57fa76ad6..ad1726f04 100644 --- a/src/WorkflowManager/Monai.Deploy.WorkflowManager.Services/InformaticsGateway/InformaticsGatewayService.cs +++ b/src/WorkflowManager/Services/InformaticsGateway/InformaticsGatewayService.cs @@ -17,10 +17,10 @@ using System.Net; using System.Net.Http.Headers; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Common.Exceptions; -using Monai.Deploy.WorkflowManager.Configuration; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions; +using Monai.Deploy.WorkflowManager.Common.Configuration; -namespace Monai.Deploy.WorkflowManager.Services.InformaticsGateway +namespace Monai.Deploy.WorkflowManager.Common.Services.InformaticsGateway { public class InformaticsGatewayService : IInformaticsGatewayService { diff --git a/src/WorkflowManager/Monai.Deploy.WorkflowManager.Services/Monai.Deploy.WorkflowManager.Services.csproj b/src/WorkflowManager/Services/Monai.Deploy.WorkflowManager.Services.csproj similarity index 93% rename from src/WorkflowManager/Monai.Deploy.WorkflowManager.Services/Monai.Deploy.WorkflowManager.Services.csproj rename to src/WorkflowManager/Services/Monai.Deploy.WorkflowManager.Services.csproj index 477269c41..3aedbd03d 100644 --- a/src/WorkflowManager/Monai.Deploy.WorkflowManager.Services/Monai.Deploy.WorkflowManager.Services.csproj +++ b/src/WorkflowManager/Services/Monai.Deploy.WorkflowManager.Services.csproj @@ -40,7 +40,7 @@ - + diff --git a/src/WorkflowManager/Services/packages.lock.json b/src/WorkflowManager/Services/packages.lock.json new file mode 100644 index 000000000..95972abad --- /dev/null +++ b/src/WorkflowManager/Services/packages.lock.json @@ -0,0 +1,756 @@ +{ + "version": 1, + "dependencies": { + "net6.0": { + "Microsoft.Extensions.Http": { + "type": "Direct", + "requested": "[3.1.0, )", + "resolved": "3.1.0", + "contentHash": "DLigdcV0nYaT6/ly0rnfP80BnXq8NNd/h8/SkfY39uio7Bd9LauVntp6RcRh1Kj23N+uf80GgL7Win6P3BCtoQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0", + "Microsoft.Extensions.Logging": "3.1.0", + "Microsoft.Extensions.Options": "3.1.0" + } + }, + "Ardalis.GuardClauses": { + "type": "Transitive", + "resolved": "4.1.1", + "contentHash": "+UcJ2s+gf2wMNrwadCaHZV2DMcGgBU1t22A+jm40P4MHQRLy9hcleGy5xdVWd4dXZPa5Vlp4TG5xU2rhoDYrBA==" + }, + "AWSSDK.Core": { + "type": "Transitive", + "resolved": "3.7.200.13", + "contentHash": "yiUuhTI8w183euRqhXym1DyhnD/1ccxceRoruCfkIoqY3PAaFgFL8pE4iDLDZa7SUW4M4qZnQ5PMlFr1rrl6zw==" + }, + "AWSSDK.SecurityToken": { + "type": "Transitive", + "resolved": "3.7.201.9", + "contentHash": "yKlTPrvNeDdzkOX82Ydf7MD09Gk3dK74JWZPRWJ3QIxskWVoNTAyLvfVBzbi+/fGnjf8/qKsSzxT7GHLqds37A==", + "dependencies": { + "AWSSDK.Core": "[3.7.200.13, 4.0.0)" + } + }, + "DnsClient": { + "type": "Transitive", + "resolved": "1.6.1", + "contentHash": "4H/f2uYJOZ+YObZjpY9ABrKZI+JNw3uizp6oMzTXwDw6F+2qIPhpRl/1t68O/6e98+vqNiYGu+lswmwdYUy3gg==", + "dependencies": { + "Microsoft.Win32.Registry": "5.0.0" + } + }, + "LightInject": { + "type": "Transitive", + "resolved": "5.4.0", + "contentHash": "w4EjEhNqtzFb0qlScmpjA84Nuv4+OITNGfYCjDhJoLYyw+uagkrrth+e9Hgidv4bMzuNSlJpHPGTHx6DtE4Ixg==", + "dependencies": { + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.AspNetCore.Hosting.Abstractions": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "ubycklv+ZY7Kutdwuy1W4upWcZ6VFR8WUXU7l7B2+mvbDBBPAcfpi+E+Y5GFe+Q157YfA3C49D2GCjAZc7Mobw==", + "dependencies": { + "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.2.0", + "Microsoft.AspNetCore.Http.Abstractions": "2.2.0", + "Microsoft.Extensions.Hosting.Abstractions": "2.2.0" + } + }, + "Microsoft.AspNetCore.Hosting.Server.Abstractions": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "1PMijw8RMtuQF60SsD/JlKtVfvh4NORAhF4wjysdABhlhTrYmtgssqyncR0Stq5vqtjplZcj6kbT4LRTglt9IQ==", + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.2.0", + "Microsoft.Extensions.Configuration.Abstractions": "2.2.0" + } + }, + "Microsoft.AspNetCore.Http.Abstractions": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "Nxs7Z1q3f1STfLYKJSVXCs1iBl+Ya6E8o4Oy1bCxJ/rNI44E/0f6tbsrVqAWfB7jlnJfyaAtIalBVxPKUPQb4Q==", + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.2.0", + "System.Text.Encodings.Web": "4.5.0" + } + }, + "Microsoft.AspNetCore.Http.Features": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "ziFz5zH8f33En4dX81LW84I6XrYXKf9jg6aM39cM+LffN9KJahViKZ61dGMSO2gd3e+qe5yBRwsesvyqlZaSMg==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.2.0" + } + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "3.1.0", + "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "3.1.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "3.1.0", + "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==", + "dependencies": { + "Microsoft.Extensions.Configuration": "3.1.0" + } + }, + "Microsoft.Extensions.DependencyInjection": { + "type": "Transitive", + "resolved": "3.1.0", + "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + }, + "Microsoft.Extensions.Diagnostics.HealthChecks": { + "type": "Transitive", + "resolved": "6.0.21", + "contentHash": "1Qf/tEg6IlzbvCxrc+pZE+ZGrajBdB/+V2+abeAu6lg8wXGHmO8JtnrNqwc5svSbcz3udxinUPyH3vw6ZujKbg==", + "dependencies": { + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "6.0.21", + "Microsoft.Extensions.Hosting.Abstractions": "6.0.0", + "Microsoft.Extensions.Logging.Abstractions": "6.0.4", + "Microsoft.Extensions.Options": "6.0.0" + } + }, + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": { + "type": "Transitive", + "resolved": "6.0.21", + "contentHash": "5FSA1euCRtbRqVgTn2ahgCG9Cy29UQXAZMCJLUlrQQaC5rko0+d/aq9SiFGIDP7cvoWUsatrlNdfc6UyOMV5aA==" + }, + "Microsoft.Extensions.FileProviders.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "0pd4/fho0gC12rQswaGQxbU34jOS1TPS8lZPpkFCH68ppQjHNHYle9iRuHeev1LhrJ94YPvzcRd8UmIuFk23Qw==", + "dependencies": { + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Hosting.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "GcT5l2CYXL6Sa27KCSh0TixsRfADUgth+ojQSD5EkzisZxmGFh7CwzkcYuGwvmXLjr27uWRNrJ2vuuEjMhU05Q==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0" + } + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "3.1.0", + "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==", + "dependencies": { + "Microsoft.Extensions.Configuration.Binder": "3.1.0", + "Microsoft.Extensions.DependencyInjection": "3.1.0", + "Microsoft.Extensions.Logging.Abstractions": "3.1.0", + "Microsoft.Extensions.Options": "3.1.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "6.0.4", + "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + }, + "Microsoft.Extensions.Logging.Configuration": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "ukU1mQGX9+xBsEzpNd13yl4deFVYI+fxxnmKpOhvNZsF+/trCrAUQh+9QM5pPGHbfYkz3lLQ4BXfKCP0502dLw==", + "dependencies": { + "Microsoft.Extensions.Logging": "2.2.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "2.2.0" + } + }, + "Microsoft.Extensions.Logging.Console": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "1eGgcOJ++PMxW6sn++j6U7wsWvhEBm/5ScqBUUBGLRE8M7AHahi9tsxivDMqEXVM3F0/pshHl3kEpMXtw4BeFg==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.2.0", + "Microsoft.Extensions.Logging": "2.2.0", + "Microsoft.Extensions.Logging.Configuration": "2.2.0" + } + }, + "Microsoft.Extensions.Logging.Debug": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "JjqWtshxUujSnxslFccCRAaH8uFOciqXkYdRw+h5MwpC4sUc+ju9yZzvVi6PA5vW09ckv26EkasEvXrofGiaJg==", + "dependencies": { + "Microsoft.Extensions.Logging": "2.2.0" + } + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Options.ConfigurationExtensions": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "d4WS6yVXaw43ffiUnHj8oG1t2B6RbDDiQcgdA+Eq//NlPa3Wd+GTJFKj4OM4eDF3GjVumGr/CEVRS/jcYoF5LA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.2.0", + "Microsoft.Extensions.Configuration.Binder": "2.2.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Options": "2.2.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" + }, + "Microsoft.NETCore.Targets": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==" + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "Monai.Deploy.Messaging": { + "type": "Transitive", + "resolved": "0.1.25", + "contentHash": "CllF1ANCwDV0ACbTU63SGxPPmgsivWP8dxgstAHvwo29w5TUs6PDCc8GcyVDTUO5Yl7/vsifdwcs3P/cYBe69w==", + "dependencies": { + "Ardalis.GuardClauses": "4.1.1", + "Microsoft.Extensions.Diagnostics.HealthChecks": "6.0.21", + "Newtonsoft.Json": "13.0.3", + "System.IO.Abstractions": "17.2.3" + } + }, + "Monai.Deploy.Storage": { + "type": "Transitive", + "resolved": "0.2.18", + "contentHash": "+1JX7QDgVEMqYA0/M1QMr1gtXRC6lEuhBtLfJXWi6cEgh9kOPE0KiHd1AWI7PxBgBbsEBZaNQSvWqShlwcu6bA==", + "dependencies": { + "AWSSDK.SecurityToken": "3.7.201.9", + "Microsoft.Extensions.Diagnostics.HealthChecks": "6.0.21", + "Monai.Deploy.Storage.S3Policy": "0.2.18", + "System.IO.Abstractions": "17.2.3" + } + }, + "Monai.Deploy.Storage.S3Policy": { + "type": "Transitive", + "resolved": "0.2.18", + "contentHash": "+b0nDnf4OoajdH2hB02elRC6G+GjlYnxJC+F3dGbUUXGMtPApzs8c8s/EG4fKzihxsVovJtqnJl7atcaPyl12Q==", + "dependencies": { + "Ardalis.GuardClauses": "4.1.1", + "Newtonsoft.Json": "13.0.3" + } + }, + "Mongo.Migration": { + "type": "Transitive", + "resolved": "3.1.4", + "contentHash": "iA13H1tFH7x3eeKhBAYdgFxzK4gj78hY2pc5yiB08zX3kmhxGT/hp5k+iTDlSlCCyl+pMNpitTUiKiqOI6L6Gg==", + "dependencies": { + "LightInject": "5.4.0", + "Microsoft.AspNetCore.Hosting.Abstractions": "2.2.0", + "Microsoft.AspNetCore.Http.Abstractions": "2.2.0", + "Microsoft.Extensions.DependencyInjection": "2.2.0", + "Microsoft.Extensions.Logging.Abstractions": "2.2.0", + "Microsoft.Extensions.Logging.Console": "2.2.0", + "Microsoft.Extensions.Logging.Debug": "2.2.0", + "Microsoft.Extensions.Options": "2.2.0", + "MongoDB.Driver": "2.13.1", + "NLog": "4.7.11", + "Serilog": "2.8.0", + "Serilog.Extensions.Logging": "2.0.4", + "Serilog.Extensions.Logging.File": "2.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "MongoDB.Bson": { + "type": "Transitive", + "resolved": "2.19.0", + "contentHash": "pGp9F2PWU3Dj54PiXKibuaQ5rphWkfp8/Nsy5jLp2dWZGRGlr3r/Lfwnr0PvfihFfxieUcJZ2z3VeO8RctXcvA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "5.0.0" + } + }, + "MongoDB.Driver": { + "type": "Transitive", + "resolved": "2.19.0", + "contentHash": "W/1YByn5gNGfHBe8AyDURXWKn1Z9xJ9IUjplFcvk8B/jlTlDOkmXgmwjlToIdqr0l8rX594kksjGx3a9if3dsg==", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "2.0.0", + "MongoDB.Bson": "2.19.0", + "MongoDB.Driver.Core": "2.19.0", + "MongoDB.Libmongocrypt": "1.7.0" + } + }, + "MongoDB.Driver.Core": { + "type": "Transitive", + "resolved": "2.19.0", + "contentHash": "KbzJJJc4EsUZ+YQoe7zZL1OxHVC9RjgQMso2LjhZWnlP+IHSON63vKNt7jGarXrOVXK0DqIUrRwQyXMgmqTX5g==", + "dependencies": { + "AWSSDK.SecurityToken": "3.7.100.14", + "DnsClient": "1.6.1", + "Microsoft.Extensions.Logging.Abstractions": "2.0.0", + "MongoDB.Bson": "2.19.0", + "MongoDB.Libmongocrypt": "1.7.0", + "SharpCompress": "0.30.1", + "Snappier": "1.0.0", + "System.Buffers": "4.5.1", + "ZstdSharp.Port": "0.6.2" + } + }, + "MongoDB.Libmongocrypt": { + "type": "Transitive", + "resolved": "1.7.0", + "contentHash": "p9+peTZX63nGHskOLhvhfBtrknxNg1RzXepE07rPozuCGz27bMjCcQyvn2YByg0L3YEcNWdTmI4BlnG/5RF+5Q==" + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" + }, + "NLog": { + "type": "Transitive", + "resolved": "4.7.11", + "contentHash": "A7EpoOjWesV5BPx1cOiBndazZq1VGdagIs6oK8ttcRDl5adCMtHiTqnsD5yYaOrMxOQeCjHBf/w3nKzCmhGbgw==" + }, + "Serilog": { + "type": "Transitive", + "resolved": "2.8.0", + "contentHash": "zjuKXW5IQws43IHX7VY9nURsaCiBYh2kyJCWLJRSWrTsx/syBKHV8MibWe2A+QH3Er0AiwA+OJmO3DhFJDY1+A==", + "dependencies": { + "System.Collections.NonGeneric": "4.3.0" + } + }, + "Serilog.Extensions.Logging": { + "type": "Transitive", + "resolved": "2.0.4", + "contentHash": "C8Vf9Wj1M+wGilChTV+OhE4v5ZCDzQfHjLKj2yNDMkXf/zgUKeAUZfbrVrt/c+flXP8M7/SHWBOXTkuPgubFsA==", + "dependencies": { + "Microsoft.Extensions.Logging": "2.0.0", + "Serilog": "2.3.0" + } + }, + "Serilog.Extensions.Logging.File": { + "type": "Transitive", + "resolved": "2.0.0", + "contentHash": "usO0qr4v9VCMBWiTJ1nQmAbPNCt40FrkDol6CpfCXbsxGZS/hH+YCueF7vvPQ32ATI0GWcMWiKRdjXEE7/HxTQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.0.0", + "Microsoft.Extensions.Configuration.Binder": "2.0.0", + "Serilog": "2.5.0", + "Serilog.Extensions.Logging": "2.0.2", + "Serilog.Formatting.Compact": "1.0.0", + "Serilog.Sinks.Async": "1.1.0", + "Serilog.Sinks.RollingFile": "3.3.0" + } + }, + "Serilog.Formatting.Compact": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "r3QYz02y7+B7Ng30hyJM929OJhem7SsJ4XDUE0Zfptj2MRiQfpPUb5f58juAFjp/TnNeSX2QNzZEnHwLeoJfHQ==", + "dependencies": { + "Serilog": "2.0.0" + } + }, + "Serilog.Sinks.Async": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "xll0Kanz2BkCxuv+F3p1WXr47jdsVM0GU1n1LZvK+18QiRZ/WGFNxSNw9EMKFV5ED5gr7MUpAe6PCMNL1HGUMA==", + "dependencies": { + "Serilog": "2.1.0", + "System.Collections.Concurrent": "4.0.12" + } + }, + "Serilog.Sinks.File": { + "type": "Transitive", + "resolved": "3.2.0", + "contentHash": "VHbo68pMg5hwSWrzLEdZv5b/rYmIgHIRhd4d5rl8GnC5/a8Fr+RShT5kWyeJOXax1el6mNJ+dmHDOVgnNUQxaw==", + "dependencies": { + "Serilog": "2.3.0", + "System.IO": "4.1.0", + "System.IO.FileSystem": "4.0.1", + "System.IO.FileSystem.Primitives": "4.0.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Threading": "4.0.11", + "System.Threading.Timer": "4.0.1" + } + }, + "Serilog.Sinks.RollingFile": { + "type": "Transitive", + "resolved": "3.3.0", + "contentHash": "2lT5X1r3GH4P0bRWJfhA7etGl8Q2Ipw9AACvtAHWRUSpYZ42NGVyHoVs2ALBZ/cAkkS+tA4jl80Zie144eLQPg==", + "dependencies": { + "Serilog.Sinks.File": "3.2.0", + "System.IO": "4.1.0", + "System.IO.FileSystem.Primitives": "4.0.1", + "System.Runtime.InteropServices": "4.1.0", + "System.Text.Encoding.Extensions": "4.0.11" + } + }, + "SharpCompress": { + "type": "Transitive", + "resolved": "0.30.1", + "contentHash": "XqD4TpfyYGa7QTPzaGlMVbcecKnXy4YmYLDWrU+JIj7IuRNl7DH2END+Ll7ekWIY8o3dAMWLFDE1xdhfIWD1nw==" + }, + "Snappier": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "rFtK2KEI9hIe8gtx3a0YDXdHOpedIf9wYCEYtBEmtlyiWVX3XlCNV03JrmmAi/Cdfn7dxK+k0sjjcLv4fpHnqA==" + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections": { + "type": "Transitive", + "resolved": "4.0.11", + "contentHash": "YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Collections.Concurrent": { + "type": "Transitive", + "resolved": "4.0.12", + "contentHash": "2gBcbb3drMLgxlI0fBfxMA31ec6AEyYCHygGse4vxceJan8mRIWeKJ24BFzN7+bi/NFTgdIgufzb94LWO5EERQ==", + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tracing": "4.1.0", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Collections.NonGeneric": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Diagnostics.Debug": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.Tracing": { + "type": "Transitive", + "resolved": "4.1.0", + "contentHash": "vDN1PoMZCkkdNjvZLql592oYJZgS7URcJzJ7bxeBgGtx5UtR5leNm49VmfHGqIffX4FKacHbI3H6UyNSHQknBg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Globalization": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.IO": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.Abstractions": { + "type": "Transitive", + "resolved": "17.2.3", + "contentHash": "VcozGeE4SxIo0cnXrDHhbrh/Gb8KQnZ3BvMelvh+iw0PrIKtuuA46U2Xm4e4pgnaWFgT4RdZfTpWl/WPRdw0WQ==" + }, + "System.IO.FileSystem": { + "type": "Transitive", + "resolved": "4.0.1", + "contentHash": "IBErlVq5jOggAD69bg1t0pJcHaDbJbWNUZTPI96fkYWzwYbN6D9wRHMULLDd9dHsl7C2YsxXL31LMfPI1SWt8w==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.IO.FileSystem.Primitives": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Handles": "4.0.1", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.IO.FileSystem.Primitives": { + "type": "Transitive", + "resolved": "4.0.1", + "contentHash": "kWkKD203JJKxJeE74p8aF8y4Qc9r9WQx4C0cHzHPrY3fv/L/IhWnyCHaFJ3H1QPOH6A93whlQ2vG5nHlBDvzWQ==", + "dependencies": { + "System.Runtime": "4.1.0" + } + }, + "System.Reflection": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Resources.ResourceManager": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Runtime.Extensions": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.Handles": { + "type": "Transitive", + "resolved": "4.0.1", + "contentHash": "nCJvEKguXEvk2ymk1gqj625vVnlK3/xdGzx0vOKicQkoquaTBJTP13AIYkocSUwHCLNBwUbXTqTWGDxBTWpt7g==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.InteropServices": { + "type": "Transitive", + "resolved": "4.1.0", + "contentHash": "16eu3kjHS633yYdkjwShDHZLRNMKVi/s0bY8ODiqJ2RfMhDMAwxZaUaWVnZ2P71kr/or+X9o/xFWtNqz8ivieQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Handles": "4.0.1" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Text.Encoding": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Text.Encoding.Extensions": { + "type": "Transitive", + "resolved": "4.0.11", + "contentHash": "jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "Xg4G4Indi4dqP1iuAiMSwpiWS54ZghzR644OtsRCm/m/lBMG8dUBhLVN7hLm8NNrNTR+iGbshCPTwrvxZPlm4g==" + }, + "System.Threading": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Tasks": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Threading.Timer": { + "type": "Transitive", + "resolved": "4.0.1", + "contentHash": "saGfUV8uqVW6LeURiqxcGhZ24PzuRNaUBtbhVeuUAvky1naH395A/1nY0P2bWvrw/BreRtIB/EzTDkGBpqCwEw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.ValueTuple": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" + }, + "ZstdSharp.Port": { + "type": "Transitive", + "resolved": "0.6.2", + "contentHash": "jPao/LdUNLUz8rn3H1D8W7wQbZsRZM0iayvWI4xGejJg3XJHT56gcmYdgmCGPdJF1UEBqUjucCRrFB+4HbJsbw==" + }, + "Monai.Deploy.WorkflowManager.Common.configuration": { + "type": "Project", + "dependencies": { + "Monai.Deploy.Messaging": "[0.1.25, )", + "Monai.Deploy.Storage": "[0.2.18, )" + } + }, + "monai.deploy.workflowmanager.common": { + "type": "Project", + "dependencies": { + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Database": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" + } + }, + "monai.deploy.workflowmanager.contracts": { + "type": "Project", + "dependencies": { + "Monai.Deploy.Messaging": "[0.1.25, )", + "Mongo.Migration": "[3.1.4, )", + "MongoDB.Bson": "[2.19.0, )" + } + }, + "monai.deploy.workflowmanager.database": { + "type": "Project", + "dependencies": { + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", + "Mongo.Migration": "[3.1.4, )", + "MongoDB.Driver": "[2.19.0, )" + } + }, + "monai.deploy.workflowmanager.logging": { + "type": "Project", + "dependencies": { + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )" + } + }, + "monai.deploy.workflowmanager.storage": { + "type": "Project", + "dependencies": { + "Monai.Deploy.Storage": "[0.2.18, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )" + } + } + } + } +} \ No newline at end of file diff --git a/src/WorkflowManager/Storage/Constants/DicomTagConstants.cs b/src/WorkflowManager/Storage/Constants/DicomTagConstants.cs index a712487c0..5caf044ae 100644 --- a/src/WorkflowManager/Storage/Constants/DicomTagConstants.cs +++ b/src/WorkflowManager/Storage/Constants/DicomTagConstants.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Storage.Constants +namespace Monai.Deploy.WorkflowManager.Common.Storage.Constants { public static class DicomTagConstants { diff --git a/src/WorkflowManager/Storage/Services/DicomService.cs b/src/WorkflowManager/Storage/Services/DicomService.cs index 0c0f7c919..fec7f884c 100644 --- a/src/WorkflowManager/Storage/Services/DicomService.cs +++ b/src/WorkflowManager/Storage/Services/DicomService.cs @@ -19,13 +19,13 @@ using Ardalis.GuardClauses; using Microsoft.Extensions.Logging; using Monai.Deploy.Storage.API; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.Storage.Constants; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.Storage.Constants; using Newtonsoft.Json; using Newtonsoft.Json.Linq; -namespace Monai.Deploy.WorkflowManager.Storage.Services +namespace Monai.Deploy.WorkflowManager.Common.Storage.Services { public class DicomService : IDicomService { diff --git a/src/WorkflowManager/Storage/Services/IDicomService.cs b/src/WorkflowManager/Storage/Services/IDicomService.cs index 6f0765ba5..36edc8fd3 100644 --- a/src/WorkflowManager/Storage/Services/IDicomService.cs +++ b/src/WorkflowManager/Storage/Services/IDicomService.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Storage.Services +namespace Monai.Deploy.WorkflowManager.Common.Storage.Services { public interface IDicomService { diff --git a/src/WorkflowManager/WorkflowExecuter/Common/ArtifactMapper.cs b/src/WorkflowManager/WorkflowExecuter/Common/ArtifactMapper.cs index 96ae835c9..f3b773776 100755 --- a/src/WorkflowManager/WorkflowExecuter/Common/ArtifactMapper.cs +++ b/src/WorkflowManager/WorkflowExecuter/Common/ArtifactMapper.cs @@ -17,11 +17,11 @@ using Ardalis.GuardClauses; using Microsoft.Extensions.Logging; using Monai.Deploy.Storage.API; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.Logging; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Logging; -namespace Monai.Deploy.WorkflowManager.WorkfowExecuter.Common +namespace Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Common { public class ArtifactMapper : IArtifactMapper { @@ -98,7 +98,7 @@ public async Task> ConvertArtifactVariablesToPath(Art var suffix = GetArtifactSuffix(artifact.Value); - var mappedArtifact = await ConvertVariableStringToPath(artifact, variableString, workflowInstanceId, payloadId, bucketId, shouldExistYet, suffix); + var mappedArtifact = await ConvertVariableStringToPath(artifact, variableString ?? string.Empty, workflowInstanceId, payloadId, bucketId, shouldExistYet, suffix); if (mappedArtifact.Equals(default(KeyValuePair)) is false) { @@ -132,7 +132,7 @@ public async Task> ConvertArtifactVariablesToPath(Art return variableStrings[1]; } - private static bool TrimArtifactVariable(string valueString, out string variableString) + private static bool TrimArtifactVariable(string valueString, out string? variableString) { var variableStrings = valueString.Split(" "); @@ -148,7 +148,7 @@ private static bool TrimArtifactVariable(string valueString, out string variable return true; } - private async Task> ConvertVariableStringToPath(Artifact artifact, string variableString, string workflowInstanceId, string payloadId, string bucketId, bool shouldExistYet, string suffix = "") + private async Task> ConvertVariableStringToPath(Artifact artifact, string variableString, string workflowInstanceId, string payloadId, string bucketId, bool shouldExistYet, string? suffix = "") { _logger.ConvertingVariableStringToPath(variableString); if (variableString.StartsWith("context.input.dicom", StringComparison.InvariantCultureIgnoreCase)) diff --git a/src/WorkflowManager/WorkflowExecuter/Common/EventMapper.cs b/src/WorkflowManager/WorkflowExecuter/Common/EventMapper.cs index e65b10c69..27ecf6770 100644 --- a/src/WorkflowManager/WorkflowExecuter/Common/EventMapper.cs +++ b/src/WorkflowManager/WorkflowExecuter/Common/EventMapper.cs @@ -18,27 +18,27 @@ using Monai.Deploy.Messaging.Events; using Monai.Deploy.Messaging.Messages; using Monai.Deploy.Storage.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.WorkfowExecuter.Common +namespace Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Common { public class GenerateTaskUpdateEventParams { - public string CorrelationId { get; set; } + public string CorrelationId { get; set; } = ""; - public string ExecutionId { get; set; } + public string ExecutionId { get; set; } = ""; - public string WorkflowInstanceId { get; set; } + public string WorkflowInstanceId { get; set; } = ""; - public string TaskId { get; set; } + public string TaskId { get; set; } = ""; public FailureReason FailureReason { get; set; } public TaskExecutionStatus TaskExecutionStatus { get; set; } - public Dictionary Stats { get; set; } + public Dictionary Stats { get; set; } = new(); - public string Errors { get; set; } + public string Errors { get; set; } = ""; } public static class EventMapper @@ -170,16 +170,23 @@ public static TaskDispatchEvent ToTaskDispatchEvent(TaskExecution task, }; } - public static ExportRequestEvent ToExportRequestEvent(IList dicomImages, string[] exportDestinations, string taskId, string workflowInstanceId, string correlationId, List? plugins = null) + public static ExportRequestEvent ToExportRequestEvent( + IList dicomImages, + string[] exportDestinations, + string taskId, + string workflowInstanceId, + string correlationId, + List? plugins = null) { + plugins ??= new List(); + Guard.Against.NullOrWhiteSpace(taskId, nameof(taskId)); Guard.Against.NullOrWhiteSpace(workflowInstanceId, nameof(workflowInstanceId)); Guard.Against.NullOrWhiteSpace(correlationId, nameof(correlationId)); Guard.Against.NullOrEmpty(dicomImages, nameof(dicomImages)); Guard.Against.NullOrEmpty(exportDestinations, nameof(exportDestinations)); - plugins ??= new List(); - var Event = new ExportRequestEvent + var request = new ExportRequestEvent { WorkflowInstanceId = workflowInstanceId, ExportTaskId = taskId, @@ -187,8 +194,8 @@ public static ExportRequestEvent ToExportRequestEvent(IList dicomImages, Files = dicomImages, Destinations = exportDestinations }; - Event.PluginAssemblies.AddRange(plugins); - return Event; + request.PluginAssemblies.AddRange(plugins); + return request; } } } diff --git a/src/WorkflowManager/WorkflowExecuter/Common/IArtifactMapper.cs b/src/WorkflowManager/WorkflowExecuter/Common/IArtifactMapper.cs index 13296faf0..12b27f258 100644 --- a/src/WorkflowManager/WorkflowExecuter/Common/IArtifactMapper.cs +++ b/src/WorkflowManager/WorkflowExecuter/Common/IArtifactMapper.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.WorkfowExecuter.Common +namespace Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Common { public interface IArtifactMapper { diff --git a/src/WorkflowManager/WorkflowExecuter/Common/TaskExecutionStatusExtensions.cs b/src/WorkflowManager/WorkflowExecuter/Common/TaskExecutionStatusExtensions.cs index 28dcd5273..187e97218 100644 --- a/src/WorkflowManager/WorkflowExecuter/Common/TaskExecutionStatusExtensions.cs +++ b/src/WorkflowManager/WorkflowExecuter/Common/TaskExecutionStatusExtensions.cs @@ -17,7 +17,7 @@ using Ardalis.GuardClauses; using Monai.Deploy.Messaging.Events; -namespace Monai.Deploy.WorkflowManager.WorkfowExecuter.Common +namespace Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Common { public static class TaskExecutionStatusExtensions { diff --git a/src/WorkflowManager/WorkflowExecuter/Monai.Deploy.WorkloadManager.WorkfowExecuter.csproj b/src/WorkflowManager/WorkflowExecuter/Monai.Deploy.WorkloadManager.WorkfowExecuter.csproj index f882c05f8..8971edfa2 100644 --- a/src/WorkflowManager/WorkflowExecuter/Monai.Deploy.WorkloadManager.WorkfowExecuter.csproj +++ b/src/WorkflowManager/WorkflowExecuter/Monai.Deploy.WorkloadManager.WorkfowExecuter.csproj @@ -36,8 +36,8 @@ - - + + diff --git a/src/WorkflowManager/WorkflowExecuter/Services/IWorkflowExecuterService.cs b/src/WorkflowManager/WorkflowExecuter/Services/IWorkflowExecuterService.cs index 7cf256edf..ace4e0244 100644 --- a/src/WorkflowManager/WorkflowExecuter/Services/IWorkflowExecuterService.cs +++ b/src/WorkflowManager/WorkflowExecuter/Services/IWorkflowExecuterService.cs @@ -15,9 +15,9 @@ */ using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.WorkfowExecuter.Services +namespace Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Services { public interface IWorkflowExecuterService { diff --git a/src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs b/src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs old mode 100755 new mode 100644 index 0a605a493..3be6d0a6c --- a/src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs +++ b/src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs @@ -15,31 +15,29 @@ */ using System.Globalization; -using System.Reflection.Metadata.Ecma335; -using System.Threading.Tasks; using Ardalis.GuardClauses; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Monai.Deploy.Messaging.API; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Messaging.Messages; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Monai.Deploy.Storage.API; using Monai.Deploy.Storage.Configuration; -using Monai.Deploy.WorkflowManager.Common.Extensions; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.ConditionsResolver.Extensions; -using Monai.Deploy.WorkflowManager.ConditionsResolver.Parser; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Constants; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.Shared; -using Monai.Deploy.WorkflowManager.WorkfowExecuter.Common; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Extensions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Extensions; +using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Parser; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Constants; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Common; using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.WorkfowExecuter.Services +namespace Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Services { public class WorkflowExecuterService : IWorkflowExecuterService { @@ -484,12 +482,12 @@ private async Task UpdateWorkflowInstanceStatus(WorkflowInstance workflowI return true; } - private async Task HandleExternalAppAsync(WorkflowRevision workflow, WorkflowInstance workflowInstance, TaskExecution task, string correlationId) { var plugins = _migExternalAppPlugins; await HandleDicomExportAsync(workflow, workflowInstance, task, correlationId, plugins).ConfigureAwait(false); } + private async Task HandleDicomExportAsync(WorkflowRevision workflow, WorkflowInstance workflowInstance, TaskExecution task, string correlationId, List? plugins = null) { plugins ??= new List(); diff --git a/src/WorkflowManager/WorkflowExecuter/packages.lock.json b/src/WorkflowManager/WorkflowExecuter/packages.lock.json index 63b5a4c52..dd2cb8f1a 100644 --- a/src/WorkflowManager/WorkflowExecuter/packages.lock.json +++ b/src/WorkflowManager/WorkflowExecuter/packages.lock.json @@ -738,6 +738,22 @@ "resolved": "0.6.2", "contentHash": "jPao/LdUNLUz8rn3H1D8W7wQbZsRZM0iayvWI4xGejJg3XJHT56gcmYdgmCGPdJF1UEBqUjucCRrFB+4HbJsbw==" }, + "Monai.Deploy.WorkflowManager.Common.configuration": { + "type": "Project", + "dependencies": { + "Monai.Deploy.Messaging": "[0.1.25, )", + "Monai.Deploy.Storage": "[0.2.18, )" + } + }, + "Monai.Deploy.WorkflowManager.Common.miscellaneous": { + "type": "Project", + "dependencies": { + "Ardalis.GuardClauses": "[4.1.1, )", + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.21, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "fo-dicom": "[5.0.3, )" + } + }, "monai.deploy.workflowmanager.common": { "type": "Project", "dependencies": { @@ -755,13 +771,6 @@ "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" } }, - "monai.deploy.workflowmanager.configuration": { - "type": "Project", - "dependencies": { - "Monai.Deploy.Messaging": "[0.1.25, )", - "Monai.Deploy.Storage": "[0.2.18, )" - } - }, "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { @@ -785,15 +794,6 @@ "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )" } }, - "monai.deploy.workflowmanager.shared": { - "type": "Project", - "dependencies": { - "Ardalis.GuardClauses": "[4.1.1, )", - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.21, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", - "fo-dicom": "[5.0.3, )" - } - }, "monai.deploy.workflowmanager.storage": { "type": "Project", "dependencies": { diff --git a/src/WorkflowManager/WorkflowManager/Controllers/AuthenticatedApiControllerBase.cs b/src/WorkflowManager/WorkflowManager/Controllers/AuthenticatedApiControllerBase.cs index 29a1a31ec..5cafe261b 100644 --- a/src/WorkflowManager/WorkflowManager/Controllers/AuthenticatedApiControllerBase.cs +++ b/src/WorkflowManager/WorkflowManager/Controllers/AuthenticatedApiControllerBase.cs @@ -16,9 +16,9 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Configuration; +using Monai.Deploy.WorkflowManager.Common.Configuration; -namespace Monai.Deploy.WorkflowManager.ControllersShared +namespace Monai.Deploy.WorkflowManager.Common.ControllersShared { /// /// Base authenticated api controller base. diff --git a/src/WorkflowManager/WorkflowManager/Controllers/PayloadsController.cs b/src/WorkflowManager/WorkflowManager/Controllers/PayloadsController.cs index a7c7982cd..b31618472 100644 --- a/src/WorkflowManager/WorkflowManager/Controllers/PayloadsController.cs +++ b/src/WorkflowManager/WorkflowManager/Controllers/PayloadsController.cs @@ -22,16 +22,16 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Common.Exceptions; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.Shared.Filter; -using Monai.Deploy.WorkflowManager.Shared.Services; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; - -namespace Monai.Deploy.WorkflowManager.ControllersShared +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; + +namespace Monai.Deploy.WorkflowManager.Common.ControllersShared { /// /// Payloads Controller. diff --git a/src/WorkflowManager/WorkflowManager/Controllers/TaskStatsController.cs b/src/WorkflowManager/WorkflowManager/Controllers/TaskStatsController.cs index 9a468e601..abf3a9116 100644 --- a/src/WorkflowManager/WorkflowManager/Controllers/TaskStatsController.cs +++ b/src/WorkflowManager/WorkflowManager/Controllers/TaskStatsController.cs @@ -23,15 +23,15 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.Shared.Filter; -using Monai.Deploy.WorkflowManager.Shared.Services; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; - -namespace Monai.Deploy.WorkflowManager.ControllersShared +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; + +namespace Monai.Deploy.WorkflowManager.Common.ControllersShared { /// /// Execution stats endpoint. diff --git a/src/WorkflowManager/WorkflowManager/Controllers/TasksController.cs b/src/WorkflowManager/WorkflowManager/Controllers/TasksController.cs index fdbade648..2f7065b8e 100644 --- a/src/WorkflowManager/WorkflowManager/Controllers/TasksController.cs +++ b/src/WorkflowManager/WorkflowManager/Controllers/TasksController.cs @@ -22,16 +22,16 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.Models; -using Monai.Deploy.WorkflowManager.Shared.Filter; -using Monai.Deploy.WorkflowManager.Shared.Services; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Models; -namespace Monai.Deploy.WorkflowManager.ControllersShared +namespace Monai.Deploy.WorkflowManager.Common.ControllersShared { /// /// Tasks Api endpoint controller. diff --git a/src/WorkflowManager/WorkflowManager/Controllers/WFMApiControllerBase.cs b/src/WorkflowManager/WorkflowManager/Controllers/WFMApiControllerBase.cs index 065e4daab..b297a0294 100644 --- a/src/WorkflowManager/WorkflowManager/Controllers/WFMApiControllerBase.cs +++ b/src/WorkflowManager/WorkflowManager/Controllers/WFMApiControllerBase.cs @@ -17,9 +17,9 @@ using System; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Configuration; +using Monai.Deploy.WorkflowManager.Common.Configuration; -namespace Monai.Deploy.WorkflowManager.ControllersShared +namespace Monai.Deploy.WorkflowManager.Common.ControllersShared { /// /// Base Api Controller. diff --git a/src/WorkflowManager/WorkflowManager/Controllers/WorkflowInstanceController.cs b/src/WorkflowManager/WorkflowManager/Controllers/WorkflowInstanceController.cs index a8d6799f7..98703c9e7 100644 --- a/src/WorkflowManager/WorkflowManager/Controllers/WorkflowInstanceController.cs +++ b/src/WorkflowManager/WorkflowManager/Controllers/WorkflowInstanceController.cs @@ -22,15 +22,15 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Common.Exceptions; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.Shared.Filter; -using Monai.Deploy.WorkflowManager.Shared.Services; - -namespace Monai.Deploy.WorkflowManager.ControllersShared +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; + +namespace Monai.Deploy.WorkflowManager.Common.ControllersShared { /// /// Workflow Instances Controller. diff --git a/src/WorkflowManager/WorkflowManager/Controllers/WorkflowsController.cs b/src/WorkflowManager/WorkflowManager/Controllers/WorkflowsController.cs index c823b1736..0f51bd3a5 100644 --- a/src/WorkflowManager/WorkflowManager/Controllers/WorkflowsController.cs +++ b/src/WorkflowManager/WorkflowManager/Controllers/WorkflowsController.cs @@ -22,18 +22,18 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Common.Exceptions; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Contracts.Responses; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.Shared.Filter; -using Monai.Deploy.WorkflowManager.Shared.Services; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; -using Monai.Deploy.WorkflowManager.Validators; - -namespace Monai.Deploy.WorkflowManager.ControllersShared +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Responses; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Validators; + +namespace Monai.Deploy.WorkflowManager.Common.ControllersShared { /// /// Workflows Controller. @@ -324,10 +324,10 @@ public async Task DeleteAsync([FromRoute] string id) } /// - /// + /// Get by AE Title. /// - /// - /// + /// The AE title. + /// The filter. /// A representing the result of the asynchronous operation. [HttpGet("aetitle/{title}")] [ProducesResponseType(typeof(WorkflowRevision), StatusCodes.Status200OK)] diff --git a/src/WorkflowManager/WorkflowManager/Extentions/WorkflowExecutorExtensions.cs b/src/WorkflowManager/WorkflowManager/Extentions/WorkflowExecutorExtensions.cs index 235b2c2f8..80d89d24a 100644 --- a/src/WorkflowManager/WorkflowManager/Extentions/WorkflowExecutorExtensions.cs +++ b/src/WorkflowManager/WorkflowManager/Extentions/WorkflowExecutorExtensions.cs @@ -18,18 +18,18 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Common.Services; -using Monai.Deploy.WorkflowManager.ConditionsResolver.Parser; -using Monai.Deploy.WorkflowManager.PayloadListener.Services; -using Monai.Deploy.WorkflowManager.PayloadListener.Validators; -using Monai.Deploy.WorkflowManager.Services.InformaticsGateway; -using Monai.Deploy.WorkflowManager.Shared; -using Monai.Deploy.WorkflowManager.Storage.Services; -using Monai.Deploy.WorkflowManager.WorkfowExecuter.Common; -using Monai.Deploy.WorkflowManager.WorkfowExecuter.Services; +using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Parser; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.PayloadListener.Services; +using Monai.Deploy.WorkflowManager.Common.PayloadListener.Validators; +using Monai.Deploy.WorkflowManager.Common.Services.InformaticsGateway; +using Monai.Deploy.WorkflowManager.Common.Storage.Services; +using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Common; +using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Services; -namespace Monai.Deploy.WorkflowManager.Services +namespace Monai.Deploy.WorkflowManager.Common.Extensions { /// /// Sets up workflow executor service collection. diff --git a/src/WorkflowManager/WorkflowManager/GlobalSuppressions.cs b/src/WorkflowManager/WorkflowManager/GlobalSuppressions.cs new file mode 100644 index 000000000..ffb032dd9 --- /dev/null +++ b/src/WorkflowManager/WorkflowManager/GlobalSuppressions.cs @@ -0,0 +1,24 @@ +/* + * Copyright 2022 MONAI Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1633:File should have header", Justification = "Licence header must be first.")] +[assembly: SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1201:Elements should appear in the correct order", Justification = "dont like", Scope = "member", Target = "~M:Monai.Deploy.WorkflowManager.Common.Validators.WorkflowValidator.#ctor(Monai.Deploy.WorkflowManager.Common.Interfaces.IWorkflowService,Monai.Deploy.WorkflowManager.Services.InformaticsGateway.IInformaticsGatewayService,Microsoft.Extensions.Logging.ILogger{Monai.Deploy.WorkflowManager.Validators.WorkflowValidator},Microsoft.Extensions.Options.IOptions{Monai.Deploy.WorkflowManager.Configuration.WorkflowManagerOptions})")] diff --git a/src/WorkflowManager/WorkflowManager/Models/TasksRequest.cs b/src/WorkflowManager/WorkflowManager/Models/TasksRequest.cs index 4e16db655..a31f16b2e 100644 --- a/src/WorkflowManager/WorkflowManager/Models/TasksRequest.cs +++ b/src/WorkflowManager/WorkflowManager/Models/TasksRequest.cs @@ -16,7 +16,7 @@ using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.Models +namespace Monai.Deploy.WorkflowManager.Common.Models { /// /// TasksRequest model. diff --git a/src/WorkflowManager/WorkflowManager/Monai.Deploy.WorkflowManager.csproj b/src/WorkflowManager/WorkflowManager/Monai.Deploy.WorkflowManager.csproj old mode 100755 new mode 100644 index ae90fa9d2..d4aaf8047 --- a/src/WorkflowManager/WorkflowManager/Monai.Deploy.WorkflowManager.csproj +++ b/src/WorkflowManager/WorkflowManager/Monai.Deploy.WorkflowManager.csproj @@ -62,16 +62,14 @@ - - - + + - - + diff --git a/src/WorkflowManager/WorkflowManager/Program.cs b/src/WorkflowManager/WorkflowManager/Program.cs index cfa298831..033de4834 100755 --- a/src/WorkflowManager/WorkflowManager/Program.cs +++ b/src/WorkflowManager/WorkflowManager/Program.cs @@ -30,17 +30,17 @@ using Monai.Deploy.Messaging.Configuration; using Monai.Deploy.Storage; using Monai.Deploy.Storage.Configuration; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Database; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.Database.Options; -using Monai.Deploy.WorkflowManager.Database.Repositories; -using Monai.Deploy.WorkflowManager.MonaiBackgroundService; -using Monai.Deploy.WorkflowManager.Services; -using Monai.Deploy.WorkflowManager.Services.DataRetentionService; -using Monai.Deploy.WorkflowManager.Services.Http; -using Monai.Deploy.WorkflowManager.Shared.Services; -using Monai.Deploy.WorkflowManager.Validators; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Database; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Database.Options; +using Monai.Deploy.WorkflowManager.Common.Database.Repositories; +using Monai.Deploy.WorkflowManager.Common.Extensions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.MonaiBackgroundService; +using Monai.Deploy.WorkflowManager.Common.Services.DataRetentionService; +using Monai.Deploy.WorkflowManager.Common.Services.Http; +using Monai.Deploy.WorkflowManager.Common.Validators; using Mongo.Migration.Startup; using Mongo.Migration.Startup.DotNetCore; using MongoDB.Driver; @@ -48,7 +48,7 @@ using NLog.LayoutRenderers; using NLog.Web; -namespace Monai.Deploy.WorkflowManager +namespace Monai.Deploy.WorkflowManager.Common { #pragma warning disable SA1600 // Elements should be documented diff --git a/src/WorkflowManager/WorkflowManager/Services/DataRetentionService/DataRetentionService.cs b/src/WorkflowManager/WorkflowManager/Services/DataRetentionService/DataRetentionService.cs index 7f42fb54c..d2c806614 100644 --- a/src/WorkflowManager/WorkflowManager/Services/DataRetentionService/DataRetentionService.cs +++ b/src/WorkflowManager/WorkflowManager/Services/DataRetentionService/DataRetentionService.cs @@ -19,10 +19,10 @@ using System.Threading.Tasks; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.Shared; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; -namespace Monai.Deploy.WorkflowManager.Services.DataRetentionService +namespace Monai.Deploy.WorkflowManager.Common.Services.DataRetentionService { public class DataRetentionService : IHostedService, IDisposable, IMonaiService { diff --git a/src/WorkflowManager/WorkflowManager/Services/Http/Startup.cs b/src/WorkflowManager/WorkflowManager/Services/Http/Startup.cs index 1c3f625ad..6e1442bc7 100644 --- a/src/WorkflowManager/WorkflowManager/Services/Http/Startup.cs +++ b/src/WorkflowManager/WorkflowManager/Services/Http/Startup.cs @@ -23,15 +23,13 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; using Microsoft.OpenApi.Models; using Monai.Deploy.Security.Authentication.Configurations; using Monai.Deploy.Security.Authentication.Extensions; -using Monai.Deploy.Storage.Configuration; -using Monai.Deploy.WorkflowManager.Shared; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Newtonsoft.Json.Converters; -namespace Monai.Deploy.WorkflowManager.Services.Http +namespace Monai.Deploy.WorkflowManager.Common.Services.Http { /// /// Http Api Endpoint Startup Class. diff --git a/src/WorkflowManager/WorkflowManager/Validators/WorkflowValidator.cs b/src/WorkflowManager/WorkflowManager/Validators/WorkflowValidator.cs index 7299b8128..c1942d524 100644 --- a/src/WorkflowManager/WorkflowManager/Validators/WorkflowValidator.cs +++ b/src/WorkflowManager/WorkflowManager/Validators/WorkflowValidator.cs @@ -22,17 +22,17 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Common.Extensions; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Logging; -using Monai.Deploy.WorkflowManager.Services.InformaticsGateway; -using Monai.Deploy.WorkflowManager.Shared.Utilities; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Logging; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Extensions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Utilities; +using Monai.Deploy.WorkflowManager.Common.Services.InformaticsGateway; using MongoDB.Driver.Linq; -using static Monai.Deploy.WorkflowManager.Shared.ValidationConstants; +using static Monai.Deploy.WorkflowManager.Common.Miscellaneous.ValidationConstants; -namespace Monai.Deploy.WorkflowManager.Validators +namespace Monai.Deploy.WorkflowManager.Common.Validators { /// /// Workflow Validator used for validating workflows. @@ -43,15 +43,33 @@ public class WorkflowValidator /// Separator when joining errors in single string. /// public static readonly string Separator = ";"; + + /// + /// the name of the class for priority. + /// + public static readonly string TaskPriorityClassName = "priority"; + private const string Comma = ", "; private readonly ILogger _logger; private readonly IOptions _options; - public static readonly string TaskPriorityClassName = "priority"; + + /// + /// Gets or sets errors from workflow validation. + /// + private List Errors { get; set; } = new List(); + + private IWorkflowService WorkflowService { get; } + + private IInformaticsGatewayService InformaticsGatewayService { get; } /// /// Initializes a new instance of the class. /// /// The workflow service. + /// service fot the MIG. + /// the logger to use. + /// options. +#pragma warning disable SA1201 // Elements should appear in the correct order public WorkflowValidator( IWorkflowService workflowService, IInformaticsGatewayService informaticsGatewayService, @@ -64,17 +82,10 @@ public WorkflowValidator( _options = options ?? throw new ArgumentNullException(nameof(options)); } - /// - /// Gets or sets errors from workflow validation. - /// - private List Errors { get; set; } = new List(); - - private IWorkflowService WorkflowService { get; } - - private IInformaticsGatewayService InformaticsGatewayService { get; } +#pragma warning restore SA1201 // Elements should appear in the correct order /// - /// used for checking for duplicates, if OrignalName is empty it will be determined as a create + /// Gets the original name, used for checking for duplicates, if OrignalName is empty it will be determined as a create /// workflow attempt and check for duplicates or if this is not equal to workflow template it will /// check for duplicates. /// if workflow name is same as original name then we response user is updating workflow some other way @@ -86,7 +97,7 @@ public WorkflowValidator( /// Returns single string of errors. /// /// List of errors. - /// + /// string. public static string ErrorsToString(List errors) { return string.Join(Separator, errors); @@ -112,8 +123,6 @@ public void Reset() /// - Unreferenced tasks other than root task. /// /// Workflow to validate. - /// Check for duplicates. - /// Used to check for duplicate name if it is a new workflow. /// if any validation errors are produced while validating workflow. public async Task> ValidateWorkflow(Workflow workflow) { @@ -472,7 +481,7 @@ private void ValidateEmailTask(TaskObject currentTask) if (emailsSpecified) { var emails = currentTask.Args[RecipientEmails] ?? string.Empty; - var formattedEmails = emails.Split(',').Where(e => !string.IsNullOrWhiteSpace(e.Trim())); + var formattedEmails = emails.Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries); if (!formattedEmails.Any()) { @@ -513,7 +522,7 @@ private void ValidateEmailTask(TaskObject currentTask) if (rolesSpecified) { var roles = currentTask.Args[RecipientRoles] ?? string.Empty; - var formattedRoles = roles.Split(',').Where(r => !string.IsNullOrWhiteSpace(r.Trim())); + var formattedRoles = roles.Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries); if (!formattedRoles.Any()) { @@ -529,7 +538,7 @@ private void ValidateEmailTask(TaskObject currentTask) } var metadataValues = currentTask.Args[MetadataValues] ?? string.Empty; - var formattedMetadataValues = metadataValues.Split(',').Where(m => !string.IsNullOrWhiteSpace(m.Trim())); + var formattedMetadataValues = metadataValues.Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries); if (!formattedMetadataValues.Any()) { @@ -537,7 +546,7 @@ private void ValidateEmailTask(TaskObject currentTask) return; } - var disallowedTags = _options.Value.DicomTagsDisallowed.Split(',').Select(t => t.Trim()); + var disallowedTags = _options.Value.DicomTagsDisallowed.Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries); var intersect = formattedMetadataValues.Intersect(disallowedTags); if (intersect.Any()) diff --git a/src/WorkflowManager/WorkflowManager/packages.lock.json b/src/WorkflowManager/WorkflowManager/packages.lock.json index 0b83c5f87..3a74206e6 100755 --- a/src/WorkflowManager/WorkflowManager/packages.lock.json +++ b/src/WorkflowManager/WorkflowManager/packages.lock.json @@ -1182,6 +1182,22 @@ "resolved": "0.6.2", "contentHash": "jPao/LdUNLUz8rn3H1D8W7wQbZsRZM0iayvWI4xGejJg3XJHT56gcmYdgmCGPdJF1UEBqUjucCRrFB+4HbJsbw==" }, + "Monai.Deploy.WorkflowManager.Common.configuration": { + "type": "Project", + "dependencies": { + "Monai.Deploy.Messaging": "[0.1.25, )", + "Monai.Deploy.Storage": "[0.2.18, )" + } + }, + "Monai.Deploy.WorkflowManager.Common.miscellaneous": { + "type": "Project", + "dependencies": { + "Ardalis.GuardClauses": "[4.1.1, )", + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.21, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "fo-dicom": "[5.0.3, )" + } + }, "monai.deploy.workflowmanager.common": { "type": "Project", "dependencies": { @@ -1199,13 +1215,6 @@ "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" } }, - "monai.deploy.workflowmanager.configuration": { - "type": "Project", - "dependencies": { - "Monai.Deploy.Messaging": "[0.1.25, )", - "Monai.Deploy.Storage": "[0.2.18, )" - } - }, "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { @@ -1239,11 +1248,10 @@ "monai.deploy.workflowmanager.payloadlistener": { "type": "Project", "dependencies": { - "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Miscellaneous": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Shared": "[1.0.0, )", "Monai.Deploy.WorkloadManager.WorkfowExecuter": "[1.0.0, )" } }, @@ -1251,17 +1259,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Http": "[3.1.0, )", - "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )" - } - }, - "monai.deploy.workflowmanager.shared": { - "type": "Project", - "dependencies": { - "Ardalis.GuardClauses": "[4.1.1, )", - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.21, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", - "fo-dicom": "[5.0.3, )" + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )" } }, "monai.deploy.workflowmanager.storage": { @@ -1275,13 +1274,13 @@ "monai.deploy.workloadmanager.workfowexecuter": { "type": "Project", "dependencies": { + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Miscellaneous": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )", "Monai.Deploy.WorkflowManager.ConditionsResolver": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Database": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Shared": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" } } diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/Hooks.cs b/tests/IntegrationTests/TaskManager.IntegrationTests/Hooks.cs old mode 100755 new mode 100644 index e1b5d5d34..4bb3f7008 --- a/tests/IntegrationTests/TaskManager.IntegrationTests/Hooks.cs +++ b/tests/IntegrationTests/TaskManager.IntegrationTests/Hooks.cs @@ -16,7 +16,7 @@ using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.Extensions.Configuration; -using Monai.Deploy.Common.TaskManager.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.TaskManager.IntegrationTests.Support; using Monai.Deploy.WorkflowManager.TaskManager.IntegrationTests.POCO; using Monai.Deploy.WorkflowManager.TaskManager.IntegrationTests.Support; using Polly; @@ -24,6 +24,9 @@ namespace Monai.Deploy.WorkflowManager.TaskManager.IntegrationTests { +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. /// /// Hooks class for setting up the integration tests. /// @@ -46,7 +49,7 @@ public Hooks(IObjectContainer objectContainer) public static RabbitConsumer? EmailConsumer { get; private set; } private static MinioClientUtil? MinioClient { get; set; } private static MongoClientUtil? MongoClient { get; set; } - public static AsyncRetryPolicy RetryPolicy { get; private set; } + public static AsyncRetryPolicy? RetryPolicy { get; private set; } private IObjectContainer ObjectContainer { get; set; } private static HttpClient? HttpClient { get; set; } private static WebApplicationFactory? WebApplicationFactory { get; set; } @@ -178,3 +181,6 @@ public static void TearDownRabbit() } } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/Monai.Deploy.WorkflowManager.TaskManager.IntegrationTests.csproj b/tests/IntegrationTests/TaskManager.IntegrationTests/Monai.Deploy.WorkflowManager.TaskManager.IntegrationTests.csproj old mode 100755 new mode 100644 diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/POCO/TestExecutionConfig.cs b/tests/IntegrationTests/TaskManager.IntegrationTests/POCO/TestExecutionConfig.cs index 191282246..a6b066925 100644 --- a/tests/IntegrationTests/TaskManager.IntegrationTests/POCO/TestExecutionConfig.cs +++ b/tests/IntegrationTests/TaskManager.IntegrationTests/POCO/TestExecutionConfig.cs @@ -20,70 +20,70 @@ internal static class TestExecutionConfig { public static class RabbitConfig { - public static string Host { get; set; } + public static string? Host { get; set; } public static int WebPort { get; set; } = 15672; public static int Port { get; set; } = 5672; - public static string User { get; set; } + public static string? User { get; set; } - public static string Password { get; set; } + public static string? Password { get; set; } - public static string Exchange { get; set; } + public static string? Exchange { get; set; } - public static string VirtualHost { get; set; } + public static string? VirtualHost { get; set; } - public static string WorkflowRequestQueue { get; set; } + public static string? WorkflowRequestQueue { get; set; } - public static string TaskDispatchQueue { get; set; } + public static string? TaskDispatchQueue { get; set; } - public static string TaskCallbackQueue { get; set; } + public static string? TaskCallbackQueue { get; set; } - public static string WorkflowCompleteQueue { get; set; } + public static string? WorkflowCompleteQueue { get; set; } - public static string TaskUpdateQueue { get; set; } + public static string? TaskUpdateQueue { get; set; } - public static string ClinicalReviewQueue { get; set; } + public static string? ClinicalReviewQueue { get; set; } - public static string EmailQueue { get; set; } + public static string? EmailQueue { get; set; } - public static object TaskCancellationQueue { get; set; } + public static object? TaskCancellationQueue { get; set; } } public static class ApiConfig { - public static string TaskManagerBaseUrl { get; set; } + public static string? TaskManagerBaseUrl { get; set; } } public static class MongoConfig { - public static string ConnectionString { get; set; } + public static string? ConnectionString { get; set; } public static int Port { get; set; } - public static string User { get; set; } + public static string? User { get; set; } - public static string Password { get; set; } + public static string? Password { get; set; } - public static string Database { get; set; } + public static string? Database { get; set; } - public static string TaskDispatchEventCollection { get; set; } + public static string? TaskDispatchEventCollection { get; set; } - public static string ExecutionStatsCollection { get; set; } + public static string? ExecutionStatsCollection { get; set; } } public static class MinioConfig { - public static string Endpoint { get; set; } + public static string? Endpoint { get; set; } - public static string AccessKey { get; set; } + public static string? AccessKey { get; set; } - public static string AccessToken { get; set; } + public static string? AccessToken { get; set; } - public static string Bucket { get; set; } + public static string? Bucket { get; set; } - public static string Region { get; set; } + public static string? Region { get; set; } } } } diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/StepDefinitions/CommonApiDefinitions.cs b/tests/IntegrationTests/TaskManager.IntegrationTests/StepDefinitions/CommonApiDefinitions.cs index 76cf814ee..bc87b2024 100644 --- a/tests/IntegrationTests/TaskManager.IntegrationTests/StepDefinitions/CommonApiDefinitions.cs +++ b/tests/IntegrationTests/TaskManager.IntegrationTests/StepDefinitions/CommonApiDefinitions.cs @@ -57,7 +57,7 @@ public void ThenIWillGetAResponse(string expectedCode) [Then(@"I will get a health check response message")] public void ThenIWillGetAHealthCheckResponseMessage() { - Snapshot.Match(DataHelper.FormatResponse(ApiHelper.Response?.Content.ReadAsStringAsync().Result)); + Snapshot.Match(DataHelper.FormatResponse(ApiHelper.Response?.Content.ReadAsStringAsync().Result ?? string.Empty)); } [Then(@"I will get a status message (.*)")] @@ -69,7 +69,9 @@ public void ThenIWillGetAMessage(string expectedMessage) [Then(@"I will get a health check response status message (.*)")] public async Task ThenIWillGetAHealthCheckResponseMessage(string expectedMessage) { +#pragma warning disable CS8602 // Dereference of a possibly null reference. var contentMessage = await ApiHelper.Response?.Content.ReadAsStringAsync(); +#pragma warning restore CS8602 // Dereference of a possibly null reference. contentMessage.Should().NotBeNull(); var response = JsonConvert.DeserializeObject(contentMessage); response.Should().NotBeNull(); diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/StepDefinitions/CommonStepDefinitions.cs b/tests/IntegrationTests/TaskManager.IntegrationTests/StepDefinitions/CommonStepDefinitions.cs index 885401fce..f812e9670 100644 --- a/tests/IntegrationTests/TaskManager.IntegrationTests/StepDefinitions/CommonStepDefinitions.cs +++ b/tests/IntegrationTests/TaskManager.IntegrationTests/StepDefinitions/CommonStepDefinitions.cs @@ -15,7 +15,7 @@ */ using System.Reflection; -using Monai.Deploy.Common.TaskManager.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.TaskManager.IntegrationTests.Support; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Messaging.Messages; using Monai.Deploy.WorkflowManager.TaskManager.API.Models; @@ -47,7 +47,7 @@ public CommonStepDefinitions(ObjectContainer objectContainer, ISpecFlowOutputHel public async Task GivenIHaveAnInputDICOMFileSavedInMinIO(string name) { var taskDispatch = DataHelper.GetTaskDispatchTestData(name); - var localPath = Path.Combine(GetDirectory(), "DICOMs", "dcm"); + var localPath = Path.Combine(GetDirectory() ?? string.Empty, "DICOMs", "dcm"); await MinioClient.AddFileToStorage(localPath, taskDispatch.Inputs.First().RelativeRootPath); } @@ -118,7 +118,7 @@ public void ATaskDispatchEventIsPublished(string name) _outputHelper.WriteLine($"Successfully published TaskDispatchEvent with name={name}"); } - private string GetDirectory() + private string? GetDirectory() { return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); } diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/ApiHelper.cs b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/ApiHelper.cs index 09494d9a4..88f90cdb4 100644 --- a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/ApiHelper.cs +++ b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/ApiHelper.cs @@ -15,8 +15,10 @@ */ using System.Web; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; - +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. namespace Monai.Deploy.WorkflowManager.TaskManager.IntegrationTests.Support { [Binding] @@ -27,9 +29,9 @@ public ApiHelper(HttpClient httpClient) Client = httpClient; } - public HttpResponseMessage Response { get; private set; } + public HttpResponseMessage? Response { get; private set; } - public HttpRequestMessage Request { get; set; } + public HttpRequestMessage? Request { get; set; } public HttpClient Client { get; } @@ -71,3 +73,6 @@ public void AddQueryParams(Dictionary dict) } } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/Assertions.cs b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/Assertions.cs index 0a476f361..3560f01a8 100644 --- a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/Assertions.cs +++ b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/Assertions.cs @@ -36,10 +36,10 @@ public void AssertClinicalReviewEvent(ClinicalReviewRequestEvent clinicalReviewR clinicalReviewRequestEvent.ExecutionId.Should().Be(taskDispatchEvent.ExecutionId); clinicalReviewRequestEvent.CorrelationId.Should().Be(taskDispatchEvent.CorrelationId); clinicalReviewRequestEvent.TaskId.Should().Be(taskDispatchEvent.TaskId); - clinicalReviewRequestEvent.PatientMetadata.PatientId.Should().Be(GetTaskPluginArguments(taskDispatchEvent, "patient_id")); - clinicalReviewRequestEvent.PatientMetadata.PatientName.Should().Be(GetTaskPluginArguments(taskDispatchEvent, "patient_name")); - clinicalReviewRequestEvent.PatientMetadata.PatientSex.Should().Be(GetTaskPluginArguments(taskDispatchEvent, "patient_sex")); - clinicalReviewRequestEvent.PatientMetadata.PatientDob.Should().Be(GetTaskPluginArguments(taskDispatchEvent, "patient_dob")); + clinicalReviewRequestEvent.PatientMetadata!.PatientId.Should().Be(GetTaskPluginArguments(taskDispatchEvent, "patient_id")); + clinicalReviewRequestEvent.PatientMetadata!.PatientName.Should().Be(GetTaskPluginArguments(taskDispatchEvent, "patient_name")); + clinicalReviewRequestEvent.PatientMetadata!.PatientSex.Should().Be(GetTaskPluginArguments(taskDispatchEvent, "patient_sex")); + clinicalReviewRequestEvent.PatientMetadata!.PatientDob.Should().Be(GetTaskPluginArguments(taskDispatchEvent, "patient_dob")); if (Boolean.TryParse(GetTaskPluginArguments(taskDispatchEvent, "notifications"), out bool result)) { @@ -134,11 +134,9 @@ public void AssertTaskUpdateEventFromTaskCallback(TaskUpdateEvent taskUpdateEven Output.WriteLine("Details of TaskUpdateEvent matches TaskCallbackEvent"); } - private string GetTaskPluginArguments(TaskDispatchEvent taskDispatchEvent, string key, bool emptyIfNull = false) + private string? GetTaskPluginArguments(TaskDispatchEvent taskDispatchEvent, string key, bool emptyIfNull = false) { - string? dictValue; - - taskDispatchEvent.TaskPluginArguments.TryGetValue(key, out dictValue); + taskDispatchEvent.TaskPluginArguments.TryGetValue(key, out var dictValue); return emptyIfNull ? dictValue ?? string.Empty : dictValue; } diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/DataHelper.cs b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/DataHelper.cs index 66090e0a2..d26ddce99 100644 --- a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/DataHelper.cs +++ b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/DataHelper.cs @@ -53,7 +53,7 @@ public DataHelper(IObjectContainer objectContainer) public TaskCallbackEvent GetTaskCallbackTestData(string name) { - var taskCallback = TaskCallbacksTestData.TestData.FirstOrDefault(c => c.Name.Equals(name)); + var taskCallback = TaskCallbacksTestData.TestData.FirstOrDefault(c => c.Name!.Equals(name)); if (taskCallback != null) { @@ -75,7 +75,7 @@ public TaskCallbackEvent GetTaskCallbackTestData(string name) public TaskDispatchEvent GetTaskDispatchTestData(string name) { - var taskDispatch = TaskDispatchesTestData.TestData.FirstOrDefault(c => c.Name.Equals(name)); + var taskDispatch = TaskDispatchesTestData.TestData.FirstOrDefault(c => c.Name!.Equals(name)); if (taskDispatch != null) { diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/HttpRequestMessageExtensions.cs b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/HttpRequestMessageExtensions.cs index 69b8169aa..0c921785c 100644 --- a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/HttpRequestMessageExtensions.cs +++ b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/HttpRequestMessageExtensions.cs @@ -17,7 +17,7 @@ using System.Net.Http.Formatting; using System.Text; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support { public static class HttpRequestMessageExtensions { diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/MinioClientUtil.cs b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/MinioClientUtil.cs index 9caa90255..6f4297107 100644 --- a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/MinioClientUtil.cs +++ b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/MinioClientUtil.cs @@ -1,88 +1,88 @@ -/* - * Copyright 2022 MONAI Consortium - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -using System.Reactive.Linq; -using Minio; +/* + * Copyright 2022 MONAI Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System.Reactive.Linq; +using Minio; using Monai.Deploy.WorkflowManager.TaskManager.IntegrationTests.POCO; -using Polly; -using Polly.Retry; - -namespace Monai.Deploy.Common.TaskManager.IntegrationTests.Support -{ +using Polly; +using Polly.Retry; + +namespace Monai.Deploy.WorkflowManager.Common.TaskManager.IntegrationTests.Support +{ #pragma warning disable CS0618 // Type or member is obsolete - public class MinioClientUtil - { - private AsyncRetryPolicy RetryPolicy { get; set; } - private MinioClient Client { get; set; } - - public MinioClientUtil() - { - Client = new MinioClient() - .WithEndpoint(TestExecutionConfig.MinioConfig.Endpoint) - .WithCredentials( - TestExecutionConfig.MinioConfig.AccessKey, - TestExecutionConfig.MinioConfig.AccessToken - ).Build(); - - RetryPolicy = Policy.Handle().WaitAndRetryAsync(retryCount: 10, sleepDurationProvider: _ => TimeSpan.FromMilliseconds(500)); - } - - public async Task CreateBucket(string bucketName) - { - await RetryPolicy.ExecuteAsync(async () => - { - try - { + public class MinioClientUtil + { + private AsyncRetryPolicy RetryPolicy { get; set; } + private MinioClient Client { get; set; } + + public MinioClientUtil() + { + Client = new MinioClient() + .WithEndpoint(TestExecutionConfig.MinioConfig.Endpoint) + .WithCredentials( + TestExecutionConfig.MinioConfig.AccessKey, + TestExecutionConfig.MinioConfig.AccessToken + ).Build(); + + RetryPolicy = Policy.Handle().WaitAndRetryAsync(retryCount: 10, sleepDurationProvider: _ => TimeSpan.FromMilliseconds(500)); + } + + public async Task CreateBucket(string bucketName) + { + await RetryPolicy.ExecuteAsync(async () => + { + try + { if (await Client.BucketExistsAsync(new BucketExistsArgs().WithBucket(bucketName))) - { - try - { - var listOfKeys = new List(); - var listArgs = new ListObjectsArgs() - .WithBucket(bucketName) - .WithPrefix("") - .WithRecursive(true); - - var objs = await Client.ListObjectsAsync(listArgs).ToList(); - foreach (var obj in objs) - { + { + try + { + var listOfKeys = new List(); + var listArgs = new ListObjectsArgs() + .WithBucket(bucketName) + .WithPrefix("") + .WithRecursive(true); + + var objs = await Client.ListObjectsAsync(listArgs).ToList(); + foreach (var obj in objs) + { await Client.RemoveObjectAsync(new RemoveObjectArgs().WithBucket(bucketName).WithObject(obj.Key)); - } - } - catch (Exception) + } + } + catch (Exception) { - } - } - else - { + } + } + else + { await Client.MakeBucketAsync(new MakeBucketArgs().WithBucket(bucketName)); - } - } - catch (Exception e) - { - Console.WriteLine($"[Bucket] Exception: {e}"); - if (e.Message != "MinIO API responded with message=Your previous request to create the named bucket succeeded and you already own it.") - { + } + } + catch (Exception e) + { + Console.WriteLine($"[Bucket] Exception: {e}"); + if (e.Message != "MinIO API responded with message=Your previous request to create the named bucket succeeded and you already own it.") + { throw; - } - } - }); - } - + } + } + }); + } + public async Task AddFileToStorage(string localPath, string folderPath) { await RetryPolicy.ExecuteAsync(async () => @@ -129,33 +129,33 @@ await Client.PutObjectAsync( throw new Exception($"[Bucket] Exception: {e}"); } }); - } - - public async Task GetFile(string bucketName, string objectName, string fileName) - { + } + + public async Task GetFile(string bucketName, string objectName, string fileName) + { await Client.GetObjectAsync(new GetObjectArgs().WithBucket(bucketName).WithObject(objectName).WithFile(fileName)); - } - - public async Task DeleteBucket(string bucketName) - { + } + + public async Task DeleteBucket(string bucketName) + { bool found = await Client.BucketExistsAsync(new BucketExistsArgs().WithBucket(bucketName)); - if (found) - { - await RetryPolicy.ExecuteAsync(async () => - { + if (found) + { + await RetryPolicy.ExecuteAsync(async () => + { await Client.RemoveBucketAsync(new RemoveBucketArgs().WithBucket(bucketName)); - }); - } - } - - public async Task RemoveObjects(string bucketName, string objectName) - { + }); + } + } + + public async Task RemoveObjects(string bucketName, string objectName) + { bool found = await Client.BucketExistsAsync(new BucketExistsArgs().WithBucket(bucketName)); - if (found) - { + if (found) + { await Client.RemoveObjectAsync(new RemoveObjectArgs().WithBucket(bucketName).WithObject(objectName)); - } - } - } -} + } + } + } +} #pragma warning restore CS0618 // Type or member is obsolete diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/RabbitConsumer.cs b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/RabbitConsumer.cs index 90a6e671b..11cb653b5 100644 --- a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/RabbitConsumer.cs +++ b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/RabbitConsumer.cs @@ -31,8 +31,10 @@ public RabbitConsumer(string exchange, string routingKey) private string Exchange { get; set; } private string RoutingKey { get; set; } - - public T GetMessage() +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. + public T? GetMessage() { using (var channel = RabbitConnectionFactory.Connection?.CreateModel()) { @@ -55,4 +57,7 @@ public T GetMessage() return default; } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. } diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/RabbitPublisher.cs b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/RabbitPublisher.cs index a89ca8c23..af284ba22 100644 --- a/tests/IntegrationTests/TaskManager.IntegrationTests/Support/RabbitPublisher.cs +++ b/tests/IntegrationTests/TaskManager.IntegrationTests/Support/RabbitPublisher.cs @@ -42,7 +42,7 @@ public void PublishMessage(Message message) { "CreationDateTime", message.CreationDateTime.ToString("o") } }; - var properties = channel.CreateBasicProperties(); + var properties = channel!.CreateBasicProperties(); properties.Persistent = true; properties.ContentType = message.ContentType; properties.MessageId = message.MessageId; diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/TestData/Helper.cs b/tests/IntegrationTests/TaskManager.IntegrationTests/TestData/Helper.cs index cba85fb7f..e675469cf 100644 --- a/tests/IntegrationTests/TaskManager.IntegrationTests/TestData/Helper.cs +++ b/tests/IntegrationTests/TaskManager.IntegrationTests/TestData/Helper.cs @@ -20,7 +20,7 @@ public static class Helper { public static TaskDispatchTestData GetTaskDispatchByName(string name) { - var taskDispatchTestData = TaskDispatchesTestData.TestData.FirstOrDefault(c => c.Name.Contains(name)); + var taskDispatchTestData = TaskDispatchesTestData.TestData.FirstOrDefault(c => c.Name!.Contains(name)); if (taskDispatchTestData != null) { diff --git a/tests/IntegrationTests/TaskManager.IntegrationTests/TestData/TaskCallbackTestData.cs b/tests/IntegrationTests/TaskManager.IntegrationTests/TestData/TaskCallbackTestData.cs index 706f5a7a0..958240251 100644 --- a/tests/IntegrationTests/TaskManager.IntegrationTests/TestData/TaskCallbackTestData.cs +++ b/tests/IntegrationTests/TaskManager.IntegrationTests/TestData/TaskCallbackTestData.cs @@ -24,7 +24,9 @@ public class TaskCallbackTestData public TaskCallbackEvent? TaskCallbackEvent { get; set; } } - +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. public static class TaskCallbacksTestData { public static List TestData = new List() @@ -172,3 +174,6 @@ public static class TaskCallbacksTestData }; } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Hooks.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Hooks.cs index 432c4931a..effc431dc 100755 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Hooks.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Hooks.cs @@ -17,8 +17,8 @@ using BoDi; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; -using Monai.Deploy.WorkflowManager.IntegrationTests.POCO; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.POCO; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; using Polly; using Polly.Retry; using TechTalk.SpecFlow.Infrastructure; @@ -52,6 +52,9 @@ public Hooks(IObjectContainer objectContainer) private IObjectContainer ObjectContainer { get; set; } private static IHost? Host { get; set; } +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. + /// /// Runs before all tests to create static implementions of Rabbit and Mongo clients as well as starting the WorkflowManager using WebApplicationFactory. /// @@ -176,5 +179,12 @@ public static void StopServices() { Host?.StopAsync(); } + [AfterTestRun(Order = 2)] + public static void RemoveQueues() + { + RabbitConnectionFactory.DeleteAllQueues(); + } } } +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8604 // Possible null reference argument. diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Models/InformaticsGateway/WorkflowRequestMessage.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Models/InformaticsGateway/WorkflowRequestMessage.cs index 89f5d63da..47f7c2c3b 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Models/InformaticsGateway/WorkflowRequestMessage.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Models/InformaticsGateway/WorkflowRequestMessage.cs @@ -16,7 +16,7 @@ using Newtonsoft.Json; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Models +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Models { public class WorkflowRequestMessage { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Models/Storage/VirtuaFileInfo.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Models/Storage/VirtuaFileInfo.cs index 1d7efc5f7..f32c70ce0 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Models/Storage/VirtuaFileInfo.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Models/Storage/VirtuaFileInfo.cs @@ -16,7 +16,7 @@ using Ardalis.GuardClauses; -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.Models.Storage +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.Models.Storage { /// /// Represents a file stored on the virtual storage device. diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.csproj b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.csproj old mode 100755 new mode 100644 diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/POCO/HealthCheckResponse.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/POCO/HealthCheckResponse.cs index d4ea5ee93..db7f1d6fe 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/POCO/HealthCheckResponse.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/POCO/HealthCheckResponse.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.IntegrationTests.POCO +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.POCO { internal class HealthCheckResponse { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/POCO/TestExecutionConfig.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/POCO/TestExecutionConfig.cs index 0c388df97..a8a021653 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/POCO/TestExecutionConfig.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/POCO/TestExecutionConfig.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.IntegrationTests.POCO +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.POCO { internal static class TestExecutionConfig { @@ -40,9 +40,11 @@ public static class RabbitConfig public static string TaskCallbackQueue { get; set; } = string.Empty; +#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. public static string ExportCompleteQueue { get; set; } - public static string ExportRequestQueue { get; set; } + public static string ExportRequestQueue { get; set; } +#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. public static string TaskUpdateQueue { get; set; } = string.Empty; } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/CommonApiStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/CommonApiStepDefinitions.cs index d85d59fe2..f39f8cb83 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/CommonApiStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/CommonApiStepDefinitions.cs @@ -16,13 +16,13 @@ using System.Net; using BoDi; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.IntegrationTests.POCO; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.POCO; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; using Newtonsoft.Json; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.StepDefinitions +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.StepDefinitions { [Binding] public class CommonStepDefinitions @@ -101,7 +101,9 @@ public void ThenIWillReceiveTheCorrectErrorMessage(string message) [Then(@"I will get a health check response status message (.*)")] public async Task ThenIWillGetAHealthCheckResponseMessage(string expectedMessage) { +#pragma warning disable CS8602 // Dereference of a possibly null reference. var contentMessage = await ApiHelper.Response?.Content.ReadAsStringAsync(); +#pragma warning restore CS8602 // Dereference of a possibly null reference. contentMessage.Should().NotBeNull(); var response = JsonConvert.DeserializeObject(contentMessage); response.Should().NotBeNull(); diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/ExecutionStatsStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/ExecutionStatsStepDefinitions.cs index dbb67b75a..d4f3741f9 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/ExecutionStatsStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/ExecutionStatsStepDefinitions.cs @@ -15,14 +15,14 @@ */ using BoDi; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; -using Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData; using Polly; using Polly.Retry; using Snapshooter.NUnit; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.StepDefinitions +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.StepDefinitions { [Binding] public class ExecutionStatsStepDefinitions @@ -33,7 +33,8 @@ public class ExecutionStatsStepDefinitions private Assertions Assertions { get; set; } private RetryPolicy RetryExecutionStats { get; set; } private ApiHelper ApiHelper { get; set; } - +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. public ExecutionStatsStepDefinitions(ObjectContainer objectContainer, ISpecFlowOutputHelper outputHelper) { MongoClient = objectContainer.Resolve(); @@ -141,5 +142,7 @@ private List TransformToListOfString(string commaSeparatedList) { return commaSeparatedList.Split(",").Select(t => t.Trim()).ToList(); } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. } } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/PayloadApiStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/PayloadApiStepDefinitions.cs index 47de21b08..f877d4afe 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/PayloadApiStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/PayloadApiStepDefinitions.cs @@ -15,13 +15,13 @@ */ using BoDi; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; using Newtonsoft.Json; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.StepDefinitions +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.StepDefinitions { [Binding] public class PayloadApiStepDefinitions diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/PayloadCollectionStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/PayloadCollectionStepDefinitions.cs index 58bff3015..2f0ffce06 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/PayloadCollectionStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/PayloadCollectionStepDefinitions.cs @@ -15,14 +15,14 @@ */ using BoDi; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; -using Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData; using Polly; using Polly.Retry; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.StepDefinitions +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.StepDefinitions { [Binding] public class PayloadCollectionStepDefinitions diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TaskDestinationsStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TaskDestinationsStepDefinitions.cs index eb427bb83..3cff585c4 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TaskDestinationsStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TaskDestinationsStepDefinitions.cs @@ -15,12 +15,12 @@ */ using BoDi; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; using Polly; using Polly.Retry; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.StepDefinitions +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.StepDefinitions { [Binding] public class TaskDestinationsStepDefinitions diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TaskStatusUpdateStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TaskStatusUpdateStepDefinitions.cs index e5a271f6a..2bc636546 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TaskStatusUpdateStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TaskStatusUpdateStepDefinitions.cs @@ -17,13 +17,13 @@ using BoDi; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Messaging.Messages; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; -using Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.Support; using Polly; using Polly.Retry; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.StepDefinitions +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.StepDefinitions { [Binding] public class TaskStatusUpdateStepDefinitions @@ -164,7 +164,8 @@ public void ThenICanSeeTheStatusOfTheTaskIsUpdated() [Then(@"Clinical Review Metadata is added to workflow instance")] public void ClinicalReviewMetadataIsAddedtoWorkflowInstance() { - +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. RetryPolicy.Execute(() => { _outputHelper.WriteLine($"Retrieving workflow instance by id={DataHelper.TaskUpdateEvent.WorkflowInstanceId}"); @@ -320,5 +321,7 @@ public void ThenExportRequestMessageIsPublished(int count) }); } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. } } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TasksApiStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TasksApiStepDefinitions.cs index 220f06cfd..603545872 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TasksApiStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TasksApiStepDefinitions.cs @@ -15,14 +15,14 @@ */ using BoDi; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; using Newtonsoft.Json; using NUnit.Framework; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.StepDefinitions +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.StepDefinitions { [Binding] public class TasksApiStepDefinitions @@ -50,7 +50,9 @@ public void ThenICanSeeTasksAreReturned(int number) { var result = ApiHelper.Response.Content.ReadAsStringAsync().Result; var response = JsonConvert.DeserializeObject>>(result); +#pragma warning disable CS8602 // Dereference of a possibly null reference. Assert.AreEqual(number, response?.Data.Count); +#pragma warning restore CS8602 // Dereference of a possibly null reference. } } } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowApiStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowApiStepDefinitions.cs index c9040daf7..a16cd630b 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowApiStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowApiStepDefinitions.cs @@ -15,13 +15,13 @@ */ using BoDi; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; using Newtonsoft.Json; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.StepDefinitions +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.StepDefinitions { [Binding] public class WorkflowApiStepDefinitions @@ -44,7 +44,10 @@ public void ThenICanSeeWorkflowsAreReturned() { var result = ApiHelper.Response.Content.ReadAsStringAsync().Result; var workflowRevisions = JsonConvert.DeserializeObject>>(result); +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. Assertions.AssertWorkflowList(DataHelper.WorkflowRevisions, workflowRevisions.Data); + } [Then(@"Pagination is working correctly for the (.*) workflow")] @@ -84,5 +87,7 @@ public void ThenTheDeletedWorkflowIsNotReturned() var workflowRevisions = JsonConvert.DeserializeObject>>(result); workflowRevisions?.Data.Should().BeNullOrEmpty(); } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. } } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowInstanceStepDefintions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowInstanceStepDefintions.cs index 4669b1fc5..0b3666990 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowInstanceStepDefintions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowInstanceStepDefintions.cs @@ -16,14 +16,14 @@ using BoDi; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; -using Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.Support; using Polly; using Polly.Retry; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.StepDefinitions +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.StepDefinitions { [Binding] internal class WorkflowInstanceStepDefintions diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowInstancesApiStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowInstancesApiStepDefinitions.cs index 540c30c76..785cb6762 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowInstancesApiStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowInstancesApiStepDefinitions.cs @@ -15,14 +15,14 @@ */ using BoDi; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; using MongoDB.Driver; using Newtonsoft.Json; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.StepDefinitions +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.StepDefinitions { [Binding] public class WorkflowInstancesApiStepDefinitions @@ -41,13 +41,16 @@ public WorkflowInstancesApiStepDefinitions(ObjectContainer objectContainer, ISpe private DataHelper DataHelper { get; } private readonly ISpecFlowOutputHelper _outputHelper; private MongoClientUtil MongoClient { get; set; } +#pragma warning disable CS8602 // Dereference of a possibly null reference. [Then(@"I can see expected workflow instances are returned")] public void ThenICanSeeExpectedWorkflowInstancesAreReturned() { var result = ApiHelper.Response.Content.ReadAsStringAsync().Result; var actualWorkflowInstances = JsonConvert.DeserializeObject>>(result); +#pragma warning disable CS8604 // Possible null reference argument. Assertions.AssertWorkflowInstanceList(DataHelper.WorkflowInstances, actualWorkflowInstances.Data); + } [Then(@"I can see expected workflow instance is returned")] @@ -199,6 +202,7 @@ public void ThenICanSeeTheTaskIsAcknowledgedOnWorkflowInstance(string taskId, st var task = updatedWorkflowInstance.Tasks.FirstOrDefault(i => i.TaskId.Equals(taskId)); task.AcknowledgedTaskErrors.Should().BeCloseTo(DateTime.UtcNow, new TimeSpan(50000000)); + } [Then(@"I can see the workflow Instance (.*) error is acknowledged")] @@ -242,3 +246,5 @@ public void ThenICanSeeTheWorkflowInstanceErrorIsNotAcknowledged(string workflow } } } +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8604 // Possible null reference argument. diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowRequestStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowRequestStepDefinitions.cs index 6a6ad2480..64d25e445 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowRequestStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowRequestStepDefinitions.cs @@ -16,15 +16,15 @@ using BoDi; using Monai.Deploy.Messaging.Messages; -using Monai.Deploy.WorkflowManager.IntegrationTests.Models; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; -using Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.Support; using MongoDB.Driver; using Polly; using Polly.Retry; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.StepDefinitions +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.StepDefinitions { [Binding] public class WorkflowRequestStepDefinitions @@ -121,12 +121,14 @@ public void TaskDispatchEventIsPublished(int count) if (string.IsNullOrEmpty(DataHelper.TaskUpdateEvent.ExecutionId)) { +#pragma warning disable CS8604 // Possible null reference argument. Assertions.AssertTaskDispatchEvent(taskDispatchEvent, workflowInstance, workflowRevision, DataHelper.WorkflowRequestMessage, null); } else { Assertions.AssertTaskDispatchEvent(taskDispatchEvent, workflowInstance, workflowRevision, null, DataHelper.TaskUpdateEvent); } +#pragma warning restore CS8604 // Possible null reference argument. } }); } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowTaskArtifactStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowTaskArtifactStepDefinitions.cs index 160eaefc8..d7e927eba 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowTaskArtifactStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowTaskArtifactStepDefinitions.cs @@ -15,10 +15,10 @@ */ using BoDi; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.StepDefinitions +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.StepDefinitions { [Binding] public class WorkflowTaskArtifactStepDefinitions @@ -71,7 +71,9 @@ public void ThenInputArtifactsAreMapped() if (seededTask == null) { +#pragma warning disable CS8602 // Dereference of a possibly null reference. var workflowTask = workflowRevision.Workflow.Tasks.First(x => x.Id.Equals(task.TaskId)); +#pragma warning restore CS8602 // Dereference of a possibly null reference. Assertions.AssertInputArtifactsForWorkflowInstance(workflowTask, PayloadId, task); } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/ApiHelper.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/ApiHelper.cs index 6d70f2649..662cc70ec 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/ApiHelper.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/ApiHelper.cs @@ -16,12 +16,14 @@ using System.Web; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support { [Binding] public class ApiHelper { +#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. public ApiHelper(HttpClient httpClient) + { Client = httpClient; } @@ -60,7 +62,9 @@ public void SetUrl(Uri url) => public void AddQueryParams(Dictionary dict) { +#pragma warning disable CS8604 // Possible null reference argument. var builder = new UriBuilder(Request.RequestUri); +#pragma warning restore CS8604 // Possible null reference argument. var query = HttpUtility.ParseQueryString(builder.Query); foreach (var kv in dict) { @@ -69,4 +73,5 @@ public void AddQueryParams(Dictionary dict) SetUrl(new Uri(builder.ToString() + "?" + query.ToString())); } } +#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/Assertions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/Assertions.cs index 49ae8be6e..a93c9e974 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/Assertions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/Assertions.cs @@ -17,12 +17,12 @@ using System.Web; using BoDi; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.IntegrationTests.Models; -using Monai.Deploy.WorkflowManager.IntegrationTests.POCO; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.POCO; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support { public class Assertions { @@ -52,10 +52,10 @@ public void AssertTaskPayload(List workflowInstances, TaskExec #pragma warning disable CS8604 // Possible null reference argument. taskExecution.Should().BeEquivalentTo(response); return; -#pragma warning restore CS8604 // Possible null reference argument. } } +#pragma warning disable CS8602 // Dereference of a possibly null reference. throw new Exception($"TaskId={response.TaskId} was not found in any workflow instances"); } @@ -81,6 +81,7 @@ public void AssertWorkflowInstanceMatchesExpectedWorkflow(WorkflowInstance workf } } +#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. public void AssertInputArtifactsForWorkflowInstance(TaskObject workflowRevisionTask, string payloadId, TaskExecution workflowInstanceTask, TaskExecution previousTaskExecution = null) { foreach (var workflowArtifact in workflowRevisionTask.Artifacts.Input) @@ -400,7 +401,9 @@ public static void AssertPagination(int count, string? queries, T? Response) private static void GetPropertyValues(T? Response, Type? responseType, out ICollection data, out object? totalPages, out object? pageSize, out object? totalRecords, out object? pageNumber) { +#pragma warning disable CS8601 // Possible null reference assignment. data = responseType?.GetProperty("Data")?.GetValue(Response, null) as ICollection; +#pragma warning restore CS8601 // Possible null reference assignment. totalPages = responseType?.GetProperty("TotalPages")?.GetValue(Response, null); pageSize = responseType?.GetProperty("PageSize")?.GetValue(Response, null); totalRecords = responseType?.GetProperty("TotalRecords")?.GetValue(Response, null); @@ -527,7 +530,7 @@ public void AssertTaskUpdateEventFromTaskDispatch(TaskUpdateEvent taskUpdateEven Output.WriteLine("Details of TaskUpdateEvent matches TaskDispatchEvent"); } - public void AssertExecutionStats(ExecutionStats executionStats, TaskDispatchEvent taskDispatchEvent = null, TaskCallbackEvent taskCallbackEvent = null) + public void AssertExecutionStats(ExecutionStats executionStats, TaskDispatchEvent? taskDispatchEvent = null, TaskCallbackEvent taskCallbackEvent = null) { Output.WriteLine("Asserting details of ExecutionStats"); if (taskDispatchEvent != null) @@ -549,3 +552,6 @@ public void AssertExecutionStats(ExecutionStats executionStats, TaskDispatchEven } } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type. diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/DataHelper.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/DataHelper.cs index 88a5d6471..446847381 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/DataHelper.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/DataHelper.cs @@ -15,17 +15,17 @@ */ using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.IntegrationTests.Models; -using Monai.Deploy.WorkflowManager.Models; -using Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Models; +using Monai.Deploy.WorkflowManager.Common.Models; +using Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData; using Newtonsoft.Json; using Polly; using Polly.Retry; #pragma warning disable CS8602 // Dereference of a possibly null reference. -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support { public class DataHelper { @@ -52,7 +52,9 @@ public class DataHelper public TaskDispatchEvent TaskDispatchEvent { get; set; } public TaskCallbackEvent TaskCallbackEvent { get; set; } +#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. public DataHelper(RabbitConsumer taskDispatchConsumer, RabbitConsumer exportRequestConsumer, MongoClientUtil mongoClient) +#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. { ExportRequestConsumer = exportRequestConsumer; TaskDispatchConsumer = taskDispatchConsumer; diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/HttpRequestMessageExtensions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/HttpRequestMessageExtensions.cs index 8ac2e2987..144c5492b 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/HttpRequestMessageExtensions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/HttpRequestMessageExtensions.cs @@ -17,7 +17,7 @@ using System.Net.Http.Formatting; using System.Text; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support { public static class HttpRequestMessageExtensions { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/JsonFormatter.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/JsonFormatter.cs index 7add4177c..db0485873 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/JsonFormatter.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/JsonFormatter.cs @@ -17,7 +17,7 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support { internal static class JsonFormatter { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MessageReceiver.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MessageReceiver.cs index 73a5ba3d4..3d5aa1976 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MessageReceiver.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MessageReceiver.cs @@ -16,7 +16,7 @@ using RabbitMQ.Client; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support { [Binding] public class MessageReceiver : DefaultBasicConsumer diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MinioClientUtil.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MinioClientUtil.cs index e866065d5..279540f28 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MinioClientUtil.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MinioClientUtil.cs @@ -17,12 +17,12 @@ using System.Reactive.Linq; using Minio; using Monai.Deploy.Storage.API; -using Monai.Deploy.WorkflowManager.IntegrationTests.POCO; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.POCO; using Polly; using Polly.Retry; using File = System.IO.File; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support { public class MinioClientUtil { @@ -71,6 +71,7 @@ await RetryPolicy.ExecuteAsync(async () => { await Client.MakeBucketAsync(new MakeBucketArgs().WithBucket(bucketName)); } + } catch (Exception e) { @@ -216,4 +217,5 @@ public async Task> ListFilesFromDir(string bucketName, st }).ConfigureAwait(false); } } +#pragma warning restore CS0618 // Type or member is obsolete } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MinioDataSeeding.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MinioDataSeeding.cs index f96f15a8a..0cf44901c 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MinioDataSeeding.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MinioDataSeeding.cs @@ -15,11 +15,11 @@ */ using System.Reflection; -using Monai.Deploy.WorkflowManager.IntegrationTests.POCO; -using Monai.Deploy.WorkflowManager.IntegrationTests.Support; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.POCO; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.Support { public class MinioDataSeeding { @@ -44,13 +44,13 @@ public async Task SeedWorkflowInputArtifacts(string payloadId, string? folderNam { OutputHelper.WriteLine($"folderName not specified. Seeding Minio with objects from **/DICOMs/full_patient_metadata/dcm"); - localPath = Path.Combine(GetDirectory(), "DICOMs", "full_patient_metadata", "dcm"); + localPath = Path.Combine(GetDirectory() ?? "", "DICOMs", "full_patient_metadata", "dcm"); } else { OutputHelper.WriteLine($"Seeding Minio with artifacts from **/DICOMs/{folderName}/dcm"); - localPath = Path.Combine(GetDirectory(), "DICOMs", folderName, "dcm"); + localPath = Path.Combine(GetDirectory() ?? "", "DICOMs", folderName, "dcm"); } OutputHelper.WriteLine($"Seeding objects to {TestExecutionConfig.MinioConfig.Bucket}/{payloadId}/dcm"); @@ -66,13 +66,13 @@ public async Task SeedTaskOutputArtifacts(string payloadId, string workflowInsta { OutputHelper.WriteLine($"folderName not specified. Seeding Minio with objects from **/DICOMs/output_metadata/dcm"); - localPath = Path.Combine(GetDirectory(), "DICOMs", "output_metadata", "dcm"); + localPath = Path.Combine(GetDirectory() ?? "", "DICOMs", "output_metadata", "dcm"); } else { OutputHelper.WriteLine($"Seeding Minio with objects from **/DICOMs/{folderName}/dcm"); - localPath = Path.Combine(GetDirectory(), "DICOMs", folderName, "dcm"); + localPath = Path.Combine(GetDirectory() ?? "", "DICOMs", folderName, "dcm"); } OutputHelper.WriteLine($"Seeding objects to {TestExecutionConfig.MinioConfig.Bucket}/{payloadId}/workflows/{workflowInstanceId}/{executionId}/"); @@ -80,7 +80,7 @@ public async Task SeedTaskOutputArtifacts(string payloadId, string workflowInsta OutputHelper.WriteLine($"Objects seeded"); } - private string GetDirectory() + private string? GetDirectory() { return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MongoClientUtil.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MongoClientUtil.cs index e0e689b37..f959a3c6c 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MongoClientUtil.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MongoClientUtil.cs @@ -14,14 +14,14 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.IntegrationTests.POCO; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.POCO; using MongoDB.Driver; using Polly; using Polly.Retry; using TechTalk.SpecFlow.Infrastructure; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support { public class MongoClientUtil { @@ -63,7 +63,7 @@ public void DeleteWorkflowRevisionDocument(string id) { RetryMongo.Execute(() => { - WorkflowRevisionCollection.DeleteOne(x => x.Id.Equals(id)); + WorkflowRevisionCollection.DeleteOne(x => x.Id!.Equals(id)); }); } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/RabbitConnectionFactory.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/RabbitConnectionFactory.cs index b087d33e0..b1391e7be 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/RabbitConnectionFactory.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/RabbitConnectionFactory.cs @@ -14,10 +14,10 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.IntegrationTests.POCO; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.POCO; using RabbitMQ.Client; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support { public static class RabbitConnectionFactory { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/RabbitConsumer.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/RabbitConsumer.cs index c00c5981c..045a1c65f 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/RabbitConsumer.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/RabbitConsumer.cs @@ -17,18 +17,39 @@ using System.Text; using Newtonsoft.Json; using RabbitMQ.Client; +using RabbitMQ.Client.Exceptions; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support { public class RabbitConsumer { public RabbitConsumer(IModel channel, string exchange, string routingKey) { + var arguments = new Dictionary() + { + { "x-queue-type", "quorum" }, + { "x-delivery-limit", Deliverylimit }, + { "x-dead-letter-exchange", DeadLetterExchange } + }; + + var deadLetterQueue = $"{RoutingKey}-dead-letter"; + + var deadLetterExists = QueueExists(deadLetterQueue); + if (deadLetterExists.exists == false) + { + channel.QueueDeclare(queue: deadLetterQueue, durable: true, exclusive: false, autoDelete: false); + } + Exchange = exchange; RoutingKey = routingKey; Channel = channel; - Queue = Channel.QueueDeclare(queue: routingKey, durable: true, exclusive: false, autoDelete: false); + Queue = Channel.QueueDeclare(queue: routingKey, durable: true, exclusive: false, autoDelete: false, arguments); Channel.QueueBind(Queue.QueueName, Exchange, RoutingKey); + if (!string.IsNullOrEmpty(deadLetterQueue)) + { + channel.QueueBind(deadLetterQueue, DeadLetterExchange, RoutingKey); + } + Channel.ExchangeDeclare(Exchange, ExchangeType.Topic, durable: true); } @@ -40,7 +61,11 @@ public RabbitConsumer(IModel channel, string exchange, string routingKey) private IModel Channel { get; set; } - public T GetMessage() + private string DeadLetterExchange { get; set; } = "monaideploy-dead-letter"; + + private int Deliverylimit { get; set; } = 5; + + public T? GetMessage() { var basicGetResult = Channel.BasicGet(Queue.QueueName, true); @@ -60,5 +85,27 @@ public void CloseConnection() { Channel.Close(); } + private (bool exists, bool accessable) QueueExists(string queueName) + { + var testChannel = RabbitConnectionFactory.GetRabbitConnection(); + + try + { + var testRun = testChannel!.QueueDeclarePassive(queue: queueName); + } + catch (OperationInterruptedException operationInterruptedException) + { + ///RabbitMQ node that hosts the previously created dead-letter queue is unavailable + if (operationInterruptedException.Message.Contains("down or inaccessible")) + { + return (true, false); + } + else + { + return (false, true); + } + } + return (true, true); + } } } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/RabbitPublisher.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/RabbitPublisher.cs index 7f12863b7..23a84a6bf 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/RabbitPublisher.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/RabbitPublisher.cs @@ -17,7 +17,7 @@ using Monai.Deploy.Messaging.Messages; using RabbitMQ.Client; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support { public class RabbitPublisher { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/WorkflowExecutorStartup.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/WorkflowExecutorStartup.cs index 4056207f8..85a1bf129 100755 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/WorkflowExecutorStartup.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/WorkflowExecutorStartup.cs @@ -29,23 +29,23 @@ using Monai.Deploy.Messaging.Configuration; using Monai.Deploy.Storage; using Monai.Deploy.Storage.Configuration; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.Database.Options; -using Monai.Deploy.WorkflowManager.Database.Repositories; -using Monai.Deploy.WorkflowManager.IntegrationTests.POCO; -using Monai.Deploy.WorkflowManager.Services; -using Monai.Deploy.WorkflowManager.Services.DataRetentionService; -using Monai.Deploy.WorkflowManager.Services.Http; -using Monai.Deploy.WorkflowManager.Validators; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Database.Options; +using Monai.Deploy.WorkflowManager.Common.Database.Repositories; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.POCO; +using Monai.Deploy.WorkflowManager.Common.Services.DataRetentionService; +using Monai.Deploy.WorkflowManager.Common.Services.Http; +using Monai.Deploy.WorkflowManager.Common.Validators; using Mongo.Migration.Startup.DotNetCore; using Mongo.Migration.Startup; using MongoDB.Driver; using NLog.Web; -using Monai.Deploy.WorkflowManager.Shared.Services; -using Monai.Deploy.WorkflowManager.Database; +using Monai.Deploy.WorkflowManager.Common.Database; +using Monai.Deploy.WorkflowManager.Common.Extensions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; -namespace Monai.Deploy.WorkflowManager.IntegrationTests.Support +namespace Monai.Deploy.WorkflowManager.Common.IntegrationTests.Support { public static class WorkflowExecutorStartup { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/ExecutionStatsTestData.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/ExecutionStatsTestData.cs index a2b2db625..a26d8989a 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/ExecutionStatsTestData.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/ExecutionStatsTestData.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData { public class ExecutionStatTestData { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/ExportCompleteTestData.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/ExportCompleteTestData.cs index 43b8b8a15..1d9cd131c 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/ExportCompleteTestData.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/ExportCompleteTestData.cs @@ -16,7 +16,7 @@ using Monai.Deploy.Messaging.Events; -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData { public class ExportCompleteTestData { @@ -34,6 +34,7 @@ public static class ExportCompletesTestData Name = "Export_Complete_Message_for_export_multi_dest_2_Succeeded", ExportCompleteEvent = new ExportCompleteEvent() { +#pragma warning disable CS8602 // Dereference of a possibly null reference. WorkflowInstanceId = Helper.GetWorkflowInstanceByName("Workflow_Instance_for_export_multi_dest_2").WorkflowInstance.Id, ExportTaskId = Helper.GetWorkflowByName("Workflow_Revision_for_export_multi_dest_2").WorkflowRevision.Workflow.Tasks[1].Id, Status = ExportStatus.Success, @@ -89,3 +90,4 @@ public static class ExportCompletesTestData }; } } +#pragma warning restore CS8602 // Dereference of a possibly null reference. diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/Helper.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/Helper.cs index a00ced7d2..59779ac80 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/Helper.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/Helper.cs @@ -14,7 +14,7 @@ * limitations under the License. */ #pragma warning disable CS8602 // Dereference of a possibly null reference. -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData { public static class Helper { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/PatientTestData.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/PatientTestData.cs index 905e2e208..476ef2e39 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/PatientTestData.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/PatientTestData.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData { public class PatientTestData { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/PayloadTestData.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/PayloadTestData.cs index 0a6d00e33..975f7556f 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/PayloadTestData.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/PayloadTestData.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData { public class PayloadTestData { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/TaskRequestTestData.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/TaskRequestTestData.cs index 064acc4a6..ae4df825c 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/TaskRequestTestData.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/TaskRequestTestData.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Models; +using Monai.Deploy.WorkflowManager.Common.Models; -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData { public class TaskRequestTestData { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/TaskUpdateTestData.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/TaskUpdateTestData.cs index d9f450199..cec174750 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/TaskUpdateTestData.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/TaskUpdateTestData.cs @@ -16,7 +16,7 @@ using Monai.Deploy.Messaging.Events; #pragma warning disable CS8602 // Dereference of a possibly null reference. -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData { public class TaskUpdateTestData { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowInstanceTestData.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowInstanceTestData.cs index a65abe56f..4836fd9ec 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowInstanceTestData.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowInstanceTestData.cs @@ -15,12 +15,12 @@ */ using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.IntegrationTests.POCO; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.POCO; #pragma warning disable CS8602 // Dereference of a possibly null reference. #pragma warning disable CS8601 // Possible null reference assignment. -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData { public class WorkflowInstanceTestData { @@ -36,6 +36,7 @@ public static WorkflowInstance CreateWorkflowInstance(string workflowName) var id = Guid.NewGuid().ToString(); var payloadId = Guid.NewGuid().ToString(); var executionId = Guid.NewGuid().ToString(); +#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. return new WorkflowInstance() { Id = id, @@ -2216,3 +2217,4 @@ public static WorkflowInstance CreateWorkflowInstance(string workflowName) } #pragma warning restore CS8601 // Possible null reference assignment. #pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type. diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowObjectTestData.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowObjectTestData.cs index f7ffbbedc..ad16a6f69 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowObjectTestData.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowObjectTestData.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData { public class WorkflowObjectTestData { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowRequestTestData.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowRequestTestData.cs index 44d72c73b..409ccb772 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowRequestTestData.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowRequestTestData.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.IntegrationTests.Models; +using Monai.Deploy.WorkflowManager.Common.IntegrationTests.Models; #pragma warning disable CS8602 // Dereference of a possibly null reference. -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData { public class WorkflowRequestTestData { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowRevisionTestData.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowRevisionTestData.cs index b662979f4..834bfd113 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowRevisionTestData.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/TestData/WorkflowRevisionTestData.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.WorkflowExecutor.IntegrationTests.TestData +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecutor.IntegrationTests.TestData { public class WorkflowRevisionTestData { diff --git a/tests/Shared/VerifyLogExtension.cs b/tests/Shared/VerifyLogExtension.cs index 9ed52e1be..435eb666a 100644 --- a/tests/Shared/VerifyLogExtension.cs +++ b/tests/Shared/VerifyLogExtension.cs @@ -13,19 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +#pragma warning disable IDE0005 // Using directive is unnecessary. using System; +#pragma warning restore IDE0005 // Using directive is unnecessary. using System.Diagnostics.CodeAnalysis; using Microsoft.Extensions.Logging; using Moq; #pragma warning disable CS8620 // Disable "CS8620 -namespace Monai.Deploy.WorkflowManager.SharedTest +namespace Monai.Deploy.WorkflowManager.Common.SharedTest { [ExcludeFromCodeCoverage] public static class VerifyLogExtension { +#pragma warning disable CS8602 // Dereference of a possibly null reference. public static Mock VerifyLoggingMessageEndsWith(this Mock logger, string expectedMessage, LogLevel expectedLogLevel = LogLevel.Debug, Times? times = null) { times ??= Times.Once(); @@ -136,6 +138,5 @@ public static Mock> VerifyLogging(this Mock> logger, Lo return logger; } } - #pragma warning restore CS8602 // Dereference of a possibly null reference. } diff --git a/tests/UnitTests/Common.Tests/Extensions/CollectionExtensionsTests.cs b/tests/UnitTests/Common.Tests/Extensions/CollectionExtensionsTests.cs index dfa0abf31..aa3594930 100644 --- a/tests/UnitTests/Common.Tests/Extensions/CollectionExtensionsTests.cs +++ b/tests/UnitTests/Common.Tests/Extensions/CollectionExtensionsTests.cs @@ -14,10 +14,10 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Common.Extensions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Extensions; using Xunit; -namespace Monai.Deploy.WorkflowManager.Common.Tests.Extensions +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Tests.Extensions { public class CollectionExtensionsTests { @@ -104,7 +104,7 @@ public void CollectionExtension_DictionaryAppendToNullDict_AppendsDictionary() Dictionary? dict1 = null; var dict2 = new Dictionary() { { "two", "b" } }; - var ex = Assert.Throws(() => dict1.Append(dict2)); + var ex = Assert.Throws(() => dict1!.Append(dict2)); Assert.Equal("Value cannot be null. (Parameter 'array')", ex.Message); } } diff --git a/tests/UnitTests/Common.Tests/Extensions/FileExtensionsTests.cs b/tests/UnitTests/Common.Tests/Extensions/FileExtensionsTests.cs index 913902ec0..fe36da668 100644 --- a/tests/UnitTests/Common.Tests/Extensions/FileExtensionsTests.cs +++ b/tests/UnitTests/Common.Tests/Extensions/FileExtensionsTests.cs @@ -15,10 +15,10 @@ */ using Monai.Deploy.Storage.API; -using Monai.Deploy.WorkflowManager.Common.Extensions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Extensions; using Xunit; -namespace Monai.Deploy.WorkflowManager.Common.Tests.Extensions +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Tests.Extensions { public class FileExtensionsTests { diff --git a/tests/UnitTests/Common.Tests/Extensions/StorageListExtensionsTests.cs b/tests/UnitTests/Common.Tests/Extensions/StorageListExtensionsTests.cs index 3479a1170..6ceb39b20 100644 --- a/tests/UnitTests/Common.Tests/Extensions/StorageListExtensionsTests.cs +++ b/tests/UnitTests/Common.Tests/Extensions/StorageListExtensionsTests.cs @@ -14,10 +14,10 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Common.Extensions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Extensions; using Xunit; -namespace Monai.Deploy.WorkflowManager.Common.Tests.Extensions +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Tests.Extensions { public class StorageListExtensionsTests { diff --git a/tests/UnitTests/Common.Tests/Services/PayloadServiceTests.cs b/tests/UnitTests/Common.Tests/Services/PayloadServiceTests.cs index ebdca05ea..1021ede64 100644 --- a/tests/UnitTests/Common.Tests/Services/PayloadServiceTests.cs +++ b/tests/UnitTests/Common.Tests/Services/PayloadServiceTests.cs @@ -19,16 +19,16 @@ using Microsoft.Extensions.Logging; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Storage.API; -using Monai.Deploy.WorkflowManager.Common.Exceptions; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Common.Services; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.Storage.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Storage.Services; using Moq; using Xunit; -namespace Monai.Deploy.WorkflowManager.Common.Tests.Services +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Tests.Services { public class PayloadServiceTests { diff --git a/tests/UnitTests/Common.Tests/Services/TasksServiceTests.cs b/tests/UnitTests/Common.Tests/Services/TasksServiceTests.cs index 7cffd1923..e42be4ee5 100644 --- a/tests/UnitTests/Common.Tests/Services/TasksServiceTests.cs +++ b/tests/UnitTests/Common.Tests/Services/TasksServiceTests.cs @@ -16,14 +16,14 @@ using FluentAssertions; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Common.Services; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; using Moq; using Xunit; -namespace Monai.Deploy.WorkflowManager.Test.Services +namespace Monai.Deploy.WorkflowManager.Common.Test.Services { public class TasksServiceTests { diff --git a/tests/UnitTests/Common.Tests/Services/WorkflowInstanceServiceTests.cs b/tests/UnitTests/Common.Tests/Services/WorkflowInstanceServiceTests.cs index db8c7316b..11d89e613 100644 --- a/tests/UnitTests/Common.Tests/Services/WorkflowInstanceServiceTests.cs +++ b/tests/UnitTests/Common.Tests/Services/WorkflowInstanceServiceTests.cs @@ -17,11 +17,11 @@ using FluentAssertions; using Microsoft.Extensions.Logging; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Common.Exceptions; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Common.Services; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; using Moq; using Xunit; @@ -45,6 +45,7 @@ public WorkflowInstanceServiceTests() [Fact] public async Task UpdateExportCompleteMetadataAsync_NullWorkflowInstanceId_ThrowsException() { +#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. await Assert.ThrowsAsync(() => WorkflowInstanceService.UpdateExportCompleteMetadataAsync(null, "45435436", new Dictionary())); } @@ -122,11 +123,13 @@ public async Task AcknowledgeTaskError_WorkflowDoesNotExist_ThrowsNotFoundExcept } }; +#pragma warning disable CS8620 // Argument cannot be used for parameter due to differences in the nullability of reference types. _workflowInstanceRepository.Setup(w => w.GetByWorkflowInstanceIdAsync(workflowInstance.Id)).ReturnsAsync(value: null); +#pragma warning restore CS8620 // Argument cannot be used for parameter due to differences in the nullability of reference types. await Assert.ThrowsAsync(() => WorkflowInstanceService.AcknowledgeTaskError(workflowInstance.Id, workflowInstance.Tasks.First().ExecutionId)); } - +#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type. [Fact] public async Task AcknowledgeTaskError_WorkflowNotFailed_ThrowsBadRequestException() { diff --git a/tests/UnitTests/Common.Tests/Services/WorkflowServiceTests.cs b/tests/UnitTests/Common.Tests/Services/WorkflowServiceTests.cs index a56339657..9007b5bfb 100644 --- a/tests/UnitTests/Common.Tests/Services/WorkflowServiceTests.cs +++ b/tests/UnitTests/Common.Tests/Services/WorkflowServiceTests.cs @@ -15,10 +15,10 @@ */ using Microsoft.Extensions.Logging; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Common.Services; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; using Moq; using Xunit; @@ -42,6 +42,7 @@ public WorkflowServiceTests() [Fact] public async Task WorkflowService_NullWorkflow_ThrowsException() { +#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. await Assert.ThrowsAsync(() => WorkflowService.UpdateAsync(null, null)); } @@ -154,3 +155,4 @@ public async Task WorkflowService_GetAllAsync_Calls_GetAllAsync() } } } +#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type. diff --git a/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalGroupTests.cs b/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalGroupTests.cs index ca0ab748d..ac96eca6e 100644 --- a/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalGroupTests.cs +++ b/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalGroupTests.cs @@ -15,10 +15,10 @@ */ using System; -using Monai.Deploy.WorkflowManager.ConditionsResolver.Resolver; +using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Resolver; using Xunit; -namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Tests.Resolver +namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Tests.Resolver { public class ConditionalGroupTests { @@ -40,7 +40,6 @@ public class ConditionalGroupTests [InlineData("'F' == 'F' AND 'F' == 'leg' OR 'F' == 'F' AND 'F' == 'F' OR 'F' == 'F'")] [InlineData("'F' == 'F' AND 'F' == 'leg' OR 'F' == 'F' OR 'F' == 'F' AND 'F' == 'F'")] [InlineData("'AND' == 'OR' AND 'F' == 'leg' OR 'F' == 'F' OR 'F' == 'F' AND 'F' == 'F'")] - [InlineData("'F' == 'F' OR 'F' == 'leg' OR 'F' == 'F'")] [InlineData("'Donkey' CONTAINS [“Donkey”, “Alpaca”, “Zebra”] AND 'F' == 'F'")] public void ConditionalGroup_WhenProvidedCorrectInput_ShouldCreateAndHaveLeftAndRightGroups(string input) { diff --git a/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalTests.cs b/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalTests.cs index 911aa4ca5..01dd73525 100644 --- a/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalTests.cs +++ b/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalTests.cs @@ -15,10 +15,10 @@ */ using System; -using Monai.Deploy.WorkflowManager.ConditionsResolver.Resolver; +using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Resolver; using Xunit; -namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Tests.Resolver +namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Tests.Resolver { public class ConditionalTests { @@ -79,8 +79,10 @@ public void Conditional_GivenEmptyStringConditionalParse_ShouldThrowException() public void Conditional_GiveNullStringConditionalSetNextParameter_ShouldHaveNULL() { var conditional = new Conditional(); +#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. conditional.SetNextParameter(null); - Assert.Equal(conditional.LeftParameter, "NULL"); +#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type. + Assert.Equal("NULL", conditional.LeftParameter); } } } diff --git a/tests/UnitTests/ConditionsResolver.Tests/Resolver/RegexExtensionsTests.cs b/tests/UnitTests/ConditionsResolver.Tests/Resolver/RegexExtensionsTests.cs index 6856a6b8b..d33e668c2 100644 --- a/tests/UnitTests/ConditionsResolver.Tests/Resolver/RegexExtensionsTests.cs +++ b/tests/UnitTests/ConditionsResolver.Tests/Resolver/RegexExtensionsTests.cs @@ -16,10 +16,10 @@ using System; using System.Text.RegularExpressions; -using Monai.Deploy.WorkflowManager.ConditionsResolver.Extensions; +using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Extensions; using Xunit; -namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Tests.Resolver +namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Tests.Resolver { public class RegexExtensionsTests { diff --git a/tests/UnitTests/ConditionsResolver.Tests/Resolver/StringExtensionsTests.cs b/tests/UnitTests/ConditionsResolver.Tests/Resolver/StringExtensionsTests.cs index 62b05ca56..b06ab213f 100644 --- a/tests/UnitTests/ConditionsResolver.Tests/Resolver/StringExtensionsTests.cs +++ b/tests/UnitTests/ConditionsResolver.Tests/Resolver/StringExtensionsTests.cs @@ -15,10 +15,10 @@ */ using System; -using Monai.Deploy.WorkflowManager.ConditionsResolver.Extensions; +using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Extensions; using Xunit; -namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Tests.Resolver +namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Tests.Resolver { public class StringExtensionsTests { diff --git a/tests/UnitTests/Configuration.Tests/ConfigurationValidatorTest.cs b/tests/UnitTests/Configuration.Tests/ConfigurationValidatorTest.cs index 4eb1ac051..f8b8a9aba 100644 --- a/tests/UnitTests/Configuration.Tests/ConfigurationValidatorTest.cs +++ b/tests/UnitTests/Configuration.Tests/ConfigurationValidatorTest.cs @@ -16,11 +16,11 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Monai.Deploy.InformaticsGateway.SharedTest; +using Monai.Deploy.WorkflowManager.SharedTest; using Moq; using Xunit; -namespace Monai.Deploy.WorkflowManager.Configuration.Tests +namespace Monai.Deploy.WorkflowManager.Common.Configuration.Tests { public class ConfigurationValidatorTest { diff --git a/tests/UnitTests/Configuration.Tests/Monai.Deploy.WorkflowManager.Configuration.Tests.csproj b/tests/UnitTests/Configuration.Tests/Monai.Deploy.WorkflowManager.Configuration.Tests.csproj index 1a369b0b2..9b768dea8 100644 --- a/tests/UnitTests/Configuration.Tests/Monai.Deploy.WorkflowManager.Configuration.Tests.csproj +++ b/tests/UnitTests/Configuration.Tests/Monai.Deploy.WorkflowManager.Configuration.Tests.csproj @@ -38,7 +38,7 @@ - + diff --git a/tests/UnitTests/Configuration.Tests/VerifyLogExtension.cs b/tests/UnitTests/Configuration.Tests/VerifyLogExtension.cs index c1e74f683..ac0633318 100644 --- a/tests/UnitTests/Configuration.Tests/VerifyLogExtension.cs +++ b/tests/UnitTests/Configuration.Tests/VerifyLogExtension.cs @@ -19,7 +19,7 @@ using Microsoft.Extensions.Logging; using Moq; -namespace Monai.Deploy.InformaticsGateway.SharedTest +namespace Monai.Deploy.WorkflowManager.SharedTest { #pragma warning disable CS8602 // Dereference of a possibly null reference. #pragma warning disable CS8620 // Argument cannot be used for parameter due to differences in the nullability of reference types. diff --git a/tests/UnitTests/Database.Tests/TaskExecutionStatsRepositoryTests.cs b/tests/UnitTests/Database.Tests/TaskExecutionStatsRepositoryTests.cs index c870b7258..25103a74e 100644 --- a/tests/UnitTests/Database.Tests/TaskExecutionStatsRepositoryTests.cs +++ b/tests/UnitTests/Database.Tests/TaskExecutionStatsRepositoryTests.cs @@ -21,14 +21,14 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Options; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Options; using MongoDB.Bson; using MongoDB.Driver; using Moq; using Xunit; -namespace Monai.Deploy.WorkflowManager.Database.Tests +namespace Monai.Deploy.WorkflowManager.Common.Database.Tests { public class TaskExecutionStatsRepositoryTests { @@ -252,7 +252,7 @@ public async Task ExecutionStats_Get_Stats_Should_Filter() } [Fact] - public async Task ExecutionStats_New_TaskCancellationEvent_Should_initialize() + public void ExecutionStats_New_TaskCancellationEvent_Should_initialize() { var collerationId = "colleration"; var WorkflowInstanceId = "WorkflowInstanceId"; diff --git a/tests/UnitTests/Database.Tests/TaskExecutionStatsTests.cs b/tests/UnitTests/Database.Tests/TaskExecutionStatsTests.cs deleted file mode 100644 index e9f15f905..000000000 --- a/tests/UnitTests/Database.Tests/TaskExecutionStatsTests.cs +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2022 MONAI Consortium - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -using System.Threading; -using System.Threading.Tasks; -using Microsoft.Extensions.DependencyInjection; -using Monai.Deploy.Messaging.API; -using Moq; -using Xunit; - -namespace Monai.Deploy.WorkflowManager.Database.Tests -{ - public class TaskExecutionStatsTests - { - private const string NOT_ARGO = "notArgo"; - private const string NOT_ARGO2 = "notArgo2"; - //private readonly Mock> _logger; - //private readonly IOptions _options; - private readonly Mock _serviceScopeFactory; - private readonly Mock _serviceScope; - private readonly Mock _executionStatsRepo; - //private readonly Mock _storageService; - //private readonly Mock _storageAdminService; - private readonly Mock _messageBrokerPublisherService; - private readonly Mock _messageBrokerSubscriberService; - //private readonly Mock _testRunnerCallback; - //private readonly Mock _testMetadataRepositoryCallback; - //private readonly Mock _taskDispatchEventService; - private readonly CancellationTokenSource _cancellationTokenSource; - - public TaskExecutionStatsTests() - { - } - - [Fact(DisplayName = "ExecuteTask - sets Execution Stats on start")] - public async Task ExecuteTask_SetsExecutionStatsOnStart() - { - - - } - - [Fact(DisplayName = "Task Manager - metadata used to fill in ExecutionStats")] - public async Task TaskManager_Metadata_Used_To_Fill_In_ExecutionStats() - { - - - } - - [Fact] - public async Task ExecuteTask_SetsExecutionStatsOnCanceled() - { - - } - - //private static JsonMessage GenerateTaskCallbackEvent(JsonMessage? taskDispatchEventMessage = null) - //{ - // return new JsonMessage( - // new TaskCallbackEvent - // { - // CorrelationId = taskDispatchEventMessage is null ? Guid.NewGuid().ToString() : taskDispatchEventMessage.CorrelationId, - // ExecutionId = taskDispatchEventMessage is null ? Guid.NewGuid().ToString() : taskDispatchEventMessage.Body.ExecutionId, - // WorkflowInstanceId = taskDispatchEventMessage is null ? Guid.NewGuid().ToString() : taskDispatchEventMessage.Body.WorkflowInstanceId, - // TaskId = taskDispatchEventMessage is null ? Guid.NewGuid().ToString() : taskDispatchEventMessage.Body.TaskId, - // Identity = Guid.NewGuid().ToString(), - // }, - // Guid.NewGuid().ToString(), - // taskDispatchEventMessage is null ? Guid.NewGuid().ToString() : taskDispatchEventMessage.CorrelationId, - // "1"); - //} - - } -} diff --git a/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/DicomTagUtilitiesTests.cs b/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/DicomTagUtilitiesTests.cs index 8d6167fbe..a2d999488 100644 --- a/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/DicomTagUtilitiesTests.cs +++ b/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/DicomTagUtilitiesTests.cs @@ -14,9 +14,9 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Shared.Utilities; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Utilities; -namespace Monai.Deploy.WorkflowManager.Shared.Tests +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Tests { public class DicomTagUtilitiesTests { diff --git a/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/HttpLoggingExtensionsTests.cs b/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/HttpLoggingExtensionsTests.cs index e97644b5c..18f846a94 100644 --- a/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/HttpLoggingExtensionsTests.cs +++ b/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/HttpLoggingExtensionsTests.cs @@ -19,8 +19,9 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Moq; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; -namespace Monai.Deploy.WorkflowManager.Shared.Tests +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Tests { public class HttpLoggingExtensionsTests { diff --git a/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/Monai.Deploy.WorkflowManager.Shared.Tests.csproj b/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/Monai.Deploy.WorkflowManager.Shared.Tests.csproj index a8ba5b6c8..bc9c756df 100644 --- a/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/Monai.Deploy.WorkflowManager.Shared.Tests.csproj +++ b/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/Monai.Deploy.WorkflowManager.Shared.Tests.csproj @@ -40,7 +40,7 @@ - + diff --git a/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/MonaiHealthCheckTests.cs b/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/MonaiHealthCheckTests.cs index e521b24fb..ecdf91ae1 100644 --- a/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/MonaiHealthCheckTests.cs +++ b/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/MonaiHealthCheckTests.cs @@ -15,10 +15,10 @@ */ using Microsoft.Extensions.Diagnostics.HealthChecks; -using Monai.Deploy.WorkflowManager.Shared; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Moq; -namespace Monai.Deploy.InformaticsGateway.Test.Services.Http +namespace Monai.Deploy.WorkflowManager.Test.Services.Http { public class MonaiHealthCheckTests { @@ -40,7 +40,9 @@ public async Task GivenAllServicesRunning_WhenCheckHealthAsyncIsCalled_ReturnsHe }); var svc = new MonaiHealthCheck(_monaiServiceLocator.Object); +#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. var result = await svc.CheckHealthAsync(null); + Assert.Equal(HealthStatus.Healthy, result.Status); } @@ -79,5 +81,6 @@ public async Task GivenAllServicesNotRunning_WhenCheckHealthAsyncIsCalled_Return Assert.Equal(ServiceStatus.Cancelled, result.Data["B"]); Assert.Equal(ServiceStatus.Stopped, result.Data["C"]); } +#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type. } } diff --git a/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/MonaiServiceLocatorTests.cs b/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/MonaiServiceLocatorTests.cs index 43b170eca..30935d13d 100644 --- a/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/MonaiServiceLocatorTests.cs +++ b/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/MonaiServiceLocatorTests.cs @@ -14,10 +14,10 @@ * limitations under the License. */ -using Monai.Deploy.WorkflowManager.Shared; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Moq; -namespace Monai.Deploy.InformaticsGateway.Test.Repositories +namespace Monai.Deploy.WorkflowManager.Test.Repositories { public class TestServiceA : IMonaiService { diff --git a/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/UriServiceTests.cs b/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/UriServiceTests.cs index 95edbd880..d24e672d1 100644 --- a/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/UriServiceTests.cs +++ b/tests/UnitTests/Monai.Deploy.WorkflowManager.Shared.Tests/UriServiceTests.cs @@ -15,11 +15,11 @@ */ -using Monai.Deploy.WorkflowManager.Shared.Filter; -using Monai.Deploy.WorkflowManager.Shared.Services; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; -namespace Monai.Deploy.WorkflowManager.Shared.Tests +namespace Monai.Deploy.WorkflowManager.Common.Miscellaneous.Tests { public class UriServiceTests { diff --git a/tests/UnitTests/MonaiBackgroundService.Tests/WorkerTests.cs b/tests/UnitTests/MonaiBackgroundService.Tests/WorkerTests.cs index 0c7effece..c43505742 100644 --- a/tests/UnitTests/MonaiBackgroundService.Tests/WorkerTests.cs +++ b/tests/UnitTests/MonaiBackgroundService.Tests/WorkerTests.cs @@ -19,13 +19,13 @@ using Monai.Deploy.Messaging.API; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Messaging.Messages; -using Monai.Deploy.WorkflowManager.Common.Services; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; using Moq; -namespace Monai.Deploy.WorkflowManager.MonaiBackgroundService.Tests +namespace Monai.Deploy.WorkflowManager.Common.MonaiBackgroundService.Tests { public class WorkerTests { diff --git a/tests/UnitTests/PayloadListener.Tests/Services/EventPayloadRecieverServiceTests.cs b/tests/UnitTests/PayloadListener.Tests/Services/EventPayloadRecieverServiceTests.cs index b3d9d7553..cee281576 100644 --- a/tests/UnitTests/PayloadListener.Tests/Services/EventPayloadRecieverServiceTests.cs +++ b/tests/UnitTests/PayloadListener.Tests/Services/EventPayloadRecieverServiceTests.cs @@ -21,25 +21,28 @@ using Monai.Deploy.Messaging.Common; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Messaging.Messages; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.PayloadListener.Services; -using Monai.Deploy.WorkflowManager.PayloadListener.Validators; -using Monai.Deploy.WorkflowManager.WorkfowExecuter.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.PayloadListener.Services; +using Monai.Deploy.WorkflowManager.Common.PayloadListener.Validators; +using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Services; using Moq; using NUnit.Framework; -namespace Monai.Deploy.WorkflowManager.PayloadListener.Tests.Services +namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Tests.Services { public class EventPayloadReceiverServiceTests { - private IEventPayloadReceiverService _eventPayloadReceiverService; - private Mock _mockEventPayloadValidator; - private Mock> _mockLogger; - private Mock _mockMessageBrokerSubscriberService; - private Mock _workflowExecuterService; - private Mock _payloadService; + private IEventPayloadReceiverService? _eventPayloadReceiverService; + private Mock? _mockEventPayloadValidator; + private Mock>? _mockLogger; + private Mock? _mockMessageBrokerSubscriberService; + private Mock? _workflowExecuterService; + private Mock? _payloadService; + +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. [SetUp] public void Setup() @@ -289,4 +292,6 @@ private static MessageReceivedEventArgs CreateMessageReceivedEventArgs(string[] return new MessageReceivedEventArgs(jsonMessage.ToMessage(), CancellationToken.None); } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. } diff --git a/tests/UnitTests/PayloadListener.Tests/Validators/EventPayloadValidatorTests.cs b/tests/UnitTests/PayloadListener.Tests/Validators/EventPayloadValidatorTests.cs index af8306270..a58a45b26 100644 --- a/tests/UnitTests/PayloadListener.Tests/Validators/EventPayloadValidatorTests.cs +++ b/tests/UnitTests/PayloadListener.Tests/Validators/EventPayloadValidatorTests.cs @@ -18,16 +18,16 @@ using System.Collections.Generic; using Microsoft.Extensions.Logging; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.PayloadListener.Validators; +using Monai.Deploy.WorkflowManager.Common.PayloadListener.Validators; using Moq; using NUnit.Framework; -namespace Monai.Deploy.WorkflowManager.PayloadListener.Tests.Validators +namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Tests.Validators { public class EventPayloadValidatorTests { - private IEventPayloadValidator _eventPayloadValidator; - private Mock> _mockLogger; + private IEventPayloadValidator? _eventPayloadValidator; + private Mock>? _mockLogger; [SetUp] public void Setup() @@ -41,7 +41,7 @@ public void ValidateWorkflowRequest_WorkflowRequestMessage_ThrowsArgumentNullExc { Assert.Throws(() => { - _eventPayloadValidator.ValidateWorkflowRequest(null); + _eventPayloadValidator!.ValidateWorkflowRequest(null); }); } @@ -50,7 +50,7 @@ public void ValidateWorkflowRequest_WorkflowRequestMessageWithCallingAETitleIsMo { var message = CreateWorkflowRequestMessageWithNoWorkFlow(); message.CalledAeTitle = "abcdefghijklmnop"; - var result = _eventPayloadValidator.ValidateWorkflowRequest(message); + var result = _eventPayloadValidator!.ValidateWorkflowRequest(message); Assert.IsFalse(result); } @@ -59,8 +59,8 @@ public void ValidateWorkflowRequest_WorkflowRequestMessageWithCallingAETitleIsMo public void ValidateWorkflowRequest_WorkflowRequestMessageWithCallingAETitleIsNull_ReturnsValidatonFalse() { var message = CreateWorkflowRequestMessageWithNoWorkFlow(); - message.CalledAeTitle = null; - var result = _eventPayloadValidator.ValidateWorkflowRequest(message); + message.CalledAeTitle = string.Empty; + var result = _eventPayloadValidator!.ValidateWorkflowRequest(message); Assert.IsFalse(result); } @@ -70,7 +70,7 @@ public void ValidateWorkflowRequest_WorkflowRequestMessageWithCallingAETitleIsWh { var message = CreateWorkflowRequestMessageWithNoWorkFlow(); message.CalledAeTitle = " "; - var result = _eventPayloadValidator.ValidateWorkflowRequest(message); + var result = _eventPayloadValidator!.ValidateWorkflowRequest(message); Assert.IsFalse(result); } @@ -80,7 +80,7 @@ public void ValidateWorkflowRequest_WorkflowRequestMessageWithCallingAETitleIsEm { var message = CreateWorkflowRequestMessageWithNoWorkFlow(); message.CalledAeTitle = String.Empty; - var result = _eventPayloadValidator.ValidateWorkflowRequest(message); + var result = _eventPayloadValidator!.ValidateWorkflowRequest(message); Assert.IsFalse(result); } @@ -90,7 +90,7 @@ public void ValidateWorkflowRequest_WorkflowRequestMessageWithCalledAETitleIsMor { var message = CreateWorkflowRequestMessageWithNoWorkFlow(); message.CalledAeTitle = "abcdefghijklmnop"; - var result = _eventPayloadValidator.ValidateWorkflowRequest(message); + var result = _eventPayloadValidator!.ValidateWorkflowRequest(message); Assert.IsFalse(result); } @@ -99,8 +99,8 @@ public void ValidateWorkflowRequest_WorkflowRequestMessageWithCalledAETitleIsMor public void ValidateWorkflowRequest_WorkflowRequestMessageWithCalledAETitleIsNull_ReturnsValidatonFalse() { var message = CreateWorkflowRequestMessageWithNoWorkFlow(); - message.CalledAeTitle = null; - var result = _eventPayloadValidator.ValidateWorkflowRequest(message); + message.CalledAeTitle = string.Empty; + var result = _eventPayloadValidator!.ValidateWorkflowRequest(message); Assert.IsFalse(result); } @@ -110,7 +110,7 @@ public void ValidateWorkflowRequest_WorkflowRequestMessageWithCalledAETitleIsWhi { var message = CreateWorkflowRequestMessageWithNoWorkFlow(); message.CalledAeTitle = " "; - var result = _eventPayloadValidator.ValidateWorkflowRequest(message); + var result = _eventPayloadValidator!.ValidateWorkflowRequest(message); Assert.IsFalse(result); } @@ -120,7 +120,7 @@ public void ValidateWorkflowRequest_WorkflowRequestMessageWithCalledAETitleIsEmp { var message = CreateWorkflowRequestMessageWithNoWorkFlow(); message.CalledAeTitle = " "; - var result = _eventPayloadValidator.ValidateWorkflowRequest(message); + var result = _eventPayloadValidator!.ValidateWorkflowRequest(message); Assert.IsFalse(result); } @@ -131,7 +131,7 @@ public void ValidateWorkflowRequest_WorkflowRequestMessageWithNullWorkflow_Throw var message = CreateWorkflowRequestMessageWithNoWorkFlow(); message.Workflows = new List { "" }; - var result = _eventPayloadValidator.ValidateWorkflowRequest(message); + var result = _eventPayloadValidator!.ValidateWorkflowRequest(message); Assert.IsFalse(result); } @@ -142,7 +142,7 @@ public void ValidateWorkflowRequest_WorkflowRequestMessageIsValid_ReturnsTrue() var message = CreateWorkflowRequestMessageWithNoWorkFlow(); message.Workflows = new List { "123", "234", "345", "456" }; - var result = _eventPayloadValidator.ValidateWorkflowRequest(message); + var result = _eventPayloadValidator!.ValidateWorkflowRequest(message); Assert.IsTrue(result); } @@ -162,7 +162,7 @@ public void ValidateTaskUpdate_TaskUpdateEventIsValid_ReturnsTrue() CorrelationId = Guid.NewGuid().ToString() }; - var result = _eventPayloadValidator.ValidateTaskUpdate(updateEvent); + var result = _eventPayloadValidator!.ValidateTaskUpdate(updateEvent); Assert.IsTrue(result); } @@ -182,7 +182,7 @@ public void ValidateTaskUpdate_TaskUpdateEventIsInvalid_ReturnsFalse() CorrelationId = Guid.NewGuid().ToString() }; - var result = _eventPayloadValidator.ValidateTaskUpdate(updateEvent); + var result = _eventPayloadValidator!.ValidateTaskUpdate(updateEvent); Assert.IsFalse(result); } @@ -192,7 +192,7 @@ public void ValidateTaskUpdate_TaskUpdateEventIsNull_ThrowsArgumentNullException { Assert.Throws(() => { - _eventPayloadValidator.ValidateTaskUpdate(null); + _eventPayloadValidator!.ValidateTaskUpdate(null); }); } @@ -207,7 +207,7 @@ public void ValidateExportComplete_ExportCompleteEventIsValid_ReturnsTrue() Message = "This is a message" }; - var result = _eventPayloadValidator.ValidateExportComplete(exportEvent); + var result = _eventPayloadValidator!.ValidateExportComplete(exportEvent); Assert.IsTrue(result); } @@ -223,7 +223,7 @@ public void ValidateExportComplete_ExportCompleteEventIsInvalid_ReturnsFalse() Message = "This is a message" }; - var result = _eventPayloadValidator.ValidateExportComplete(exportEvent); + var result = _eventPayloadValidator!.ValidateExportComplete(exportEvent); Assert.IsFalse(result); } @@ -233,7 +233,7 @@ public void ValidateExportComplete_ExportCompleteEventIsNull_ThrowsArgumentNullE { Assert.Throws(() => { - _eventPayloadValidator.ValidateExportComplete(null); + _eventPayloadValidator!.ValidateExportComplete(null); }); } diff --git a/tests/UnitTests/PayloadListener.Tests/packages.lock.json b/tests/UnitTests/PayloadListener.Tests/packages.lock.json index a1ab86bf4..835cbf018 100644 --- a/tests/UnitTests/PayloadListener.Tests/packages.lock.json +++ b/tests/UnitTests/PayloadListener.Tests/packages.lock.json @@ -832,6 +832,22 @@ "resolved": "0.6.2", "contentHash": "jPao/LdUNLUz8rn3H1D8W7wQbZsRZM0iayvWI4xGejJg3XJHT56gcmYdgmCGPdJF1UEBqUjucCRrFB+4HbJsbw==" }, + "Monai.Deploy.WorkflowManager.Common.configuration": { + "type": "Project", + "dependencies": { + "Monai.Deploy.Messaging": "[0.1.25, )", + "Monai.Deploy.Storage": "[0.2.18, )" + } + }, + "Monai.Deploy.WorkflowManager.Common.miscellaneous": { + "type": "Project", + "dependencies": { + "Ardalis.GuardClauses": "[4.1.1, )", + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.21, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "fo-dicom": "[5.0.3, )" + } + }, "monai.deploy.workflowmanager.common": { "type": "Project", "dependencies": { @@ -849,13 +865,6 @@ "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" } }, - "monai.deploy.workflowmanager.configuration": { - "type": "Project", - "dependencies": { - "Monai.Deploy.Messaging": "[0.1.25, )", - "Monai.Deploy.Storage": "[0.2.18, )" - } - }, "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { @@ -882,23 +891,13 @@ "monai.deploy.workflowmanager.payloadlistener": { "type": "Project", "dependencies": { - "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Miscellaneous": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Shared": "[1.0.0, )", "Monai.Deploy.WorkloadManager.WorkfowExecuter": "[1.0.0, )" } }, - "monai.deploy.workflowmanager.shared": { - "type": "Project", - "dependencies": { - "Ardalis.GuardClauses": "[4.1.1, )", - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.21, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", - "fo-dicom": "[5.0.3, )" - } - }, "monai.deploy.workflowmanager.storage": { "type": "Project", "dependencies": { @@ -910,13 +909,13 @@ "monai.deploy.workloadmanager.workfowexecuter": { "type": "Project", "dependencies": { + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Miscellaneous": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )", "Monai.Deploy.WorkflowManager.ConditionsResolver": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Database": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Shared": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" } } diff --git a/tests/UnitTests/Storage.Tests/Services/DicomServiceTests.cs b/tests/UnitTests/Storage.Tests/Services/DicomServiceTests.cs index b8740c21a..cea5c7009 100644 --- a/tests/UnitTests/Storage.Tests/Services/DicomServiceTests.cs +++ b/tests/UnitTests/Storage.Tests/Services/DicomServiceTests.cs @@ -23,14 +23,14 @@ using FluentAssertions; using Microsoft.Extensions.Logging; using Monai.Deploy.Storage.API; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Storage.Constants; -using Monai.Deploy.WorkflowManager.Storage.Services; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Storage.Constants; +using Monai.Deploy.WorkflowManager.Common.Storage.Services; using Moq; using Newtonsoft.Json; using Xunit; -namespace Monai.Deploy.WorkflowManager.Storage.Tests.Services +namespace Monai.Deploy.WorkflowManager.Common.Storage.Tests.Services { public class DicomServiceTests { diff --git a/tests/UnitTests/TaskManager.AideClinicalReview.Tests/AideClinicalReviewPluginTests.cs b/tests/UnitTests/TaskManager.AideClinicalReview.Tests/AideClinicalReviewPluginTests.cs index e4eefc647..3fc21fbda 100644 --- a/tests/UnitTests/TaskManager.AideClinicalReview.Tests/AideClinicalReviewPluginTests.cs +++ b/tests/UnitTests/TaskManager.AideClinicalReview.Tests/AideClinicalReviewPluginTests.cs @@ -25,8 +25,8 @@ using Monai.Deploy.Messaging.Common; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Messaging.Messages; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Shared; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Monai.Deploy.WorkflowManager.TaskManager.API; using Moq; using Xunit; diff --git a/tests/UnitTests/TaskManager.Argo.Tests/ArgoClientTest.cs b/tests/UnitTests/TaskManager.Argo.Tests/ArgoClientTest.cs index b06b3a47c..4c04bd75f 100644 --- a/tests/UnitTests/TaskManager.Argo.Tests/ArgoClientTest.cs +++ b/tests/UnitTests/TaskManager.Argo.Tests/ArgoClientTest.cs @@ -231,6 +231,7 @@ public async Task Argo_CreateWorkflowTemplateAsync() } [Fact(DisplayName = "DecodeLogs")] +#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously public async Task DecodeLogs() { var result = BaseArgoClient.DecodeLogs(""); @@ -241,6 +242,7 @@ public async Task DecodeLogs() [Fact(DisplayName = "ConvertToString")] public async Task ConvertToString() { +#pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously //bool var result = ArgoClient.ConvertToString(true, CultureInfo.InvariantCulture); Assert.Equal("true", result); @@ -250,7 +252,9 @@ public async Task ConvertToString() Assert.Equal("0", result); //enum +#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. result = ArgoClient.ConvertToString(null, CultureInfo.InvariantCulture); +#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type. Assert.Equal("", result); diff --git a/tests/UnitTests/TaskManager.Argo.Tests/ArgoPluginTest.cs b/tests/UnitTests/TaskManager.Argo.Tests/ArgoPluginTest.cs index ec578a6ba..7c3d6154e 100755 --- a/tests/UnitTests/TaskManager.Argo.Tests/ArgoPluginTest.cs +++ b/tests/UnitTests/TaskManager.Argo.Tests/ArgoPluginTest.cs @@ -28,7 +28,7 @@ using Microsoft.Extensions.Logging; using Monai.Deploy.Messaging.Configuration; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.SharedTest; +using Monai.Deploy.WorkflowManager.Common.SharedTest; using Monai.Deploy.WorkflowManager.TaskManager.API; using Monai.Deploy.WorkflowManager.TaskManager.Argo.StaticValues; using Moq; @@ -471,7 +471,6 @@ public async Task ArgoPlugin_GetStatus_HasStatsInfo() Assert.NotNull(objNodeInfo); #pragma warning disable CS8604 // Possible null reference argument. var nodeInfo = ValiateCanConvertToDictionary(objNodeInfo); -#pragma warning restore CS8604 // Possible null reference argument. Assert.Equal(7, nodeInfo.Values.Count); Assert.Equal("{\"id\":\"firstId\"}", nodeInfo["nodes.first"]); @@ -665,11 +664,12 @@ public async Task ArgoPlugin_Adds_Container_Resource_Restrictions_Based_On_Confi var result = await runner.ExecuteTask(CancellationToken.None).ConfigureAwait(false); Assert.Equal(TaskExecutionStatus.Accepted, result.Status); +#pragma warning disable CS8602 // Dereference of a possibly null reference. Assert.Equal(MessageGeneratorContainerCpuLimit, _submittedArgoTemplate?.Spec.Templates.FirstOrDefault(p => p.Name == Strings.ExitHookTemplateSendTemplateName).Container.Resources.Limits["cpu"]); Assert.Equal(MessageGeneratorContainerMemoryLimit, _submittedArgoTemplate?.Spec.Templates.FirstOrDefault(p => p.Name == Strings.ExitHookTemplateSendTemplateName).Container.Resources.Limits["memory"]); Assert.Equal(expectedPodSpecPatch, _submittedArgoTemplate?.Spec.Templates.FirstOrDefault(p => p.Name == Strings.ExitHookTemplateSendTemplateName).PodSpecPatch); } - +#pragma warning restore CS8602 // Dereference of a possibly null reference. [Theory(DisplayName = "TTL gets extended if too short")] [InlineData(31, 31, 29)] [InlineData(1, null, null)] @@ -1173,3 +1173,4 @@ private void SetupKubernetesDeleteSecret() => K8sCoreOperations.Setup(p => p.Del It.IsAny>>(), It.IsAny())); } +#pragma warning restore CS8604 // Possible null reference argument. diff --git a/tests/UnitTests/TaskManager.Argo.Tests/ArgoPluginTestBase.cs b/tests/UnitTests/TaskManager.Argo.Tests/ArgoPluginTestBase.cs index 46febc91b..0e93c3b39 100644 --- a/tests/UnitTests/TaskManager.Argo.Tests/ArgoPluginTestBase.cs +++ b/tests/UnitTests/TaskManager.Argo.Tests/ArgoPluginTestBase.cs @@ -20,8 +20,8 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.TaskManager.API; -using Monai.Deploy.WorkflowManager.Configuration; +using Monai.Deploy.WorkflowManager.TaskManager.API; +using Monai.Deploy.WorkflowManager.Common.Configuration; using Monai.Deploy.WorkflowManager.TaskManager.API.Models; using Moq; diff --git a/tests/UnitTests/TaskManager.Argo.Tests/Controller/TemplateControllerTests.cs b/tests/UnitTests/TaskManager.Argo.Tests/Controller/TemplateControllerTests.cs index 80be66426..9a8384521 100644 --- a/tests/UnitTests/TaskManager.Argo.Tests/Controller/TemplateControllerTests.cs +++ b/tests/UnitTests/TaskManager.Argo.Tests/Controller/TemplateControllerTests.cs @@ -28,14 +28,14 @@ using Moq; using Xunit; -namespace Monai.Deploy.WorkflowManager.Test.Controllers +namespace Monai.Deploy.WorkflowManager.Common.Test.Controllers { public class TemplateControllerTests : ArgoPluginTestBase { private readonly Mock> _tempLogger; private readonly Mock> _argoLogger; - private TemplateController TemplateController { get; set; } + private TemplateController? TemplateController { get; set; } public TemplateControllerTests() { diff --git a/tests/UnitTests/TaskManager.Docker.Tests/ContainerStatusMonitorTest.cs b/tests/UnitTests/TaskManager.Docker.Tests/ContainerStatusMonitorTest.cs index 527b90429..6fae77b53 100755 --- a/tests/UnitTests/TaskManager.Docker.Tests/ContainerStatusMonitorTest.cs +++ b/tests/UnitTests/TaskManager.Docker.Tests/ContainerStatusMonitorTest.cs @@ -26,7 +26,7 @@ using Monai.Deploy.Messaging.Common; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Storage.API; -using Monai.Deploy.WorkflowManager.Configuration; +using Monai.Deploy.WorkflowManager.Common.Configuration; using Monai.Deploy.WorkflowManager.TaskManager.Docker; using Moq; using Credentials = Monai.Deploy.Messaging.Common.Credentials; diff --git a/tests/UnitTests/TaskManager.Docker.Tests/DockerPluginTest.cs b/tests/UnitTests/TaskManager.Docker.Tests/DockerPluginTest.cs index f72437315..05ab5fead 100644 --- a/tests/UnitTests/TaskManager.Docker.Tests/DockerPluginTest.cs +++ b/tests/UnitTests/TaskManager.Docker.Tests/DockerPluginTest.cs @@ -22,7 +22,7 @@ using Monai.Deploy.Messaging.Common; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Storage.API; -using Monai.Deploy.WorkflowManager.SharedTest; +using Monai.Deploy.WorkflowManager.Common.SharedTest; using Monai.Deploy.WorkflowManager.TaskManager.API; using Monai.Deploy.WorkflowManager.TaskManager.Docker; using Moq; @@ -267,7 +267,6 @@ public async Task ExecuteTask_WhenCalledWithValidEvent_ExpectTaskToBeAcceptedAnd [Fact(DisplayName = "GetStatus - when contianer status is unknown expect failure status")] public async Task GetStatus_WhenContainerStatusIsUnknown_ExpectFalureStatus() { - var tryCount = 0; _dockerClient.Setup(p => p.Containers.InspectContainerAsync(It.IsAny(), It.IsAny())) .ReturnsAsync( new ContainerInspectResponse @@ -297,7 +296,6 @@ public async Task GetStatus_WhenContainerStatusIsUnknown_ExpectFalureStatus() [Fact(DisplayName = "GetStatus - when contianer is killed or dead expect failure status")] public async Task GetStatus_WhenContainerIsKilledOrDead_ExpectFalureStatus() { - var tryCount = 0; _dockerClient.Setup(p => p.Containers.InspectContainerAsync(It.IsAny(), It.IsAny())) .ReturnsAsync( new ContainerInspectResponse @@ -327,7 +325,6 @@ public async Task GetStatus_WhenContainerIsKilledOrDead_ExpectFalureStatus() [Fact(DisplayName = "GetStatus - when Docker is unavailable expect failure status")] public async Task GetStatus_WhenDockerIsDown_ExpectFalureStatus() { - var tryCount = 0; _dockerClient.Setup(p => p.Containers.InspectContainerAsync(It.IsAny(), It.IsAny())) .ThrowsAsync(new Exception("error")); diff --git a/tests/UnitTests/TaskManager.Email.Tests/EmailPluginTests.cs b/tests/UnitTests/TaskManager.Email.Tests/EmailPluginTests.cs index 156e45521..3a32e5596 100644 --- a/tests/UnitTests/TaskManager.Email.Tests/EmailPluginTests.cs +++ b/tests/UnitTests/TaskManager.Email.Tests/EmailPluginTests.cs @@ -24,12 +24,12 @@ using Monai.Deploy.Messaging.API; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Messaging.Messages; -using Monai.Deploy.WorkflowManager.Configuration; +using Monai.Deploy.WorkflowManager.Common.Configuration; using Monai.Deploy.WorkflowManager.TaskManager.API; using Moq; using Xunit; using Monai.Deploy.Storage.API; -using Monai.Deploy.WorkflowManager.Shared; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Microsoft.Extensions.DependencyInjection; namespace Monai.Deploy.WorkflowManager.TaskManager.Email.Tests @@ -89,6 +89,7 @@ public void EmailPlugin_ThrowsWhenMissingPluginArguments() public void EmailPlugin_ThrowsWhenMissingLogger() { var message = GenerateTaskDispatchEvent(); +#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. Assert.Throws(() => new EmailPlugin(_serviceScopeFactory.Object, null, _options, message)); } @@ -104,13 +105,16 @@ public void EmailPlugin_ThrowsWhenMissingScope() { var message = GenerateTaskDispatchEvent(); Assert.Throws(() => new EmailPlugin(null, _logger.Object, _options, message)); +#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type. } [Fact(DisplayName = "Throws when missing required EventMessage")] public void EmailPlugin_ThrowsWhenMissingMessage() { var message = GenerateTaskDispatchEvent(); +#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. Assert.Throws(() => new EmailPlugin(_serviceScopeFactory.Object, _logger.Object, _options, null)); +#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type. } [Fact(DisplayName = "Throws when missing required attribute")] @@ -175,7 +179,9 @@ public async Task EmailPlugin_ExecuteTask_CallsPublish() { var messageEvent = GenerateTaskDispatchEvent(); messageEvent.TaskPluginArguments.Add(ValidationConstants.RecipientEmails, "fred@fred.com"); +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. Message messageResult = default; +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. _messageBrokerPublisherService.Setup(p => p.Publish(It.IsAny(), It.IsAny())) .Callback((string topic, Message jsonMessage) => { @@ -186,7 +192,7 @@ public async Task EmailPlugin_ExecuteTask_CallsPublish() var result = await runner.ExecuteTask(CancellationToken.None).ConfigureAwait(false); _messageBrokerPublisherService.Verify(m => m.Publish(It.IsAny(), It.IsAny()), Times.Once); - Assert.Contains("fred@fred.com", System.Text.Encoding.UTF8.GetString(messageResult.Body)); + Assert.Contains("fred@fred.com", System.Text.Encoding.UTF8.GetString(messageResult!.Body)); } //[Fact(DisplayName = "Should_Log_If_No_Metadata_Found")] diff --git a/tests/UnitTests/TaskManager.Tests/Monai.Deploy.WorkflowManager.TaskManager.Tests.csproj b/tests/UnitTests/TaskManager.Tests/Monai.Deploy.WorkflowManager.TaskManager.Tests.csproj index 4734dc0d5..3adbde4d5 100644 --- a/tests/UnitTests/TaskManager.Tests/Monai.Deploy.WorkflowManager.TaskManager.Tests.csproj +++ b/tests/UnitTests/TaskManager.Tests/Monai.Deploy.WorkflowManager.TaskManager.Tests.csproj @@ -39,7 +39,7 @@ - + diff --git a/tests/UnitTests/TaskManager.Tests/Services/TaskDispatchEventServiceTests.cs b/tests/UnitTests/TaskManager.Tests/Services/TaskDispatchEventServiceTests.cs index 4504ae534..7fce5c690 100644 --- a/tests/UnitTests/TaskManager.Tests/Services/TaskDispatchEventServiceTests.cs +++ b/tests/UnitTests/TaskManager.Tests/Services/TaskDispatchEventServiceTests.cs @@ -31,7 +31,9 @@ public class TaskDispatchEventServiceTests { private readonly Mock> _logger; private readonly Mock _taskDispatchEventRepository; - +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. public TaskDispatchEventServiceTests() { _logger = new Mock>(); @@ -103,3 +105,6 @@ private TaskDispatchEventInfo GenerateTaskDispatchEventInfo() } } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. diff --git a/tests/UnitTests/TaskManager.Tests/TaskManagerTest.cs b/tests/UnitTests/TaskManager.Tests/TaskManagerTest.cs index 7b823cf76..658e5319c 100644 --- a/tests/UnitTests/TaskManager.Tests/TaskManagerTest.cs +++ b/tests/UnitTests/TaskManager.Tests/TaskManagerTest.cs @@ -27,10 +27,9 @@ using Monai.Deploy.Messaging.Messages; using Monai.Deploy.Storage.API; using Monai.Deploy.Storage.S3Policy.Policies; -using Monai.Deploy.TaskManager.API; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Shared; using Monai.Deploy.WorkflowManager.TaskManager.API; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Moq; using Xunit; diff --git a/tests/UnitTests/WorkflowExecuter.Tests/Common/ArtifactMapperTests.cs b/tests/UnitTests/WorkflowExecuter.Tests/Common/ArtifactMapperTests.cs index a552a1cc6..5e4d2b400 100755 --- a/tests/UnitTests/WorkflowExecuter.Tests/Common/ArtifactMapperTests.cs +++ b/tests/UnitTests/WorkflowExecuter.Tests/Common/ArtifactMapperTests.cs @@ -23,13 +23,13 @@ using Microsoft.Extensions.Logging; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Storage.API; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.WorkfowExecuter.Common; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Common; using Moq; using Xunit; -namespace Monai.Deploy.WorkflowManager.WorkflowExecuter.Tests.Common +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecuter.Tests.Common { public class ArtifactMapperTests { diff --git a/tests/UnitTests/WorkflowExecuter.Tests/Common/EventMapperTests.cs b/tests/UnitTests/WorkflowExecuter.Tests/Common/EventMapperTests.cs index 0075fbee6..4ddf8729b 100644 --- a/tests/UnitTests/WorkflowExecuter.Tests/Common/EventMapperTests.cs +++ b/tests/UnitTests/WorkflowExecuter.Tests/Common/EventMapperTests.cs @@ -19,11 +19,11 @@ using FluentAssertions; using Monai.Deploy.Messaging.Events; using Monai.Deploy.Storage.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.WorkfowExecuter.Common; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Common; using Xunit; -namespace Monai.Deploy.WorkflowManager.WorkflowExecuter.Tests.Common +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecuter.Tests.Common { public class EventMapperTests { diff --git a/tests/UnitTests/WorkflowExecuter.Tests/Common/TaskExecutionStatusExtensionsTests.cs b/tests/UnitTests/WorkflowExecuter.Tests/Common/TaskExecutionStatusExtensionsTests.cs index e706bd9ab..c2a213d27 100644 --- a/tests/UnitTests/WorkflowExecuter.Tests/Common/TaskExecutionStatusExtensionsTests.cs +++ b/tests/UnitTests/WorkflowExecuter.Tests/Common/TaskExecutionStatusExtensionsTests.cs @@ -15,10 +15,10 @@ */ using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.WorkfowExecuter.Common; +using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Common; using Xunit; -namespace Monai.Deploy.WorkflowManager.WorkflowExecuter.Tests.Common +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecuter.Tests.Common { public class TaskExecutionStatusExtensions { diff --git a/tests/UnitTests/WorkflowExecuter.Tests/Services/ConditionalParameterParserTests.cs b/tests/UnitTests/WorkflowExecuter.Tests/Services/ConditionalParameterParserTests.cs index b5d7f07a6..9ed861a8a 100644 --- a/tests/UnitTests/WorkflowExecuter.Tests/Services/ConditionalParameterParserTests.cs +++ b/tests/UnitTests/WorkflowExecuter.Tests/Services/ConditionalParameterParserTests.cs @@ -19,14 +19,14 @@ using System.Linq; using Microsoft.Extensions.Logging; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.ConditionsResolver.Parser; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Storage.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Parser; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Storage.Services; using Moq; using Xunit; -namespace Monai.Deploy.WorkflowManager.WorkflowExecuter.Tests.Services +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecuter.Tests.Services { public class ConditionalParameterParserTests { diff --git a/tests/UnitTests/WorkflowExecuter.Tests/Services/WorkflowExecuterServiceTests.cs b/tests/UnitTests/WorkflowExecuter.Tests/Services/WorkflowExecuterServiceTests.cs old mode 100755 new mode 100644 index 4fbee570d..dc101406c --- a/tests/UnitTests/WorkflowExecuter.Tests/Services/WorkflowExecuterServiceTests.cs +++ b/tests/UnitTests/WorkflowExecuter.Tests/Services/WorkflowExecuterServiceTests.cs @@ -24,30 +24,27 @@ using FluentAssertions; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities; using Monai.Deploy.Messaging.API; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.Messaging.Messages; using Monai.Deploy.Storage.API; using Monai.Deploy.Storage.Configuration; -using Monai.Deploy.WorkflowManager.Common.Extensions; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.ConditionsResolver.Parser; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Database; -using Monai.Deploy.WorkflowManager.Database.Interfaces; -using Monai.Deploy.WorkflowManager.Database.Repositories; -using Monai.Deploy.WorkflowManager.Shared; -using Monai.Deploy.WorkflowManager.Storage.Services; -using Monai.Deploy.WorkflowManager.WorkfowExecuter.Common; -using Monai.Deploy.WorkflowManager.WorkfowExecuter.Services; +using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Services; using Moq; using Newtonsoft.Json; using Xunit; using Message = Monai.Deploy.Messaging.Messages.Message; - -namespace Monai.Deploy.WorkflowManager.WorkflowExecuter.Tests.Services +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; +using Monai.Deploy.WorkflowManager.Common.Database.Interfaces; +using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Common; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Database; +using Monai.Deploy.WorkflowManager.Common.Storage.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Extensions; +using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Parser; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; + +namespace Monai.Deploy.WorkflowManager.Common.WorkflowExecuter.Tests.Services { public class WorkflowExecuterServiceTests { @@ -119,7 +116,7 @@ public WorkflowExecuterServiceTests() } [Fact] - public async Task WorkflowExecuterService_Throw_If_No_Config() + public void WorkflowExecuterService_Throw_If_No_Config() { var dicom = new Mock(); var logger = new Mock>(); @@ -147,7 +144,7 @@ public async Task WorkflowExecuterService_Throw_If_No_Config() } [Fact] - public async Task WorkflowExecuterService_Throw_If_No_Storage_Config() + public void WorkflowExecuterService_Throw_If_No_Storage_Config() { var dicom = new Mock(); var logger = new Mock>(); diff --git a/tests/UnitTests/WorkflowManager.Services.Tests/InformaticsGateway/InformaticsGatewayServiceTests.cs b/tests/UnitTests/WorkflowManager.Services.Tests/InformaticsGateway/InformaticsGatewayServiceTests.cs index e745dfe2f..beafc4f6e 100644 --- a/tests/UnitTests/WorkflowManager.Services.Tests/InformaticsGateway/InformaticsGatewayServiceTests.cs +++ b/tests/UnitTests/WorkflowManager.Services.Tests/InformaticsGateway/InformaticsGatewayServiceTests.cs @@ -16,14 +16,14 @@ using System.Net; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Common.Exceptions; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Services.InformaticsGateway; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Services.InformaticsGateway; using Moq; using Moq.Protected; using Xunit; -namespace Monai.Deploy.WorkflowManager.Services.Tests.InformaticsGateway +namespace Monai.Deploy.WorkflowManager.Common.Services.Tests.InformaticsGateway { public class InformaticsGatewayServiceTests { diff --git a/tests/UnitTests/WorkflowManager.Services.Tests/Monai.Deploy.WorkflowManager.Services.Tests.csproj b/tests/UnitTests/WorkflowManager.Services.Tests/Monai.Deploy.WorkflowManager.Services.Tests.csproj index 5364c23d4..e3435622b 100644 --- a/tests/UnitTests/WorkflowManager.Services.Tests/Monai.Deploy.WorkflowManager.Services.Tests.csproj +++ b/tests/UnitTests/WorkflowManager.Services.Tests/Monai.Deploy.WorkflowManager.Services.Tests.csproj @@ -39,7 +39,7 @@ - + diff --git a/tests/UnitTests/WorkflowManager.Tests/Controllers/PayloadControllerTests.cs b/tests/UnitTests/WorkflowManager.Tests/Controllers/PayloadControllerTests.cs index 305243f54..fef8195b2 100644 --- a/tests/UnitTests/WorkflowManager.Tests/Controllers/PayloadControllerTests.cs +++ b/tests/UnitTests/WorkflowManager.Tests/Controllers/PayloadControllerTests.cs @@ -22,18 +22,18 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Common.Exceptions; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.ControllersShared; -using Monai.Deploy.WorkflowManager.Shared.Filter; -using Monai.Deploy.WorkflowManager.Shared.Services; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.ControllersShared; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; using Moq; using Xunit; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; -namespace Monai.Deploy.WorkflowManager.Test.Controllers +namespace Monai.Deploy.WorkflowManager.Common.Test.Controllers { public class PayloadControllerTests { @@ -73,8 +73,11 @@ public async Task GetListAsync_PayloadsExist_ReturnsList() var result = await PayloadController.GetAllAsync(new PaginationFilter()); var objectResult = Assert.IsType(result); - +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. var responseValue = (PagedResponse>)objectResult.Value; + responseValue.Data.Should().BeEquivalentTo(payloads); responseValue.FirstPage.Should().Be("unitTest"); responseValue.LastPage.Should().Be("unitTest"); @@ -248,4 +251,7 @@ public async Task DeleteAsync_ErrorThrown_ReturnsProblem() Assert.StartsWith(expectedInstance, ((ProblemDetails)objectResult.Value).Instance); } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. } diff --git a/tests/UnitTests/WorkflowManager.Tests/Controllers/TaskExecutionStatsControllerTests.cs b/tests/UnitTests/WorkflowManager.Tests/Controllers/TaskExecutionStatsControllerTests.cs index e84b30da5..53ed0a088 100644 --- a/tests/UnitTests/WorkflowManager.Tests/Controllers/TaskExecutionStatsControllerTests.cs +++ b/tests/UnitTests/WorkflowManager.Tests/Controllers/TaskExecutionStatsControllerTests.cs @@ -21,19 +21,19 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Shared.Filter; -using Monai.Deploy.WorkflowManager.Shared.Services; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; using Moq; using Xunit; using System.Linq; using System.Net; -using Monai.Deploy.WorkflowManager.Database; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.ControllersShared; +using Monai.Deploy.WorkflowManager.Common.Database; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.ControllersShared; -namespace Monai.Deploy.WorkflowManager.Test.Controllers +namespace Monai.Deploy.WorkflowManager.Common.Test.Controllers { public class ExecutionStatsControllerTests { @@ -44,7 +44,9 @@ public class ExecutionStatsControllerTests private readonly Mock _uriService; private readonly IOptions _options; private readonly ExecutionStats[] _executionStats; - +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. public ExecutionStatsControllerTests() { _options = Options.Create(new WorkflowManagerOptions()); @@ -276,4 +278,7 @@ public async Task GetStatsAsync_Only_Find_Matching_Results() Assert.Equal(1, pagegedResults.TotalRecords); } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. } diff --git a/tests/UnitTests/WorkflowManager.Tests/Controllers/TasksControllerTests.cs b/tests/UnitTests/WorkflowManager.Tests/Controllers/TasksControllerTests.cs index 009f67e8e..8f7ab324a 100644 --- a/tests/UnitTests/WorkflowManager.Tests/Controllers/TasksControllerTests.cs +++ b/tests/UnitTests/WorkflowManager.Tests/Controllers/TasksControllerTests.cs @@ -23,21 +23,24 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.ControllersShared; -using Monai.Deploy.WorkflowManager.Models; -using Monai.Deploy.WorkflowManager.Shared.Filter; -using Monai.Deploy.WorkflowManager.Shared.Services; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.ControllersShared; +using Monai.Deploy.WorkflowManager.Common.Models; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; using Moq; using Xunit; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; -namespace Monai.Deploy.WorkflowManager.Test.Controllers +namespace Monai.Deploy.WorkflowManager.Common.Test.Controllers { public class TasksControllerTests { +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. private TasksController TasksController { get; set; } private readonly Mock _tasksService; @@ -196,3 +199,6 @@ public async Task GetAsync_TaskDoesNotExist_ReturnsBadRequest() } } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. diff --git a/tests/UnitTests/WorkflowManager.Tests/Controllers/WorkflowInstanceControllerTests.cs b/tests/UnitTests/WorkflowManager.Tests/Controllers/WorkflowInstanceControllerTests.cs index c88b6ab1b..390c24aed 100644 --- a/tests/UnitTests/WorkflowManager.Tests/Controllers/WorkflowInstanceControllerTests.cs +++ b/tests/UnitTests/WorkflowManager.Tests/Controllers/WorkflowInstanceControllerTests.cs @@ -26,17 +26,17 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.ControllersShared; -using Monai.Deploy.WorkflowManager.Shared.Filter; -using Monai.Deploy.WorkflowManager.Shared.Services; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.ControllersShared; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; using Moq; using Xunit; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; -namespace Monai.Deploy.WorkflowManager.Test.Controllers +namespace Monai.Deploy.WorkflowManager.Common.Test.Controllers { public class WorkflowsInstanceControllerTests { @@ -46,7 +46,9 @@ public class WorkflowsInstanceControllerTests private readonly Mock> _logger; private readonly Mock _uriService; private readonly IOptions _options; - +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. public WorkflowsInstanceControllerTests() { _options = Options.Create(new WorkflowManagerOptions()); @@ -398,12 +400,14 @@ public async Task TaskGetFailedAsync_GivenGetAllFailedAsyncReturnsNoResults_Retu public async Task TaskGetFailedAsync_GivenGetAllFailedAsyncReturnsThrowsException_ReturnsInternalServiceError() { _workflowInstanceService.Setup(w => w.GetAllFailedAsync()).ThrowsAsync(new Exception()); -; + var result = await WorkflowInstanceController.GetFailedAsync(); var objectResult = Assert.IsType(result); objectResult.StatusCode.Should().Be((int)HttpStatusCode.InternalServerError); + var responseValue = (ProblemDetails)objectResult.Value; + responseValue.Status.Should().Be((int)HttpStatusCode.InternalServerError); var problemMessage = "Unexpected error occurred."; @@ -419,8 +423,11 @@ public async Task TaskGetFailedAsync_GivenGetAllFailedAsyncReturnsThrowsExceptio It.Is(eventId => eventId.Id == 100006), It.Is((@object, @type) => @object.ToString() == expectedErrorMessage), It.IsAny(), - It.IsAny>()), + It.IsAny>()), Times.Once); } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. } diff --git a/tests/UnitTests/WorkflowManager.Tests/Controllers/WorkflowsControllerTests.cs b/tests/UnitTests/WorkflowManager.Tests/Controllers/WorkflowsControllerTests.cs index e3540ee70..1b71b8075 100644 --- a/tests/UnitTests/WorkflowManager.Tests/Controllers/WorkflowsControllerTests.cs +++ b/tests/UnitTests/WorkflowManager.Tests/Controllers/WorkflowsControllerTests.cs @@ -21,21 +21,21 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Contracts.Responses; -using Monai.Deploy.WorkflowManager.ControllersShared; -using Monai.Deploy.WorkflowManager.Shared.Services; -using Monai.Deploy.WorkflowManager.Validators; -using Monai.Deploy.WorkflowManager.Shared.Wrappers; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Contracts.Responses; +using Monai.Deploy.WorkflowManager.Common.ControllersShared; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; +using Monai.Deploy.WorkflowManager.Common.Validators; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Wrappers; using Moq; using Xunit; -using Monai.Deploy.WorkflowManager.Shared.Filter; -using Monai.Deploy.WorkflowManager.Services.InformaticsGateway; -using Monai.Deploy.WorkflowManager.Common.Exceptions; +using Monai.Deploy.WorkflowManager.Common.Services.InformaticsGateway; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Exceptions; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; -namespace Monai.Deploy.WorkflowManager.Test.Controllers +namespace Monai.Deploy.WorkflowManager.Common.Test.Controllers { public class WorkflowsControllerTests { @@ -48,7 +48,9 @@ public class WorkflowsControllerTests private readonly Mock> _loggerWorkflowValidator; private readonly Mock _uriService; private readonly IOptions _options; - +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. public WorkflowsControllerTests() { _options = Options.Create( @@ -1232,4 +1234,7 @@ public async Task GetByAeTitle_ShouldCall_GetCountByAeTitleAsync() Assert.Equal(200, objectResult.StatusCode); } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. } diff --git a/tests/UnitTests/WorkflowManager.Tests/DummyMessagingService.cs b/tests/UnitTests/WorkflowManager.Tests/DummyMessagingService.cs index fbbe05fbe..45b427770 100755 --- a/tests/UnitTests/WorkflowManager.Tests/DummyMessagingService.cs +++ b/tests/UnitTests/WorkflowManager.Tests/DummyMessagingService.cs @@ -24,16 +24,16 @@ using Monai.Deploy.Messaging.Common; using Monai.Deploy.Messaging.Messages; -namespace Monai.Deploy.WorkflowManager.Tests +namespace Monai.Deploy.WorkflowManager.Common.Tests { internal class DummyMessageSubscriberHealtCheck : SubscriberServiceHealthCheckRegistrationBase { - public override IHealthChecksBuilder Configure(IHealthChecksBuilder builder, HealthStatus? failureStatus = null, IEnumerable tags = null, TimeSpan? timeout = null) => builder; + public override IHealthChecksBuilder Configure(IHealthChecksBuilder builder, HealthStatus? failureStatus = null, IEnumerable? tags = null, TimeSpan? timeout = null) => builder; } internal class DummyMessagePublisherHealtCheck : PublisherServiceHealthCheckRegistrationBase { - public override IHealthChecksBuilder Configure(IHealthChecksBuilder builder, HealthStatus? failureStatus = null, IEnumerable tags = null, TimeSpan? timeout = null) => builder; + public override IHealthChecksBuilder Configure(IHealthChecksBuilder builder, HealthStatus? failureStatus = null, IEnumerable? tags = null, TimeSpan? timeout = null) => builder; } internal class DummyMessagePublisherRegistrar : PublisherServiceRegistrationBase @@ -50,7 +50,7 @@ internal class DummyMessagingService : IMessageBrokerPublisherService, IMessageB { public string Name => "Dummy Messaging Service"; - public event ConnectionErrorHandler OnConnectionError; + public event ConnectionErrorHandler? OnConnectionError; public void Acknowledge(MessageBase message) => throw new NotImplementedException(); diff --git a/tests/UnitTests/WorkflowManager.Tests/DummyStorageService.cs b/tests/UnitTests/WorkflowManager.Tests/DummyStorageService.cs index 52504f944..0e359f090 100644 --- a/tests/UnitTests/WorkflowManager.Tests/DummyStorageService.cs +++ b/tests/UnitTests/WorkflowManager.Tests/DummyStorageService.cs @@ -25,7 +25,7 @@ using Monai.Deploy.Storage; using Monai.Deploy.Storage.API; -namespace Monai.Deploy.WorkflowManager.Tests +namespace Monai.Deploy.WorkflowManager.Common.Tests { internal class DummyStorageRegistrar : ServiceRegistrationBase { diff --git a/tests/UnitTests/WorkflowManager.Tests/Monai.Deploy.WorkflowManager.Tests.csproj b/tests/UnitTests/WorkflowManager.Tests/Monai.Deploy.WorkflowManager.Tests.csproj index 5479040c8..f08924691 100644 --- a/tests/UnitTests/WorkflowManager.Tests/Monai.Deploy.WorkflowManager.Tests.csproj +++ b/tests/UnitTests/WorkflowManager.Tests/Monai.Deploy.WorkflowManager.Tests.csproj @@ -21,6 +21,7 @@ Monai.Deploy.WorkflowManager.Test ..\..\..\StyleCop.Analyzers.ruleset false + enable @@ -44,7 +45,8 @@ - + + diff --git a/tests/UnitTests/WorkflowManager.Tests/ProgramTest.cs b/tests/UnitTests/WorkflowManager.Tests/ProgramTest.cs index c14200bbb..ed9a0a692 100644 --- a/tests/UnitTests/WorkflowManager.Tests/ProgramTest.cs +++ b/tests/UnitTests/WorkflowManager.Tests/ProgramTest.cs @@ -19,7 +19,7 @@ using System.Reflection; using Xunit; -namespace Monai.Deploy.WorkflowManager.Tests +namespace Monai.Deploy.WorkflowManager.Common.Tests { public class ProgramTest { diff --git a/tests/UnitTests/WorkflowManager.Tests/Services/DataRetentionService/DataRetentionServiceTest.cs b/tests/UnitTests/WorkflowManager.Tests/Services/DataRetentionService/DataRetentionServiceTest.cs index 87d48eafe..8b6cbdce6 100644 --- a/tests/UnitTests/WorkflowManager.Tests/Services/DataRetentionService/DataRetentionServiceTest.cs +++ b/tests/UnitTests/WorkflowManager.Tests/Services/DataRetentionService/DataRetentionServiceTest.cs @@ -18,14 +18,14 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; -using Monai.Deploy.WorkflowManager.Services.DataRetentionService; -using Monai.Deploy.WorkflowManager.Shared; +using Monai.Deploy.WorkflowManager.Common.Services.DataRetentionService; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Moq; using Xunit; -namespace Monai.Deploy.WorkflowManager.Test.Services.Http +namespace Monai.Deploy.WorkflowManager.Common.Test.Services.Http { - public class DataRetentionServiceTest + public sealed class DataRetentionServiceTest : IDisposable { private readonly Mock> _logger; private readonly CancellationTokenSource _cancellationTokenSource; @@ -57,5 +57,10 @@ public async Task CanStartStop() service.Dispose(); Assert.Equal(ServiceStatus.Disposed, service.Status); } + + public void Dispose() + { + _cancellationTokenSource.Dispose(); + } } } diff --git a/tests/UnitTests/WorkflowManager.Tests/Shared/VerifyLogExtension.cs b/tests/UnitTests/WorkflowManager.Tests/Shared/VerifyLogExtension.cs index 4c4414051..0407b63b5 100644 --- a/tests/UnitTests/WorkflowManager.Tests/Shared/VerifyLogExtension.cs +++ b/tests/UnitTests/WorkflowManager.Tests/Shared/VerifyLogExtension.cs @@ -19,11 +19,14 @@ using Microsoft.Extensions.Logging; using Moq; -namespace Monai.Deploy.WorkflowManager.Test.SharedTest +namespace Monai.Deploy.WorkflowManager.Common.Test.SharedTest { [ExcludeFromCodeCoverage] public static class VerifyLogExtension { +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. public static Mock VerifyLoggingMessageEndsWith(this Mock logger, string expectedMessage, LogLevel expectedLogLevel = LogLevel.Debug, Times? times = null) { times ??= Times.Once(); @@ -36,7 +39,7 @@ public static Mock VerifyLoggingMessageEndsWith(this Mock logg It.IsAny(), It.Is((v, t) => state(v, t)), It.IsAny(), - It.Is>((v, t) => true)), (Times)times); + It.Is>((v, t) => true)), (Times)times); return logger; } @@ -52,7 +55,7 @@ public static Mock VerifyLoggingMessageBeginsWith(this Mock lo It.IsAny(), It.Is((v, t) => state(v, t)), It.IsAny(), - It.Is>((v, t) => true)), (Times)times); + It.Is>((v, t) => true)), (Times)times); return logger; } @@ -68,7 +71,7 @@ public static Mock> VerifyLoggingMessageBeginsWith(this Mock(), It.Is((v, t) => state(v, t)), It.IsAny(), - It.Is>((v, t) => true)), (Times)times); + It.Is>((v, t) => true)), (Times)times); return logger; } @@ -84,7 +87,7 @@ public static Mock VerifyLogging(this Mock logger, string expe It.IsAny(), It.Is((v, t) => state(v, t)), It.IsAny(), - It.Is>((v, t) => true)), (Times)times); + It.Is>((v, t) => true)), (Times)times); return logger; } @@ -98,7 +101,7 @@ public static Mock VerifyLogging(this Mock logger, LogLevel ex It.IsAny(), It.Is((v, t) => true), It.IsAny(), - It.Is>((v, t) => true)), (Times)times); + It.Is>((v, t) => true)), (Times)times); return logger; } @@ -115,7 +118,7 @@ public static Mock> VerifyLogging(this Mock> logger, st It.IsAny(), It.Is((v, t) => state(v, t)), It.IsAny(), - It.Is>((v, t) => true)), (Times)times); + It.Is>((v, t) => true)), (Times)times); return logger; } @@ -129,9 +132,12 @@ public static Mock> VerifyLogging(this Mock> logger, Lo It.IsAny(), It.Is((v, t) => true), It.IsAny(), - It.Is>((v, t) => true)), (Times)times); + It.Is>((v, t) => true)), (Times)times); return logger; } } +#pragma warning restore CS8604 // Possible null reference argument. +#pragma warning restore CS8602 // Dereference of a possibly null reference. +#pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. } diff --git a/tests/UnitTests/WorkflowManager.Tests/Validators/WorkflowValidatorTests.cs b/tests/UnitTests/WorkflowManager.Tests/Validators/WorkflowValidatorTests.cs index 0d28b4f54..5072a4d15 100644 --- a/tests/UnitTests/WorkflowManager.Tests/Validators/WorkflowValidatorTests.cs +++ b/tests/UnitTests/WorkflowManager.Tests/Validators/WorkflowValidatorTests.cs @@ -20,16 +20,15 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Monai.Deploy.WorkflowManager.Common.Interfaces; -using Monai.Deploy.WorkflowManager.Configuration; -using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Services.InformaticsGateway; -using Monai.Deploy.WorkflowManager.Validators; -using MongoDB.Driver.Linq; +using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; +using Monai.Deploy.WorkflowManager.Common.Configuration; +using Monai.Deploy.WorkflowManager.Common.Contracts.Models; +using Monai.Deploy.WorkflowManager.Common.Services.InformaticsGateway; +using Monai.Deploy.WorkflowManager.Common.Validators; using Moq; using Xunit; -namespace Monai.Deploy.WorkflowManager.Test.Validators +namespace Monai.Deploy.WorkflowManager.Common.Test.Validators { public class WorkflowValidatorTests { @@ -60,6 +59,7 @@ public WorkflowValidatorTests() [Fact] public async Task ValidateWorkflow_ValidatesAWorkflow_ReturnsErrorsAndHasCorrectValidationResultsAsync() { +#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. var workflow = new Workflow { Name = "Workflowname1", @@ -597,6 +597,7 @@ public async Task ValidateWorkflow_ValidatesAWorkflow_ReturnsErrorsAndHasCorrect }, } }; +#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type. _workflowService.Setup(w => w.GetByNameAsync(It.IsAny())) .ReturnsAsync(new WorkflowRevision()); @@ -810,6 +811,7 @@ public async Task ValidateWorkflow_ValidateWorkflow_WithPluginArgs_ReturnsNoErro } }; +#pragma warning disable CS8620 // Argument cannot be used for parameter due to differences in the nullability of reference types. _workflowService.Setup(w => w.GetByNameAsync(It.IsAny())) .ReturnsAsync(null, TimeSpan.FromSeconds(.1)); diff --git a/tests/UnitTests/WorkflowManager.Tests/appsettings.json b/tests/UnitTests/WorkflowManager.Tests/appsettings.json index dd72fe118..3cdb31ff5 100755 --- a/tests/UnitTests/WorkflowManager.Tests/appsettings.json +++ b/tests/UnitTests/WorkflowManager.Tests/appsettings.json @@ -22,7 +22,7 @@ "dicomWebAgentName": "monaidicomweb", "scuAgentName": "monaiscu" }, - "publisherServiceAssemblyName": "Monai.Deploy.WorkflowManager.Tests.DummyMessagingService, Monai.Deploy.WorkflowManager.Tests", + "publisherServiceAssemblyName": "Monai.Deploy.WorkflowManager.Common.Tests.DummyMessagingService, Monai.Deploy.WorkflowManager.Tests", "publisherSettings": { "endpoint": "localhost", "username": "admin", @@ -30,7 +30,7 @@ "virtualHost": "monaideploy", "exchange": "monaideploy" }, - "subscriberServiceAssemblyName": "Monai.Deploy.WorkflowManager.Tests.DummyMessagingService, Monai.Deploy.WorkflowManager.Tests", + "subscriberServiceAssemblyName": "Monai.Deploy.WorkflowManager.Common.Tests.DummyMessagingService, Monai.Deploy.WorkflowManager.Tests", "subscriberSettings": { "endpoint": "localhost", "username": "admin", @@ -47,7 +47,7 @@ } }, "storage": { - "serviceAssemblyName": "Monai.Deploy.WorkflowManager.Tests.DummyStorageService, Monai.Deploy.WorkflowManager.Tests", + "serviceAssemblyName": "Monai.Deploy.WorkflowManager.Common.Tests.DummyStorageService, Monai.Deploy.WorkflowManager.Tests", "settings": { "endpoint": "localhost:9000", "accessKey": "minioadmin", diff --git a/tests/UnitTests/WorkflowManager.Tests/packages.lock.json b/tests/UnitTests/WorkflowManager.Tests/packages.lock.json index fbcbe7827..7882ef8c4 100755 --- a/tests/UnitTests/WorkflowManager.Tests/packages.lock.json +++ b/tests/UnitTests/WorkflowManager.Tests/packages.lock.json @@ -1995,15 +1995,14 @@ "Monai.Deploy.Security": "[0.1.3, )", "Monai.Deploy.Storage": "[0.2.18, )", "Monai.Deploy.Storage.MinIO": "[0.2.18, )", - "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Miscellaneous": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Database": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", "Monai.Deploy.WorkflowManager.MonaiBackgroundService": "[1.0.0, )", "Monai.Deploy.WorkflowManager.PayloadListener": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Services": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Shared": "[1.0.0, )", "Mongo.Migration": "[3.1.4, )", "NLog": "[5.1.2, )", "NLog.Web.AspNetCore": "[5.2.2, )", @@ -2019,6 +2018,22 @@ "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" } }, + "monai.deploy.workflowmanager.common.configuration": { + "type": "Project", + "dependencies": { + "Monai.Deploy.Messaging": "[0.1.25, )", + "Monai.Deploy.Storage": "[0.2.18, )" + } + }, + "monai.deploy.workflowmanager.common.miscellaneous": { + "type": "Project", + "dependencies": { + "Ardalis.GuardClauses": "[4.1.1, )", + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.21, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "fo-dicom": "[5.0.3, )" + } + }, "monai.deploy.workflowmanager.conditionsresolver": { "type": "Project", "dependencies": { @@ -2028,13 +2043,6 @@ "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" } }, - "monai.deploy.workflowmanager.configuration": { - "type": "Project", - "dependencies": { - "Monai.Deploy.Messaging": "[0.1.25, )", - "Monai.Deploy.Storage": "[0.2.18, )" - } - }, "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { @@ -2068,11 +2076,10 @@ "monai.deploy.workflowmanager.payloadlistener": { "type": "Project", "dependencies": { - "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Miscellaneous": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Shared": "[1.0.0, )", "Monai.Deploy.WorkloadManager.WorkfowExecuter": "[1.0.0, )" } }, @@ -2081,16 +2088,7 @@ "dependencies": { "Microsoft.Extensions.Http": "[3.1.0, )", "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )" - } - }, - "monai.deploy.workflowmanager.shared": { - "type": "Project", - "dependencies": { - "Ardalis.GuardClauses": "[4.1.1, )", - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.21, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", - "fo-dicom": "[5.0.3, )" + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )" } }, "monai.deploy.workflowmanager.storage": { @@ -2105,12 +2103,12 @@ "type": "Project", "dependencies": { "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Common.Miscellaneous": "[1.0.0, )", "Monai.Deploy.WorkflowManager.ConditionsResolver": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Database": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", - "Monai.Deploy.WorkflowManager.Shared": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" } }