123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- using ConcursoProjetos.Data;
- using ConcursoProjetos.Domain.Entities;
- using Microsoft.EntityFrameworkCore;
- namespace ConcursoProjetos.Service;
- public interface IProjetoService
- {
- Projeto Adicionar(Projeto projeto);
- Projeto Alterar(Projeto projeto);
- bool Excluir(long projetoId);
- Projeto ObterPorId(long projetoId);
- IEnumerable<Projeto> Listar(long candidatoId);
- }
- public class ProjetoService : IProjetoService
- {
- private readonly IDbContextFactory<ApplicationDbContext> _dbContextFactory;
- public ProjetoService(IDbContextFactory<ApplicationDbContext> dbContextFactory)
- {
- _dbContextFactory = dbContextFactory;
- }
- public Projeto Adicionar(Projeto projeto)
- {
- using var context = _dbContextFactory.CreateDbContext();
- context.Projeto.Add(projeto);
- context.SaveChanges();
- return projeto;
- }
- public Projeto Alterar(Projeto projeto)
- {
- using var context = _dbContextFactory.CreateDbContext();
- var existingProjeto = context.Projeto.Find(projeto.Id);
- if (existingProjeto != null)
- {
- context.Entry(existingProjeto).CurrentValues.SetValues(projeto);
- context.SaveChanges();
- return projeto;
- }
- return null;
- }
- public bool Excluir(long projetoId)
- {
- using var context = _dbContextFactory.CreateDbContext();
- var projeto = context.Projeto.Find(projetoId);
- if (projeto != null)
- {
- context.Projeto.Remove(projeto);
- context.SaveChanges();
- return true;
- }
- return false;
- }
- public Projeto ObterPorId(long projetoId)
- {
- using var context = _dbContextFactory.CreateDbContext();
- return context.Projeto.Find(projetoId);
- }
- public IEnumerable<Projeto> Listar(long candidatoId)
- {
- using var context = _dbContextFactory.CreateDbContext();
- return context.Projeto.Include(p => p.Documentos).Where(p => p.CandidatoId == candidatoId).ToList();
- }
- }
|