Пример #1
0
        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;
        }
Пример #2
0
        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);
        }
Пример #3
0
        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!" }));
        }
Пример #4
0
        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");
        }