public async Task <List <Models.VoterTalley> > GetVoterTallies() { var voterTallies = JsonConvert.DeserializeObject <List <Models.VoterTalley> >((_cacheOperation.Get(cacheKey) ?? "").ToString()) ?? new List <Models.VoterTalley>(); if (voterTallies.Count == 0) { var dbVoterTallies = await voterTallyDB.GetVoterTally(); if (dbVoterTallies.Count > 0) { var selfRegisteredVoters = await selfRegistration.GetVoterRegistrations(); var candidates = await voteCandidate.GetCandidates(); voterTallies = new List <Models.VoterTalley>(); foreach (var tempDbTally in dbVoterTallies) { var tempVoterTally = new Models.VoterTalley() { Id = tempDbTally.Id, IsDeleted = tempDbTally.IsDeleted, Createdon = tempDbTally.Createdon, VoteCandidate = candidates.Where(x => x.Id == tempDbTally.VoteCandidateId).FirstOrDefault(), VoteSelfRegistration = selfRegisteredVoters.Where(x => x.Id == tempDbTally.VoteSelfRegistrationId).FirstOrDefault() }; voterTallies.Add(tempVoterTally); } _cacheOperation.Save(JsonConvert.SerializeObject(voterTallies), cacheKey, 10, Services.Cache.Models.TimeUnit.Minutes); } } return(voterTallies); }
public async Task <IActionResult> InsertVoterTalley([FromBody] Models.VoterTalley voter) { try { return(Json(await voterTally.InsertVoterTally(voter))); } catch (Exception e) { return(StatusCode(500, e)); } }
public async Task <Models.VoterTalley> InsertVoterTally(Models.VoterTalley voterTalley) { Exceptions.TestForNull(voterTalley, nameof(voterTalley)); var dbVoterTally = new Models.Database.VoterTally() { IsDeleted = voterTalley.IsDeleted, Createdon = DateTime.Now, VoteCandidateId = voterTalley.VoteCandidate.Id, VoteSelfRegistrationId = voterTalley.VoteSelfRegistration.Id }; dbVoterTally = await voterTallyDB.InsertTally(dbVoterTally); _cacheOperation.Delete(cacheKey); voterTalley.Id = dbVoterTally.Id; return(voterTalley); }