38 lines
1.5 KiB
C#
38 lines
1.5 KiB
C#
using OpenCand.Core.Models;
|
|
using OpenCand.Repository;
|
|
|
|
namespace OpenCand.Services
|
|
{
|
|
public class BemCandidatoService
|
|
{
|
|
private readonly CandidatoRepository candidatoRepository;
|
|
private readonly BemCandidatoRepository bemCandidatoRepository;
|
|
|
|
public BemCandidatoService(CandidatoRepository candidatoRepository, BemCandidatoRepository bemCandidatoRepository)
|
|
{
|
|
this.candidatoRepository = candidatoRepository;
|
|
this.bemCandidatoRepository = bemCandidatoRepository;
|
|
}
|
|
|
|
public async Task AddBemCandidatoAsync(BemCandidato bemCandidato)
|
|
{
|
|
if (bemCandidato == null || string.IsNullOrWhiteSpace(bemCandidato.SqCandidato))
|
|
{
|
|
throw new ArgumentNullException(nameof(bemCandidato), "BemCandidato cannot be null");
|
|
}
|
|
|
|
// Get idCandidato from CandidatoRepository
|
|
var candidato = await candidatoRepository.GetIdCandidatoBySqCandidato(bemCandidato.SqCandidato, bemCandidato.Ano, bemCandidato.SiglaUF, bemCandidato.NomeUE);
|
|
|
|
if (candidato == null || candidato.IdCandidato == Guid.Empty)
|
|
{
|
|
throw new InvalidOperationException($"AddBemCandidatoAsync - Candidato '{bemCandidato.SqCandidato}'/{bemCandidato.Ano}/'{bemCandidato.SiglaUF}'/'{bemCandidato.NomeUE}' not found.");
|
|
}
|
|
|
|
bemCandidato.IdCandidato = candidato.IdCandidato;
|
|
|
|
await bemCandidatoRepository.AddBemCandidatoAsync(bemCandidato);
|
|
}
|
|
}
|
|
}
|