コード例 #1
0
        public FootballFormInfo Convert(FootballMatchInfo matchInfo, short teamId)
        {
            if (matchInfo == null)
            {
                throw new ArgumentException("matchInfo");
            }

            var returnValue = new FootballFormInfo
            {
                FixtureId        = matchInfo.Id,
                LeagueName       = matchInfo.LeagueName,
                OpposingTeamLogo = teamId == matchInfo.HomeTeamId ? matchInfo.AwayLogo : matchInfo.HomeLogo,
                OpposingTeamName = teamId == matchInfo.HomeTeamId ? matchInfo.AwayName : matchInfo.HomeName,
                IsHomeMatch      = teamId == matchInfo.HomeTeamId,
                HomeScore        = matchInfo.HomeScore,
                AwayScore        = matchInfo.AwayScore,
            };

            if (returnValue.HomeScore == returnValue.AwayScore)
            {
                returnValue.Result = MatchResultType.Draw;
            }
            else if (returnValue.HomeScore > returnValue.AwayScore)
            {
                returnValue.Result = returnValue.IsHomeMatch ? MatchResultType.Win : MatchResultType.Lose;
            }
            else
            {
                returnValue.Result = returnValue.IsHomeMatch ? MatchResultType.Lose : MatchResultType.Win;
            }

            return(returnValue);
        }
コード例 #2
0
        public FootballMatchInfo Convert(FootballFixtureDetail fixtureDetail)
        {
            // 기본 이미지 설정
            if (string.IsNullOrEmpty(fixtureDetail.League.Country.Logo))
            {
                fixtureDetail.League.Country.Logo = "img_world.png";
            }
            if (string.IsNullOrEmpty(fixtureDetail.League.Logo))
            {
                fixtureDetail.League.Logo = fixtureDetail.League.Country.Logo;
            }

            if (string.IsNullOrEmpty(fixtureDetail.HomeTeam.Logo))
            {
                fixtureDetail.HomeTeam.Logo = "img_football.png";
            }
            if (string.IsNullOrEmpty(fixtureDetail.AwayTeam.Logo))
            {
                fixtureDetail.AwayTeam.Logo = "img_football.png";
            }

            var returnValue = new FootballMatchInfo
            {
                Id = fixtureDetail.FixtureId,
                League_CountryName = fixtureDetail.League.Country.Name,
                League_CountryLogo = fixtureDetail.League.Country.Logo,
                LeagueName         = fixtureDetail.League.Name,
                LeagueLogo         = fixtureDetail.League.Logo,
                LeagueType         = fixtureDetail.League.LeagueType,

                HomeTeamId       = fixtureDetail.HomeTeam.Id,
                HomeName         = fixtureDetail.HomeTeam.Name,
                HomeLogo         = fixtureDetail.HomeTeam.Logo,
                Home_CountryName = fixtureDetail.HomeTeam.CountryName,
                HomeScore        = fixtureDetail.HomeTeamScore,

                AwayTeamId       = fixtureDetail.AwayTeam.Id,
                AwayName         = fixtureDetail.AwayTeam.Name,
                AwayLogo         = fixtureDetail.AwayTeam.Logo,
                Away_CountryName = fixtureDetail.AwayTeam.CountryName,
                AwayScore        = fixtureDetail.AwayTeamScore,

                MatchStatus = fixtureDetail.MatchStatus,
                MatchTime   = fixtureDetail.MatchTime.ToLocalTime(),
                Round       = fixtureDetail.Round,

                IsAlarmed    = false,
                IsBookmarked = false,

                IsPredicted   = fixtureDetail.IsPredicted,
                IsRecommended = fixtureDetail.IsRecommended,
                MaxRating     = fixtureDetail.MaxGrade / 2.0,
                HasOdds       = fixtureDetail.HasOdds,
            };

            return(returnValue);
        }
コード例 #3
0
        public FootballLeagueInfo Convert(FootballMatchInfo matchInfo)
        {
            var returnValue = new FootballLeagueInfo
            {
                CountryName  = matchInfo.League_CountryName,
                CountryLogo  = matchInfo.League_CountryLogo,
                LeagueName   = matchInfo.LeagueName,
                LeagueLogo   = matchInfo.LeagueLogo,
                LeagueType   = matchInfo.LeagueType,
                IsBookmarked = false,
            };

            return(returnValue);
        }
