Import from internal git
This commit is contained in:
68
Generator/Services/GenerationService.cs
Normal file
68
Generator/Services/GenerationService.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user