in src/dotnet/AspireWorker/AspireHost/AspireHost.cs [133:170]
internal async Task<(string? sessionId, ErrorResponse? error)> Create(Session session)
{
var launchConfiguration = session.LaunchConfigurations.SingleOrDefault(it =>
string.Equals(it.Type, "project", StringComparison.InvariantCultureIgnoreCase)
);
if (launchConfiguration == null)
{
_logger.OnlySingleProjectLaunchConfigurationIsSupported();
return (null, _multipleProjectLaunchConfigurations);
}
var validationError = ValidateLaunchConfiguration(launchConfiguration);
if (validationError != null) return (null, validationError);
var envs = session.Env
?.Where(it => it.Value is not null)
.Select(it => new SessionEnvironmentVariable(it.Name, it.Value!))
.ToArray();
var request = new CreateSessionRequest(
launchConfiguration.ProjectPath,
launchConfiguration.Mode == Mode.Debug,
launchConfiguration.LaunchProfile,
launchConfiguration.DisableLaunchProfile == true,
session.Args,
envs
);
_logger.CreateNewSessionRequestReceived(request.ProjectPath);
_logger.SessionCreationRequestBuilt(request);
var result = await _connectionWrapper.CreateSession(_aspireHostModel, request);
_logger.SessionCreationResponseReceived(result);
var error = result?.Error is not null ? BuildErrorResponse(result.Error) : null;
return (result?.SessionId, error);
}