public static ElectionStatistics BuildElectionStatistics(ElectionResultsFile file, ElectionResultsData electionResultsData) { var electionStatistics = new ElectionStatistics(); electionStatistics.Id = $"{DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks:D19}"; electionStatistics.Type = file.FileType.ConvertEnumToString(); electionStatistics.Source = file.ResultsSource; electionStatistics.Timestamp = file.Timestamp; electionStatistics.StatisticsJson = JsonConvert.SerializeObject(electionResultsData); electionStatistics.ElectionId = file.ElectionId; return(electionStatistics); }
public async Task InsertVoteMonitoringStats(VoteMonitoringStats voteMonitoringInfo) { var electionStatistics = new ElectionStatistics { Id = $"{DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks:D19}", Type = ResultsType.VoteMonitoring.ConvertEnumToString(), Location = ResultsLocation.All.ConvertEnumToString(), Timestamp = voteMonitoringInfo.Timestamp, StatisticsJson = JsonConvert.SerializeObject(voteMonitoringInfo) }; await InsertResults(electionStatistics); }
public virtual async Task InsertCurrentVoterTurnout(VoterTurnout voterTurnout) { var electionStatistics = new ElectionStatistics { Id = $"{DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks:D19}", Type = ResultsType.VoterTurnout.ConvertEnumToString(), Location = ResultsLocation.All.ConvertEnumToString(), Timestamp = voterTurnout.Timestamp, StatisticsJson = JsonConvert.SerializeObject(voterTurnout) }; await InsertResults(electionStatistics); }
public static ElectionStatistics BuildElectionStatistics(string fileName, ElectionResultsData electionResultsData) { var electionStatistics = new ElectionStatistics(); var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileName); electionStatistics.Id = $"{DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks:D19}"; var attributes = fileNameWithoutExtension.Split('_'); electionStatistics.Type = attributes[0]; electionStatistics.Location = attributes[1]; electionStatistics.Timestamp = long.Parse(attributes[2]); electionStatistics.StatisticsJson = JsonConvert.SerializeObject(electionResultsData); return(electionStatistics); }
public virtual async Task InsertCurrentVoterTurnout(VoterTurnout voterTurnout) { var electionStatistics = new ElectionStatistics { Id = $"{DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks:D19}", Type = FileType.VoterTurnout.ConvertEnumToString(), Source = Consts.VOTE_TURNOUT_KEY, Timestamp = voterTurnout.Timestamp, ElectionId = voterTurnout.ElectionId, StatisticsJson = JsonConvert.SerializeObject(voterTurnout) }; await InsertResults(electionStatistics); }
public async Task InsertVoteMonitoringStats(VoteMonitoringStats voteMonitoringInfo) { var electionStatistics = new ElectionStatistics { Id = $"{DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks:D19}", Type = FileType.VoteMonitoring.ConvertEnumToString(), Source = Consts.VOTE_MONITORING_KEY, Timestamp = voteMonitoringInfo.Timestamp, ElectionId = voteMonitoringInfo.ElectionId, StatisticsJson = JsonConvert.SerializeObject(voteMonitoringInfo) }; await InsertResults(electionStatistics); }
public async Task InsertResults(ElectionStatistics electionStatistics) { using (var storageContext = new StorageContext(FunctionSettings.AzureStorageConnectionString)) { storageContext.EnableAutoCreateTable(); storageContext.AddAttributeMapper(); storageContext.AddEntityMapper(typeof(ElectionStatistics), new DynamicTableEntityMapper { PartitionKeyFormat = "Location", RowKeyFormat = "Id", TableName = FunctionSettings.AzureTableName }); await storageContext.CreateTableAsync(typeof(ElectionStatistics)); await storageContext.MergeOrInsertAsync(electionStatistics); } }
public async Task InsertResults(ElectionStatistics electionStatistics) { try { _logger.LogInformation($"Inserting results"); Dictionary <string, AttributeValue> item = new Dictionary <string, AttributeValue>(); item["id"] = new AttributeValue { S = electionStatistics.Id }; item["fileType"] = new AttributeValue { S = electionStatistics.Type }; item["fileSource"] = new AttributeValue { S = electionStatistics.Source }; item["electionId"] = new AttributeValue { S = electionStatistics.ElectionId }; item["statisticsJson"] = new AttributeValue { S = electionStatistics.StatisticsJson }; item["csvTimestamp"] = new AttributeValue { N = electionStatistics.Timestamp.ToString() }; List <WriteRequest> items = new List <WriteRequest> { new WriteRequest { PutRequest = new PutRequest { Item = item } } }; Dictionary <string, List <WriteRequest> > requestItems = new Dictionary <string, List <WriteRequest> >(); requestItems[_config.TableName] = items; await _dynamoDb.BatchWriteItemAsync(requestItems); } catch (Exception e) { _logger.LogError(e, "Couldn't insert results"); } }
public async Task InsertResults(ElectionStatistics electionStatistics) { try { _logger.LogInformation($"Inserting results"); var tableExists = await TableIsReady(); if (!tableExists) { await CreateTable(); } Dictionary <string, AttributeValue> item = new Dictionary <string, AttributeValue>(); item["id"] = new AttributeValue { S = electionStatistics.Id }; item["csvType"] = new AttributeValue { S = electionStatistics.Type }; item["csvLocation"] = new AttributeValue { S = electionStatistics.Location }; item["statisticsJson"] = new AttributeValue { S = electionStatistics.StatisticsJson }; item["csvTimestamp"] = new AttributeValue { N = electionStatistics.FileTimestamp.ToString() }; List <WriteRequest> items = new List <WriteRequest>(); items.Add(new WriteRequest { PutRequest = new PutRequest { Item = item } }); Dictionary <string, List <WriteRequest> > requestItems = new Dictionary <string, List <WriteRequest> >(); requestItems[_config.TableName] = items; await _dynamoDb.BatchWriteItemAsync(requestItems); } catch (Exception e) { _logger.LogError(e, "Couldn't insert results"); } }