コード例 #4
0
 public FootballFixtureDetail Reverse(FootballMatchInfo value)
 {
     return(new FootballFixtureDetail
     {
         FixtureId = value.Id,
         League = new FootballLeagueDetail
         {
             Country = new FootballCountryDetail
             {
                 Logo = value.League_CountryLogo,
                 Name = value.League_CountryName,
             },
             Name = value.LeagueName,
             Logo = value.LeagueLogo,
             LeagueType = value.LeagueType,
         },
         HomeTeam = new FootballTeamDetail
         {
             Id = value.HomeTeamId,
             CountryName = value.Home_CountryName,
             Logo = value.HomeLogo,
             Name = value.HomeName
         },
         AwayTeam = new FootballTeamDetail
         {
             Id = value.AwayTeamId,
             CountryName = value.Away_CountryName,
             Logo = value.AwayLogo,
             Name = value.AwayName
         },
         Round = value.Round,
         MatchTime = value.MatchTime.ToUniversalTime(),
         MatchStatus = value.MatchStatus,
         HomeTeamScore = value.HomeScore,
         AwayTeamScore = value.AwayScore,
         IsPredicted = value.IsPredicted,
         IsRecommended = value.IsRecommended,
         HasOdds = value.HasOdds,
         MaxGrade = (byte)(value.MaxRating * 2),
     });
 }
コード例 #5
0
        public FootballMatchInfo Convert(FootballVIPMatchInfo vipMatchInfo)
        {
            var return_value = new FootballMatchInfo
            {
                Id = vipMatchInfo.Id,
                League_CountryName = vipMatchInfo.League_CountryName,
                League_CountryLogo = vipMatchInfo.League_CountryLogo,
                LeagueName         = vipMatchInfo.LeagueName,
                LeagueLogo         = vipMatchInfo.LeagueLogo,
                LeagueType         = vipMatchInfo.LeagueType,

                HomeTeamId       = vipMatchInfo.HomeTeamId,
                HomeName         = vipMatchInfo.HomeName,
                HomeLogo         = vipMatchInfo.HomeLogo,
                Home_CountryName = vipMatchInfo.Home_CountryName,
                HomeScore        = vipMatchInfo.HomeScore,

                AwayTeamId       = vipMatchInfo.AwayTeamId,
                AwayName         = vipMatchInfo.AwayName,
                AwayLogo         = vipMatchInfo.AwayLogo,
                Away_CountryName = vipMatchInfo.Away_CountryName,
                AwayScore        = vipMatchInfo.AwayScore,

                MatchStatus = vipMatchInfo.MatchStatus,
                MatchTime   = vipMatchInfo.MatchTime,
                Round       = vipMatchInfo.Round,

                IsAlarmed    = vipMatchInfo.IsAlarmed,
                IsBookmarked = vipMatchInfo.IsBookmarked,

                IsPredicted   = vipMatchInfo.IsPredicted,
                IsRecommended = vipMatchInfo.IsRecommended,
                MaxRating     = vipMatchInfo.MaxRating,
                HasOdds       = vipMatchInfo.HasOdds,
            };

            return(return_value);
        }
コード例 #6
0
        public FootballTeamInfo Convert(FootballMatchInfo matchInfo, TeamCampType teamType)
        {
            if (matchInfo == null)
            {
                throw new ArgumentException("matchInfo");
            }

            if (teamType == TeamCampType.Any)
            {
                throw new ArgumentException("teamType");
            }

            var returnValue = new FootballTeamInfo
            {
                TeamId       = teamType == TeamCampType.Home ? matchInfo.HomeTeamId : matchInfo.AwayTeamId,
                TeamName     = teamType == TeamCampType.Home ? matchInfo.HomeName : matchInfo.AwayName,
                TeamLogo     = teamType == TeamCampType.Home ? matchInfo.HomeLogo : matchInfo.AwayLogo,
                CountryName  = teamType == TeamCampType.Home ? matchInfo.Home_CountryName : matchInfo.Away_CountryName,
                IsBookmarked = false,
            };

            return(returnValue);
        }
