public void BuyTicket(string secrectCode, int amount, int rewardGroup)
        {
            using (var dctx = new DailySoccer.DAC.EF.DailySoccerModelContainer())
            {
                var selectedAccount = dctx.Accounts.FirstOrDefault(it => it.GuestAccounts
                 .Any(guestAccount => guestAccount.SecretCode.Equals(secrectCode, StringComparison.CurrentCultureIgnoreCase)));
                if (selectedAccount == null) return;

                var selectedRewardGroup = dctx.RewardGroups.FirstOrDefault(it => it.Id == rewardGroup);
                if (selectedRewardGroup == null) return;

                var now = DateTime.Now;
                for (int buyCounter = 0; buyCounter < amount; buyCounter++)
                {
                    var data = new DailySoccer.DAC.EF.Ticket
                    {
                        AccountId = selectedAccount.Id,
                        RewardGroupId = selectedRewardGroup.Id,
                        CreatedDate = now
                    };
                    selectedAccount.Tickets.Add(data);
                }
                dctx.SaveChanges();
            }
        }
 public void SaveGuess(GuessMatchInformation guess)
 {
     using (var dctx = new DailySoccer.DAC.EF.DailySoccerModelContainer())
     {
         var selectedLastGuessed = dctx.GuessMatches
             .Where(it => it.Account.GuestAccounts.Any(guestAccount => guestAccount.SecretCode.Equals(guess.AccountSecrectCode, StringComparison.CurrentCultureIgnoreCase)))
             .Where(it => it.MatchId == guess.MatchId)
             .FirstOrDefault();
         var isNewGuess = selectedLastGuessed == null;
         if (isNewGuess)
         {
             var selectedAccount = dctx.Accounts.FirstOrDefault(it => it.GuestAccounts
             .Any(guestAccount => guestAccount.SecretCode.Equals(guess.AccountSecrectCode, StringComparison.CurrentCultureIgnoreCase)));
             if (selectedAccount == null) return;
             dctx.GuessMatches.Add(new DailySoccer.DAC.EF.GuessMatch
             {
                 AccountId = selectedAccount.Id,
                 GuessTeamId = guess.GuessTeamId,
                 MatchId = guess.MatchId,
                 PredictionPoints = guess.PredictionPoints
             });
             dctx.SaveChanges();
         }
         else
         {
             selectedLastGuessed.GuessTeamId = guess.GuessTeamId;
             selectedLastGuessed.PredictionPoints = guess.PredictionPoints;
             dctx.SaveChanges();
         }
     }
 }
 public IEnumerable<MatchInformation> GetAllMatches()
 {
     using (var dctx = new DailySoccer.DAC.EF.DailySoccerModelContainer())
     {
         var qry = dctx.Matches.Select(it => new MatchInformation
         {
             Id = it.Id,
             LeagueName = it.LeagueName,
             BeginDate = it.BeginDate,
             StartedDate = it.StartedDate,
             CompletedDate = it.CompletedDate,
             Status = it.Status,
             TeamAway = new TeamInformation
             {
                 Id = it.TeamAway.Id,
                 Name = it.TeamAway.Name,
                 CurrentScore = it.TeamAway.CurrentScore,
                 CurrentPredictionPoints = it.TeamAway.CurrentPredictionPoints,
             },
             TeamHome = new TeamInformation
             {
                 Id = it.TeamHome.Id,
                 Name = it.TeamHome.Name,
                 CurrentScore = it.TeamHome.CurrentScore,
                 CurrentPredictionPoints = it.TeamHome.CurrentPredictionPoints,
             },
         }).ToList();
         return qry;
     }
 }
 public void UpdateCalculatedGameResult(IEnumerable<int> matchIds)
 {
     using (var dctx = new DailySoccer.DAC.EF.DailySoccerModelContainer())
     {
         var now = DateTime.Now;
         var selectedMatches = dctx.Matches.Where(it => matchIds.Contains(it.Id));
         foreach (var item in selectedMatches)
         {
             item.CalculatedDate = now;
         }
         dctx.SaveChanges();
     }
 }
 public IEnumerable<TicketInformation> GetTicketByRewardGroupId(int rewardGroupId)
 {
     using (var dctx = new DailySoccer.DAC.EF.DailySoccerModelContainer())
     {
         var selectedTicket = dctx.Tickets.Where(it => it.RewardGroupId == rewardGroupId);
         if (selectedTicket == null) return null;
         return selectedTicket.Select(it => new TicketInformation
         {
             Id = it.Id,
             CreatedDate = it.CreatedDate,
             ManualSelectedDate = it.ManualSelectedDate,
             RandomSelectedDate = it.RandomSelectedDate,
             ApproveWinnerDate = it.ApproveWinnerDate,
             AccountId = it.AccountId,
             RewardGroupId = it.RewardGroupId,
             SelectedRewardId = it.SelectedRewardId
         }).ToList();
     }
 }