Exemple #1
0
        // GET: Citizens/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var citizen = await _citizenServices.GetCitizenByIdAsync(id);

            if (citizen == null)
            {
                return(NotFound());
            }

            return(View(citizen));
        }
Exemple #2
0
        public async Task <IActionResult> Candidate(ElectionVotationViewModel model, int candidateId)
        {
            int postionVoted = 0;
            int?citizenId    = HttpContext.Session.GetInt32(Configuration.Citizen);

            if (!citizenId.HasValue)
            {
                return(RedirectToAction(nameof(Index)));
            }

            HttpContext.Session.SetInt32(model.CurrentPositionName, candidateId);

            model.Postions = (await _electionService.GetElectionByConditionAsync(e => e.IsActive == true).Result
                              .Include(e => e.ElectionPosition).ThenInclude(ep => ep.Position).FirstOrDefaultAsync())
                             .ElectionPosition.Select(ep => ep.Position).ToList();

            model.Postions.ForEach(p =>
            {
                if (HttpContext.Session.GetInt32(p.Name).HasValue)
                {
                    postionVoted++;
                }
            });

            if (postionVoted != model.Postions.Count())
            {
                return(RedirectToAction(nameof(Votation), model));
            }

            List <Result> results = new List <Result>();
            string        content = "Usted ha votado por los siguientes candidatos:";

            model.Postions.ForEach(p =>
            {
                Result result = new Result()
                {
                    ElectionId  = model.Id,
                    CandidateId = HttpContext.Session.GetInt32(p.Name).Value,
                    CitizenId   = citizenId.Value
                };
                Candidate candidate = _candidateService.GetCandidateById(HttpContext.Session.GetInt32(p.Name));
                content            += $"\n {p.Name}: {candidate.Name} {candidate.LastName}.";
                results.Add(result);
            });

            await _electionService.InsertElectionCitizenVote(new ElectionCitizen()
            {
                ElectionId = model.Id, CitizenId = citizenId.Value
            });

            await _electionService.InsertElectionResulAsync(results);

            var message = new Sistema_de_votacion.Mail.Message(new string[] { _citizenService.GetCitizenByIdAsync(citizenId.Value).Result.Email },
                                                               "RESULTADO DE VOTACION", content);
            await _emailSender.SendEmailAsync(message);

            HttpContext.Session.Clear();
            return(RedirectToAction("Index", "Elections", model));
        }
Exemple #3
0
        public async Task <ActionResult <CitizenDataResponseModel> > GetCitizenById([Required][FromRoute] string citizenId)
        {
            var result = await _citizenService.GetCitizenByIdAsync(citizenId).ConfigureAwait(false);

            if (result.IsError)
            {
                return(StatusCode((int)(result.StatusCode ?? HttpStatusCode.BadRequest), result.Error.Errors));
            }
            else
            {
                return(Ok(result.Result));
            }
        }