コード例 #7
0
        public static async void Execute(FootballMatchInfo matchInfo)
        {
            CrossVibrate.Current.Vibration(new TimeSpan(0, 0, 0, 0, 100));

            var leagueInfo   = ShinyHost.Resolve <MatchInfoToLeagueInfo>().Convert(matchInfo);
            var homeTeamInfo = ShinyHost.Resolve <MatchInfoToTeamInfo>().Convert(matchInfo, TeamCampType.Home);
            var awayTeamInfo = ShinyHost.Resolve <MatchInfoToTeamInfo>().Convert(matchInfo, TeamCampType.Away);

            IBookmarkService bookmarkService = ShinyHost.Resolve <IBookmarkService>();

            var bookmarkedMatch = await bookmarkService.GetBookmark <FootballMatchInfo>(matchInfo.PrimaryKey);

            matchInfo.IsBookmarked = bookmarkedMatch?.IsBookmarked ?? false;

            var bookmarkedLeague = await bookmarkService.GetBookmark <FootballLeagueInfo>(leagueInfo.PrimaryKey);

            leagueInfo.IsBookmarked = bookmarkedLeague?.IsBookmarked ?? false;

            var bookmarkedHomeTeam = await bookmarkService.GetBookmark <FootballTeamInfo>(homeTeamInfo.PrimaryKey);

            homeTeamInfo.IsBookmarked = bookmarkedHomeTeam?.IsBookmarked ?? false;

            var bookmarkedAwayTeam = await bookmarkService.GetBookmark <FootballTeamInfo>(awayTeamInfo.PrimaryKey);

            awayTeamInfo.IsBookmarked = bookmarkedAwayTeam?.IsBookmarked ?? false;

            string strMatchBookmark    = matchInfo.IsBookmarked ? LocalizeString.Delete_Match : LocalizeString.Add_Match;
            string strLeagueBookmark   = leagueInfo.IsBookmarked ? LocalizeString.Delete_League : LocalizeString.Add_League;
            string strHomeTeamBookmark = homeTeamInfo.IsBookmarked ? LocalizeString.Delete_Home_Team : LocalizeString.Add_Home_Team;
            string strAwayTeamBookmark = awayTeamInfo.IsBookmarked ? LocalizeString.Delete_Away_Team : LocalizeString.Add_Away_Team;

            var actions = new string[]
            {
                strMatchBookmark,
                strLeagueBookmark,
                strHomeTeamBookmark,
                strAwayTeamBookmark,
            };

            int intResult = await MaterialDialog.Instance.SelectActionAsync(LocalizeString.Bookmark_Management, actions, DialogConfiguration.DefaultSimpleDialogConfiguration);

            if (intResult == -1)
            {
                return;
            }

            switch (intResult)
            {
            case 0:     // match
                if (matchInfo.IsBookmarked)
                {
                    await bookmarkService.RemoveBookmark <FootballMatchInfo>(matchInfo, SportsType.Football, PageDetailType.Match);
                }
                else
                {
                    await bookmarkService.AddBookmark <FootballMatchInfo>(matchInfo, SportsType.Football, PageDetailType.Match);
                }
                break;

            case 1:     // league
                if (leagueInfo.IsBookmarked)
                {
                    await bookmarkService.RemoveBookmark <FootballLeagueInfo>(leagueInfo, SportsType.Football, PageDetailType.League);
                }
                else
                {
                    await bookmarkService.AddBookmark <FootballLeagueInfo>(leagueInfo, SportsType.Football, PageDetailType.League);
                }
                break;

            case 2:     // homeTeam
                if (homeTeamInfo.IsBookmarked)
                {
                    await bookmarkService.RemoveBookmark <FootballTeamInfo>(homeTeamInfo, SportsType.Football, PageDetailType.Team);
                }
                else
                {
                    await bookmarkService.AddBookmark <FootballTeamInfo>(homeTeamInfo, SportsType.Football, PageDetailType.Team);
                }
                break;

            case 3:     // awayTeam
                if (awayTeamInfo.IsBookmarked)
                {
                    await bookmarkService.RemoveBookmark <FootballTeamInfo>(awayTeamInfo, SportsType.Football, PageDetailType.Team);
                }
                else
                {
                    await bookmarkService.AddBookmark <FootballTeamInfo>(awayTeamInfo, SportsType.Football, PageDetailType.Team);
                }
                break;

            default:
                break;
            }
        }