CandidatoService.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using ConcursoProjetos.Data;
  2. using ConcursoProjetos.Domain.Entities;
  3. using Microsoft.CodeAnalysis;
  4. using Microsoft.EntityFrameworkCore;
  5. namespace ConcursoProjetos.Service;
  6. public interface ICandidatoService
  7. {
  8. bool Registar(Candidato candidato);
  9. Candidato? ObterPorUserID(string userId);
  10. bool AlterarRegistro(Candidato candidato);
  11. }
  12. public class CandidatoService : ICandidatoService
  13. {
  14. private readonly IDbContextFactory<ApplicationDbContext> _dbContextFactory;
  15. public CandidatoService(IDbContextFactory<ApplicationDbContext> dbContextFactory)
  16. {
  17. _dbContextFactory = dbContextFactory;
  18. }
  19. public bool Registar(Candidato candidato)
  20. {
  21. using var context = _dbContextFactory.CreateDbContext();
  22. context.Candidato.Add(candidato);
  23. context.SaveChanges();
  24. return true;
  25. }
  26. public bool AlterarRegistro(Candidato candidato)
  27. {
  28. using var context = _dbContextFactory.CreateDbContext();
  29. var existingCandidate = context.Candidato.Find(candidato.Id);
  30. if (existingCandidate != null)
  31. {
  32. context.Entry(existingCandidate).CurrentValues.SetValues(candidato);
  33. context.SaveChanges();
  34. return true;
  35. }
  36. return false;
  37. }
  38. public Candidato? ObterPorUserID(string userId)
  39. {
  40. using var context = _dbContextFactory.CreateDbContext();
  41. var retorno = context.Candidato.Where(c => c.UserId.ToLower() == userId.ToLower()).FirstOrDefault();
  42. return retorno;
  43. }
  44. }