public async Task UpdateCandidato(int id, CandidatoNewDto updateCandidato) { var candidato = await context.Candidatos.FirstOrDefaultAsync(x => !x.Deleted && x.Id == id); candidato.Digito = updateCandidato.Digito; candidato.Legenda = updateCandidato.Legenda; candidato.NomeCompleto = updateCandidato.NomeCompleto; candidato.NomeVice = updateCandidato.NomeVice; candidato.TipoCandidato = updateCandidato.TipoCandidato; }
public async Task AddCandidato(CandidatoNewDto candidatoNewDto) { var candidato = new Candidato(); candidato.Digito = candidatoNewDto.Digito; candidato.Legenda = candidatoNewDto.Legenda; candidato.NomeCompleto = candidatoNewDto.NomeCompleto; candidato.NomeVice = candidatoNewDto.NomeVice; candidato.TipoCandidato = candidatoNewDto.TipoCandidato; await context.Candidatos.AddAsync(candidato); }
public async Task <IActionResult> Store([FromForm] CandidatoNewDto candidatoNewDto) { var candidate = await repo.GetCandidatoByDigito(candidatoNewDto.Digito); if (candidate != null) { return(BadRequest(new { message = "Já existe um candidato com este dígito!" })); } if (candidatoNewDto.FotoCandidato == null) { return(BadRequest(new { message = "Candidato não pode ficar sem foto! Favor inserir" })); } if (candidatoNewDto.TipoCandidato == 1 && candidatoNewDto.FotoVice == null) { return(BadRequest(new { message = "Vice não pode ficar sem foto! Favor inserir" })); } await repo.AddCandidato(candidatoNewDto); if (await uof.Commit()) { var webRootPath = environment.WebRootPath; var filenameCandidate = $"{candidatoNewDto.Digito}_"; if (candidatoNewDto.TipoCandidato == 1) { var filenameVice = $"{candidatoNewDto.Digito}_vice_"; await Utils.SaveFile(candidatoNewDto.FotoVice, filenameVice, webRootPath); } await Utils.SaveFile(candidatoNewDto.FotoCandidato, filenameCandidate, webRootPath); return(Ok(new { message = "Candidato salvo com sucesso." })); } return(StatusCode(500, new { message = "Ocorreu um erro interno no servidor!" })); }
public async Task <IActionResult> Update([FromRoute] int id, [FromForm] CandidatoNewDto candidatoUpdate) { var candidate = await repo.GetCandidatoById(id); var webRootPath = environment.WebRootPath; if (candidate == null) { return(NotFound(new { message = "Candidato não encontrado!" })); } if (candidate.Digito != candidatoUpdate.Digito) { return(BadRequest(new { message = "Você não pode alterar dígito do candidato!" })); } if (candidate.TipoCandidato != candidatoUpdate.TipoCandidato) { return(BadRequest(new { message = "Você não pode alterar o tipo de candidato" })); } if (candidate.VotosRecebidos.Count > 0) { return(BadRequest(new { message = "Este candidato já possui votos associados, não é possível alterar seus dados!" })); } await repo.UpdateCandidato(id, candidatoUpdate); if (candidatoUpdate.FotoCandidato != null || candidatoUpdate.FotoVice != null) { if (candidatoUpdate.FotoCandidato != null) { //deleta foto antiga var oldFotoCandidato = Utils.SearchFile($"{candidate.Digito}_", webRootPath); Utils.DeleteFile(oldFotoCandidato, webRootPath); //salva nova var newFotoCandidato = $"{candidate.Digito}_"; await Utils.SaveFile(candidatoUpdate.FotoCandidato, newFotoCandidato, webRootPath); } if (candidatoUpdate.TipoCandidato == 1 && candidatoUpdate.FotoVice != null) { //deleta foto antiga var oldFotoVice = Utils.SearchFile($"{candidate.Digito}_vice_", webRootPath); Utils.DeleteFile(oldFotoVice, webRootPath); //salva nova var newFotoVice = $"{candidate.Digito}_vice_"; await Utils.SaveFile(candidatoUpdate.FotoVice, newFotoVice, webRootPath); } } if (await uof.Commit()) { return(NoContent()); } if (candidatoUpdate.FotoCandidato != null || candidatoUpdate.FotoVice != null) { return(NoContent()); } throw new Exception("Ocorreu um erro interno"); }