Files
Sergio Matias Urquin b2635193dc Add project files.
2025-04-29 18:44:41 -06:00

91 lines
2.7 KiB
C#

using Core.Blueprint.Service.External.Clients;
using Core.Blueprint.Service.External.Clients.BluePrintService;
using Refit;
namespace Core.Blueprint.Service.UseCases.BluePrint
{
public interface IBlueprintService
{
Task<IEnumerable<MongoBlueprintCollection>> GetBlueprintsAsync();
Task<MongoBlueprintCollection> GetBlueprintAsync(string id);
Task<MongoBlueprintCollection> CreateBlueprintAsync(MongoBlueprintCollection blueprint);
Task UpdateBlueprintAsync(string id, MongoBlueprintCollection blueprint);
Task DeleteBlueprintAsync(string id);
}
public class BlueprintService: IBlueprintService
{
private readonly IBluePrintServiceClient _blueprintApi;
public BlueprintService(IBluePrintServiceClient client)
{
_blueprintApi = client;
}
public async Task<IEnumerable<MongoBlueprintCollection>> GetBlueprintsAsync()
{
try
{
return await _blueprintApi.GetBlueprintsAsync();
}
catch (ApiException ex)
{
Console.WriteLine($"Error fetching blueprints: {ex.Message}");
throw;
}
}
public async Task<MongoBlueprintCollection> GetBlueprintAsync(string id)
{
try
{
return await _blueprintApi.GetBlueprintAsync(id);
}
catch (ApiException ex)
{
Console.WriteLine($"Error fetching blueprint with ID {id}: {ex.Message}");
throw;
}
}
public async Task<MongoBlueprintCollection> CreateBlueprintAsync(MongoBlueprintCollection blueprint)
{
try
{
return await _blueprintApi.CreateBlueprintAsync(blueprint);
}
catch (ApiException ex)
{
Console.WriteLine($"Error creating blueprint: {ex.Message}");
throw;
}
}
public async Task UpdateBlueprintAsync(string id, MongoBlueprintCollection blueprint)
{
try
{
await _blueprintApi.UpdateBlueprintAsync(id, blueprint);
}
catch (ApiException ex)
{
Console.WriteLine($"Error updating blueprint with ID {id}: {ex.Message}");
throw;
}
}
public async Task DeleteBlueprintAsync(string id)
{
try
{
await _blueprintApi.DeleteBlueprintAsync(id);
}
catch (ApiException ex)
{
Console.WriteLine($"Error deleting blueprint with ID {id}: {ex.Message}");
throw;
}
}
}
}