Skip to content

Commit

Permalink
Refactor ActivityMapper constructor to use dependency injection
Browse files Browse the repository at this point in the history
Simplified the ActivityMapper class by injecting dependencies directly into the constructor. Removed unnecessary private fields that held references to the same dependencies.
  • Loading branch information
sfmskywalker committed Mar 12, 2024
1 parent 1a968db commit 4c3f6f5
Showing 1 changed file with 12 additions and 18 deletions.
Expand Up @@ -10,19 +10,12 @@

namespace Elsa.Studio.Workflows.Designer.Services;

internal class ActivityMapper : IActivityMapper
internal class ActivityMapper(
IActivityRegistry activityRegistry,
IActivityPortService activityPortService,
IActivityDisplaySettingsRegistry activityDisplaySettingsRegistry)
: IActivityMapper
{
private readonly IActivityRegistry _activityRegistry;
private readonly IActivityPortService _activityPortService;
private readonly IActivityDisplaySettingsRegistry _activityDisplaySettingsRegistry;

public ActivityMapper(IActivityRegistry activityRegistry, IActivityPortService activityPortService, IActivityDisplaySettingsRegistry activityDisplaySettingsRegistry)
{
_activityRegistry = activityRegistry;
_activityPortService = activityPortService;
_activityDisplaySettingsRegistry = activityDisplaySettingsRegistry;
}

public X6ActivityNode MapActivity(JsonObject activity, ActivityStats? activityStats = default)
{
var activityId = activity.GetId();
Expand Down Expand Up @@ -72,9 +65,9 @@ public IEnumerable<X6Port> GetOutPorts(JsonObject activity)
{
var activityType = activity.GetTypeName();
var activityVersion = activity.GetVersion();
var activityDescriptor = _activityRegistry.Find(activityType, activityVersion)!;
var sourcePorts = _activityPortService.GetPorts(new PortProviderContext(activityDescriptor, activity)).Where(x => x.Type == PortType.Flow);
var displaySettings = _activityDisplaySettingsRegistry.GetSettings(activity.GetTypeName());
var activityDescriptor = activityRegistry.Find(activityType, activityVersion)!;
var sourcePorts = activityPortService.GetPorts(new PortProviderContext(activityDescriptor, activity)).Where(x => x.Type == PortType.Flow);
var displaySettings = activityDisplaySettingsRegistry.GetSettings(activity.GetTypeName());

var ports = sourcePorts.Select(sourcePort => new X6Port
{
Expand Down Expand Up @@ -124,11 +117,11 @@ public IEnumerable<X6Port> GetOutPorts(JsonObject activity)

public IEnumerable<X6Port> GetInPorts(JsonObject activity)
{
var displaySettings = _activityDisplaySettingsRegistry.GetSettings(activity.GetTypeName());
var displaySettings = activityDisplaySettingsRegistry.GetSettings(activity.GetTypeName());
var activityType = activity.GetTypeName();
var activityVersion = activity.GetVersion();
var activityDescriptor = _activityRegistry.Find(activityType, activityVersion)!;
var activityDescriptor = activityRegistry.Find(activityType, activityVersion)!;

var ports = new List<X6Port>();
// Create default output port, except for terminal nodes.
var isStart = activityDescriptor.IsStart;
Expand All @@ -148,6 +141,7 @@ public IEnumerable<X6Port> GetInPorts(JsonObject activity)
}
});
}

return ports;
}
}

0 comments on commit 4c3f6f5

Please sign in to comment.