public Bonus.Bonus GetTicketBonuses(ICollection <TicketMatch> ticketMatchesToCheck) { var bonus = new Bonus.Bonus() { Messages = new List <string>(), BonusOdd = 0 }; var matchesOnTicket = _context.Matches .Include(match => match.HomeTeam) .ToList() .Where(match => ticketMatchesToCheck .Any(ticketMatch => ticketMatch.MatchId == match.Id)); var matchesSportCounts = matchesOnTicket.GroupBy(match => match.HomeTeam.SportId) .Select(group => group.Count()) .Count(sportCount => sportCount >= 3); if (matchesSportCounts > 0) { bonus.Messages.Add($"Bonus +5: 3 para iz istog sporta ({matchesSportCounts} sportova)"); bonus.BonusOdd += matchesSportCounts * 5; } var idsOfSportsWithMatches = _context.Matches .Include(match => match.HomeTeam) .Where(match => DateTime.Now < match.TimeOfStart && match.Outcome == null) .Select(match => match.HomeTeam.SportId); var idsOfSportsOnTicket = matchesOnTicket.Select(match => match.HomeTeam.SportId); if (idsOfSportsWithMatches.Intersect(idsOfSportsOnTicket).Count() == idsOfSportsOnTicket.Count()) { bonus.Messages.Add("Bonus +10: odabrani parovi iz svih sportova"); bonus.BonusOdd += 10; } return(bonus); }
public StringBuilder DisplayRankQualifications(int toCustomer, int periodType) { StringBuilder s = new StringBuilder(); if (toCustomer == 0) { s.AppendLine("You must supply a Customer ID"); } if (periodType == 0) { s.AppendLine("You must supply a Period Type"); } if (s.Length != 0) { return s; } else { Bonus.Bonus bon = new Bonus.Bonus(); KeyValuePair<int, string> periodKVP = bon.GetCurrentPeriodID(periodType); List<GetRankQualificationsResponse> qualifications = bon.GetAllRankQualifications(toCustomer, periodType, periodKVP.Key); // foreach (var q in qualifications.Where(k => k.Qualifies == true).OrderByDescending(k => k.RankID).Take(1)) // { // s.AppendLine(string.Format(@" // <table> // <tr> // <td>Current Rank Description</td> // <td>{0}</td> // </tr> // <tr> // <td>Qualifies?</td> // <td>{1}</td> // </tr> // <tr> // <td>Next Rank</td> // <td>{2}</td> // </tr> // <tr> // <td>Previous Rank</td> // <td>{3}</td> // </tr> // </table> // ", q.RankDescription, q.Qualifies, q.NextRankDescription, q.BackRankDescription)); // } foreach (var q in qualifications) { s.AppendLine(string.Format(@" <div class=""month""> <table> <tr> <td>Current Rank Description</td> <td>{0}</td> </tr> <tr> <td>Qualifies?</td> <td>{1}</td> </tr> <tr> <td>Next Rank</td> <td>{2}</td> </tr> <tr> <td>Previous Rank</td> <td>{3}</td> </tr> </table> </div> <br /> ", q.RankDescription, q.Qualifies, q.NextRankDescription, q.BackRankDescription)); } } return s; }
public StringBuilder DisplayRankQualifications(int toCustomer, int periodType, int currentPeriod, bool rankID) { StringBuilder s = new StringBuilder(); if (toCustomer == 0) { s.AppendLine("You must supply a Customer ID"); } if (periodType == 0) { s.AppendLine("You must supply a Period Type"); } if (currentPeriod == 0) { s.AppendLine("You must supply a Period ID"); } if (rankID == false) { s.AppendLine("You must supply a Rank ID"); } if (s.Length != 0) { return s; } else { Bonus.Bonus bon = new Bonus.Bonus(); } return s; }