Advertisement
Guest User

Untitled

a guest
Sep 16th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.48 KB | None | 0 0
  1. private void SaveLiveScoreData(LiveScoresData data)
  2. {
  3. var leaguesInDb = DbContext.SportLeagues.ToList();
  4. var dataByLeaguesInDb = data.Categories.Where(x => leaguesInDb.Select(s => s.Name).Contains(x.Name));
  5. foreach (var league in dataByLeaguesInDb)
  6. {
  7. var leagueEntity = leaguesInDb.FirstOrDefault(x => x.Name.Equals(league.Name));
  8.  
  9. foreach (var match in league.Matches)
  10. {
  11. var localTeamEntity = DbContext.Teams.FirstOrDefault(x => x.ApiId == match.LocalTeam.Id);
  12. if (localTeamEntity == null)
  13. {
  14. var teamEntity = new Teams
  15. {
  16. ApiId = match.LocalTeam.Id,
  17. Name = match.LocalTeam.Name
  18. };
  19. DbContext.Teams.Add(teamEntity);
  20. DbContext.SaveChanges();
  21.  
  22. localTeamEntity = teamEntity;
  23. }
  24.  
  25. var visitorTeamEntity = DbContext.Teams.FirstOrDefault(x => x.ApiId == match.VisitorTeam.Id);
  26. if (visitorTeamEntity == null)
  27. {
  28. var teamEntity = new Teams
  29. {
  30. ApiId = match.VisitorTeam.Id,
  31. Name = match.VisitorTeam.Name
  32. };
  33. DbContext.Teams.Add(teamEntity);
  34. DbContext.SaveChanges();
  35.  
  36. visitorTeamEntity = teamEntity;
  37. }
  38.  
  39. var matchEntity = DbContext.Matches.FirstOrDefault(x => x.ApiId == match.Id);
  40. if (matchEntity == null)
  41. {
  42. DateTime.TryParseExact
  43. ($"{match.FormattedDate} {match.Time}",
  44. "dd.MM.yyyy HH:mm",
  45. CultureInfo.InvariantCulture,
  46. DateTimeStyles.None,
  47. out var matchDate
  48. );
  49. var matchToAdd = new Matches()
  50. {
  51. ApiId = match.Id,
  52. Date = matchDate,
  53. Status = match.Status,
  54. Timer = match.Timer,
  55. FixId = match.FixId,
  56. StaticId = match.StaticId,
  57. LeagueId = leagueEntity.Id,
  58. LocalTeamId = localTeamEntity.Id,
  59. VisitorTeamId = visitorTeamEntity.Id
  60. };
  61. if (char.IsDigit(Convert.ToChar(match.LocalTeam.Goals)))
  62. {
  63. matchToAdd.LocalTeamGoals = Convert.ToInt32(match.LocalTeam.Goals);
  64. }
  65. if (char.IsDigit(Convert.ToChar(match.VisitorTeam.Goals)))
  66. {
  67. matchToAdd.VisitorTeamGoals = Convert.ToInt32(match.VisitorTeam.Goals);
  68. }
  69.  
  70. DbContext.Matches.Add(matchToAdd);
  71. DbContext.SaveChanges();
  72. matchEntity = matchToAdd;
  73. }
  74. else
  75. {
  76. if (!matchEntity.Status.Equals(match.Status))
  77. {
  78. matchEntity.Status = match.Status;
  79. }
  80. }
  81.  
  82. foreach (var matchEvent in match.Events)
  83. {
  84. var eventEntity = new Events()
  85. {
  86. ApiEventId = matchEvent.EventId,
  87. MatchId = matchEntity.Id,
  88. Type = matchEvent.Type,
  89. Minute = matchEvent.Minute,
  90. TeamId = matchEvent.Team.Equals(_localteam) ? localTeamEntity.Id : visitorTeamEntity.Id,
  91. PlayerName = matchEvent.PlayerName,
  92. AssistPlayerName = matchEvent.AssistPlayerName
  93. };
  94. DbContext.Events.Add(eventEntity);
  95. }
  96. DbContext.SaveChanges();
  97. }
  98. }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement