示例#1
0
        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;

        }