68 lines
1.9 KiB
C#
68 lines
1.9 KiB
C#
using Core.Exceptions;
|
|
using Core.SpecConfig;
|
|
using Generator.Repo;
|
|
|
|
namespace Generator.Services;
|
|
|
|
public class GenerationService
|
|
{
|
|
private readonly GenerateRepo _repo;
|
|
private readonly PublicationService _pubService;
|
|
|
|
public GenerationService(PublicationService publicationService, GenerateRepo repo)
|
|
{
|
|
_repo = repo;
|
|
_pubService = publicationService;
|
|
}
|
|
|
|
public async Task Launch(ProcessTask task)
|
|
{
|
|
switch (task.Language)
|
|
{
|
|
case Language.Dotnet:
|
|
await LaunchDotnet(task);
|
|
break;
|
|
case Language.Java:
|
|
await LaunchJava(task);
|
|
break;
|
|
case Language.Javascript:
|
|
await LaunchJavascript(task);
|
|
break;
|
|
default:
|
|
throw new WeirdException("You broke me :(");
|
|
}
|
|
}
|
|
|
|
public async Task LaunchDotnet(ProcessTask task)
|
|
{
|
|
while (task.Tasks.TryDequeue(out var file))
|
|
{
|
|
await _repo.GenerateDotnet(task.GenerationType, file);
|
|
|
|
if (task.PublishType == PublishType.No) continue;
|
|
await _pubService.PublishDotnet(file, task.GenerationType, task.PublishType);
|
|
}
|
|
}
|
|
|
|
public async Task LaunchJava(ProcessTask task)
|
|
{
|
|
while (task.Tasks.TryDequeue(out var file))
|
|
{
|
|
await _repo.GenerateJava(file);
|
|
|
|
if (task.PublishType == PublishType.No) continue;
|
|
await _pubService.PublishJava(file, task.GenerationType, task.PublishType);
|
|
}
|
|
}
|
|
|
|
public async Task LaunchJavascript(ProcessTask task)
|
|
{
|
|
while (task.Tasks.TryDequeue(out var file))
|
|
{
|
|
await _repo.GenerateJavascript(file);
|
|
|
|
if (task.PublishType == PublishType.No) continue;
|
|
await _pubService.PublishJavascript(file, task.GenerationType, task.PublishType);
|
|
}
|
|
}
|
|
} |