// 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)); }
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)); }
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)); } }