Example #1
0
        private void ScoreClickMenu_ItemSelected(object sender, SelectedItemChangedEventArgs e)
        {
            var lastScoreOfSeason = App.Database.IsLastScoreOfSeason(selectedScore.Date.Year);

            switch (e.SelectedItemIndex)
            {
            case 0:     //edit score
                PopupNavigation.Instance.PushAsync(new EditScorePopup(mp, selectedScore, this));
                break;

            case 1:     //delete score
                App.Database.DeleteScore(selectedScore.ScoreID);

                if (lastScoreOfSeason == true)
                {
                    var allSeasons = App.Database.GetSeasons();
                    if (allSeasons.Count > 0)
                    {
                        if (Preferences.Get("SeasonsView", 0) > 0)
                        {
                            Preferences.Set("SeasonsView", 0);
                        }
                        var latestSeason = allSeasons.Max();
                        Preferences.Set("LatestSeason", latestSeason);
                    }
                    else
                    {
                        //the last score in the whole table was deleted so it needs to reset the seasons information and start from new
                        Preferences.Set("SeasonsView", 0);
                        Preferences.Set("LatestSeason", 0);
                    }
                }

                App.Database.CalculateHandicap(Preferences.Get("HandicapDisplayType", 18).ToString());
                mp.RefreshScoreList();
                PopupNavigation.Instance.PopAsync();
                break;
            }
        }
Example #2
0
        private void EditScore_Clicked(object sender, EventArgs e)
        {
            var NewScore = new DetailedScore();

            NewScore.Score     = int.Parse(SelectedScore.Text);
            NewScore.InfoID    = ((PickerTee)TeePicker.SelectedItem).InfoID;
            NewScore.RoundType = SelectedRoundType.SelectedItem.ToString();

            if (NewScore.Score != OriginalScore.Score || NewScore.InfoID != OriginalScore.InfoID || NewScore.RoundType != OriginalScore.RoundType)
            {
                var editingscore = App.Database.GetScore(OriginalScore.ScoreID);
                editingscore.Score     = NewScore.Score;
                editingscore.InfoID    = NewScore.InfoID;
                editingscore.RoundType = NewScore.RoundType;
                var teeinfo = App.Database.GetTeeInfo(editingscore.InfoID);

                if (editingscore.RoundType == "18")
                {
                    editingscore.Differential = Math.Round((editingscore.Score - teeinfo.Rating) * 113 / teeinfo.Slope, 2);
                }
                else if (editingscore.RoundType == "Front")
                {
                    editingscore.Differential = Math.Round((editingscore.Score - teeinfo.FrontRating) * 113 / teeinfo.Slope, 2);
                }
                else if (editingscore.RoundType == "Back")
                {
                    //some courses dont have a back rating so need to remove the back rating setting if they dont
                    editingscore.Differential = Math.Round((editingscore.Score - teeinfo.BackRating) * 113 / teeinfo.Slope, 2);
                }

                App.Database.UpdateScore(editingscore);
                App.Database.CalculateHandicap(NewScore.RoundType);
                mp.RefreshScoreList();
                PopupNavigation.Instance.PopAllAsync();
            }
        }