Skip to content

Commit

Permalink
Refactor WorkflowDefinitionService calls and update comments
Browse files Browse the repository at this point in the history
Refactored the WorkflowDefinitionService method calls to be invoked with BlazorServiceContext in WorkflowDefinitions List. This enhances consistency in method invocation. Additionally, updated comments for better clarity in WorkflowInstances List page.
  • Loading branch information
sfmskywalker committed Dec 10, 2023
1 parent 25ce2f2 commit f4f5dbf
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,7 @@ private async Task OnCreateWorkflowClicked()
if (!dialogResult.Canceled)
{
var newWorkflowModel = (WorkflowMetadataModel)dialogResult.Data;
var result =
await WorkflowDefinitionService.CreateNewDefinitionAsync(newWorkflowModel.Name!,
newWorkflowModel.Description!);
var result = await InvokeWithBlazorServiceContext(() => WorkflowDefinitionService.CreateNewDefinitionAsync(newWorkflowModel.Name!, newWorkflowModel.Description!));

result.OnSuccess(definition => Edit(definition.DefinitionId));
result.OnFailed(errors => Snackbar.Add(string.Join(Environment.NewLine, errors.Errors)));
Expand Down Expand Up @@ -163,15 +161,13 @@ private async Task OnDeleteClicked(WorkflowDefinitionRow workflowDefinitionRow)
return;

var definitionId = workflowDefinitionRow.DefinitionId;
await WorkflowDefinitionService.DeleteAsync(definitionId);
await InvokeWithBlazorServiceContext(() => WorkflowDefinitionService.DeleteAsync(definitionId));
Reload();
}

private async Task OnDownloadClicked(WorkflowDefinitionRow workflowDefinitionRow)
{
var download =
await WorkflowDefinitionService.ExportDefinitionAsync(workflowDefinitionRow.DefinitionId,
VersionOptions.Latest);
var download = await InvokeWithBlazorServiceContext(() => WorkflowDefinitionService.ExportDefinitionAsync(workflowDefinitionRow.DefinitionId, VersionOptions.Latest));
var fileName = $"{workflowDefinitionRow.Name.Kebaberize()}.json";
await Files.DownloadFileFromStreamAsync(fileName, download.Content);
}
Expand All @@ -185,7 +181,7 @@ private async Task OnBulkDeleteClicked()
return;

var workflowDefinitionIds = _selectedRows.Select(x => x.DefinitionId).ToList();
await WorkflowDefinitionService.BulkDeleteAsync(workflowDefinitionIds);
await InvokeWithBlazorServiceContext(() => WorkflowDefinitionService.BulkDeleteAsync(workflowDefinitionIds));
Reload();
}

Expand All @@ -198,7 +194,7 @@ private async Task OnBulkPublishClicked()
return;

var workflowDefinitionIds = _selectedRows.Select(x => x.DefinitionId).ToList();
var response = await WorkflowDefinitionService.BulkPublishAsync(workflowDefinitionIds);
var response = await InvokeWithBlazorServiceContext(() => WorkflowDefinitionService.BulkPublishAsync(workflowDefinitionIds));

if (response.Published.Count > 0)
{
Expand Down Expand Up @@ -236,7 +232,7 @@ private async Task OnBulkRetractClicked()
return;

var workflowDefinitionIds = _selectedRows.Select(x => x.DefinitionId).ToList();
var response = await WorkflowDefinitionService.BulkRetractAsync(workflowDefinitionIds);
var response = await InvokeWithBlazorServiceContext(() => WorkflowDefinitionService.BulkRetractAsync(workflowDefinitionIds));

if (response.Retracted.Count > 0)
{
Expand Down Expand Up @@ -268,7 +264,7 @@ private async Task OnBulkRetractClicked()
private async Task OnBulkExportClicked()
{
var workflowVersionIds = _selectedRows.Select(x => x.Id).ToList();
var download = await WorkflowDefinitionService.BulkExportDefinitionsAsync(workflowVersionIds);
var download = await InvokeWithBlazorServiceContext(() => WorkflowDefinitionService.BulkExportDefinitionsAsync(workflowVersionIds));
var fileName = download.FileName;
await Files.DownloadFileFromStreamAsync(fileName, download.Content);
}
Expand All @@ -282,7 +278,7 @@ private async Task OnFilesSelected(IReadOnlyList<IBrowserFile> files)
{
var maxAllowedSize = 1024 * 1024 * 10; // 10 MB
var streamParts = files.Select(x => new StreamPart(x.OpenReadStream(maxAllowedSize), x.Name, x.ContentType)).ToList();
var count = await WorkflowDefinitionService.ImportFilesAsync(streamParts);
var count = await InvokeWithBlazorServiceContext(() => WorkflowDefinitionService.ImportFilesAsync(streamParts));
var message = count == 1 ? "Successfully imported one workflow" : $"Successfully imported {count} workflows";
Snackbar.Add(message, Severity.Success, options => { options.SnackbarVariant = Variant.Filled; });
Reload();
Expand All @@ -296,13 +292,13 @@ private void OnSearch(string text)

private async Task OnPublishClicked(string definitionId)
{
await WorkflowDefinitionService.PublishAsync(definitionId);
await InvokeWithBlazorServiceContext(() => WorkflowDefinitionService.PublishAsync(definitionId));
Snackbar.Add("Workflow published", Severity.Success, options => { options.SnackbarVariant = Variant.Filled; });
}

private async Task OnRetractClicked(string definitionId)
{
await WorkflowDefinitionService.RetractAsync(definitionId);
await InvokeWithBlazorServiceContext(() => WorkflowDefinitionService.RetractAsync(definitionId));
Snackbar.Add("Workflow retracted", Severity.Success, options => { options.SnackbarVariant = Variant.Filled; });
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
using System.Runtime.InteropServices;
using Elsa.Api.Client.Resources.WorkflowDefinitions.Models;
using Elsa.Api.Client.Resources.WorkflowDefinitions.Responses;
using Elsa.Api.Client.Resources.WorkflowInstances.Enums;
Expand All @@ -15,6 +14,7 @@

namespace Elsa.Studio.Workflows.Pages.WorkflowInstances.List;

/// Represents the workflow instances list page.
public partial class Index
{
private MudTable<WorkflowInstanceRow> _table = null!;
Expand All @@ -32,14 +32,10 @@ public partial class Index
private ICollection<WorkflowDefinitionSummary> WorkflowDefinitions { get; set; } = new List<WorkflowDefinitionSummary>();
private ICollection<WorkflowDefinitionSummary> SelectedWorkflowDefinitions { get; set; } = new List<WorkflowDefinitionSummary>();

/// <summary>
/// The selected statuses to filter by.
/// </summary>
public ICollection<WorkflowStatus> SelectedStatuses { get; set; } = new List<WorkflowStatus>();

/// <summary>
/// The selected sub-statuses to filter by.
/// </summary>
public ICollection<WorkflowSubStatus> SelectedSubStatuses { get; set; } = new List<WorkflowSubStatus>();

/// <inheritdoc />
Expand Down

0 comments on commit f4f5dbf

Please sign in to comment.