Adding 'IO' module from elsa-core#74
Conversation
There was a problem hiding this comment.
Pull Request Overview
This pull request adds an IO module from Elsa 3.5 to the extensions repository for use in version 3.6 onwards. The module provides a content resolution system that can handle various input types (streams, byte arrays, files, URLs, text, Base64) and convert them to a standardized BinaryContent format.
- Implements a strategy pattern for resolving different content types to binary streams
- Adds HTTP support for downloading content from URLs
- Includes compression functionality for creating ZIP archives with multiple content types
Reviewed Changes
Copilot reviewed 30 out of 30 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
src/modules/io/Elsa.IO/ |
Core IO module with content resolver strategies and models |
src/modules/io/Elsa.IO.Http/ |
HTTP extension for URL-based content resolution |
src/modules/io/Elsa.IO.Compression/ |
Compression extension with ZIP archive creation activity |
Elsa.Extensions.sln |
Solution file updated to include the new IO module projects |
| @@ -0,0 +1,40 @@ | |||
| namespace Elsa.IO.Extensions; | |||
|
|
|||
There was a problem hiding this comment.
The public static class FilePathExtensions is missing XML documentation. Consider adding a summary comment to describe the purpose of this extension class.
| /// <summary> | |
| /// Provides extension methods for handling file paths and related operations. | |
| /// </summary> |
| @@ -0,0 +1,14 @@ | |||
| namespace Elsa.IO.Http.Common; | |||
|
|
|||
| public static class Constants | |||
There was a problem hiding this comment.
The public static class Constants is missing XML documentation. Consider adding a summary comment to describe the purpose of this constants class.
| @@ -0,0 +1,6 @@ | |||
| namespace Elsa.IO.Compression.Common; | |||
|
|
|||
There was a problem hiding this comment.
The public static class Constants is missing XML documentation. Consider adding a summary comment to describe the purpose of this constants class.
| /// <summary> | |
| /// Provides constants used in compression operations. | |
| /// </summary> |
| namespace Elsa.IO.Compression.Common; | ||
|
|
||
| public static class Constants | ||
| { |
There was a problem hiding this comment.
The public constant ZipEntryStrategyPriority is missing XML documentation. Consider adding a summary comment to explain what this priority value represents.
| { | |
| { | |
| /// <summary> | |
| /// Represents the priority value for the zip entry strategy. | |
| /// This value determines the precedence of this strategy when handling zip entries. | |
| /// </summary> |
| /// The name of the HTTP client used for IO operations. | ||
| /// </summary> | ||
| public const string IOFeatureHttpClient = "IOFeatureHttpClient"; | ||
|
|
There was a problem hiding this comment.
The public static class StrategyPriorities is missing XML documentation. Consider adding a summary comment to describe the purpose of this nested class.
| /// <summary> | |
| /// Contains constants that define the priorities of various strategies. | |
| /// </summary> |
| public const string IOFeatureHttpClient = "IOFeatureHttpClient"; | ||
|
|
||
| public static class StrategyPriorities | ||
| { |
There was a problem hiding this comment.
The public constant Uri is missing XML documentation. Consider adding a summary comment to explain what this priority value represents.
| { | |
| { | |
| /// <summary> | |
| /// The priority value assigned to URI-based strategies. | |
| /// </summary> |
This pull request moves the latest IO module (in Elsa 3.5) to the extensions to be used for version 3.6 onwards.