MySqlResultData.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System.Linq;
  2. using Dapper;
  3. using Microsoft.Extensions.Configuration;
  4. using Microsoft.Extensions.Logging;
  5. using MySql.Data.MySqlClient;
  6. using Result.Models;
  7. namespace Result.Data
  8. {
  9. public class MySqlResultData : IResultData
  10. {
  11. private readonly string _connectionString;
  12. private readonly ILogger _logger;
  13. public MySqlResultData(IConfiguration config, ILogger<MySqlResultData> logger)
  14. {
  15. _connectionString = config.GetConnectionString("ResultData");
  16. _logger = logger;
  17. }
  18. public ResultsModel GetResults()
  19. {
  20. var model = new ResultsModel();
  21. using (var connection = new MySqlConnection(_connectionString))
  22. {
  23. var results = connection.Query("SELECT vote, COUNT(id) AS count FROM votes GROUP BY vote ORDER BY vote");
  24. if (results.Any(x => x.vote == "a"))
  25. {
  26. model.OptionA = results.First(x => x.vote == "a").count;
  27. }
  28. if (results.Any(x => x.vote == "b"))
  29. {
  30. model.OptionB = results.First(x => x.vote == "b").count;
  31. }
  32. model.VoteCount = model.OptionA + model.OptionB;
  33. }
  34. return model;
  35. }
  36. }
  37. }