diff --git a/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Contracts/IActivityExecutionsApi.cs b/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Contracts/IActivityExecutionsApi.cs new file mode 100644 index 000000000..f7ae99343 --- /dev/null +++ b/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Contracts/IActivityExecutionsApi.cs @@ -0,0 +1,30 @@ +using Elsa.Api.Client.Resources.ActivityExecutions.Models; +using Elsa.Api.Client.Resources.ActivityExecutions.Requests; +using Elsa.Api.Client.Shared.Models; +using Refit; + +namespace Elsa.Api.Client.Resources.ActivityExecutions.Contracts; + +/// +/// Represents a client for the activity executions API. +/// +public interface IActivityExecutionsApi +{ + /// + /// Gets a report of activity executions for a given workflow instance. + /// + /// The request. + /// An optional cancellation token. + /// The response containing the activity execution report. + [Post("/activity-executions/report")] + Task GetReportAsync([Body] GetActivityExecutionReportRequest request, CancellationToken cancellationToken = default); + + /// + /// Lists activity executions for a given activity in a workflow instance. + /// + /// The request. + /// An optional cancellation token. + /// The response containing a list of activity executions. + [Get("/activity-executions/list")] + Task> ListAsync(ListActivityExecutionsRequest request, CancellationToken cancellationToken = default); +} \ No newline at end of file diff --git a/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Contracts/ILoginApi.cs b/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Contracts/ILoginApi.cs deleted file mode 100644 index c129503d2..000000000 --- a/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Contracts/ILoginApi.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Elsa.Api.Client.Resources.ActivityExecutions.Models; -using Elsa.Api.Client.Resources.ActivityExecutions.Requests; -using Refit; - -namespace Elsa.Api.Client.Resources.ActivityExecutions.Contracts; - -/// -/// Represents a client for the activity executions API. -/// -public interface IActivityExecutionsApi -{ - /// - /// Sends the specified request to the API. - /// - /// The request. - /// The cancellation token. - /// The response. - [Post("/activity-executions/report")] - Task GetReportAsync([Body] GetActivityExecutionReportRequest request, CancellationToken cancellationToken = default); -} \ No newline at end of file diff --git a/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Models/ActivityExecutionRecord.cs b/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Models/ActivityExecutionRecord.cs index 9ebfa26f9..85db2f43b 100644 --- a/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Models/ActivityExecutionRecord.cs +++ b/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Models/ActivityExecutionRecord.cs @@ -18,9 +18,24 @@ public class ActivityExecutionRecord : Entity public string ActivityId { get; set; } = default!; /// - /// Gets or sets the activity type version. + /// The type of the activity. /// - public int Version { get; set; } + public string ActivityType { get; set; } = default!; + + /// + /// The version of the activity type. + /// + public int ActivityTypeVersion { get; set; } + + /// + /// The name of the activity. + /// + public string? ActivityName { get; set; } = default!; + + /// + /// The state of the activity at the time this record is created or last updated. + /// + public IDictionary? ActivityState { get; set; } /// /// Gets or sets the time at which the activity execution began. diff --git a/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Requests/GetActivityExecutionReportRequest.cs b/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Requests/GetActivityExecutionReportRequest.cs index fa41e7237..1f8a8c5e6 100644 --- a/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Requests/GetActivityExecutionReportRequest.cs +++ b/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Requests/GetActivityExecutionReportRequest.cs @@ -1,7 +1,7 @@ namespace Elsa.Api.Client.Resources.ActivityExecutions.Requests; /// -/// Represents a request for a list of activity execution log records for a given activity in a workflow instance. +/// Represents a request for a list of activity execution records for a given activity in a workflow instance. /// public class GetActivityExecutionReportRequest { @@ -11,7 +11,7 @@ public class GetActivityExecutionReportRequest public string WorkflowInstanceId { get; set; } = default!; /// - /// The ID of the activity to get the execution record for. + /// The IDs of the activities to get the execution record for. /// public ICollection ActivityIds { get; set; } = new List(); } \ No newline at end of file diff --git a/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Requests/ListActivityExecutionsRequest.cs b/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Requests/ListActivityExecutionsRequest.cs new file mode 100644 index 000000000..f8165300c --- /dev/null +++ b/src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Requests/ListActivityExecutionsRequest.cs @@ -0,0 +1,21 @@ +using Refit; + +namespace Elsa.Api.Client.Resources.ActivityExecutions.Requests; + +/// +/// Represents a request for a list of activity execution records for a given activity in a workflow instance. +/// +public class ListActivityExecutionsRequest +{ + /// + /// The ID of the workflow instance to get the execution log for. + /// + [Query] + public string WorkflowInstanceId { get; set; } = default!; + + /// + /// The ID of the activity to get the execution record for. + /// + [Query] + public string ActivityId { get; set; } = default!; +} \ No newline at end of file