Exemple #1
0
        private void buttonNewBreak_Clicked(object sender, EventArgs e)
        {
            if (App.Navigator.GetOpenedPage(typeof(RecordBreakPage)) != null)
            {
                return;
            }

            var page = new RecordBreakPage(this.metadata, false, true);

            App.Navigator.NavPage.Navigation.PushModalAsync(page);
            page.Done += async(s1, e1) =>
            {
                SnookerBreak snookerBreak = e1;
                this.metadataControl.Fill(this.metadata);
                if (snookerBreak == null)
                {
                    return;
                }

                if (page.IsOpponentsBreak == false)
                {
                    // save this as a notable break
                    Result result = new Result();
                    snookerBreak.PostToResult(result);
                    result.AthleteID    = App.Repository.GetMyAthleteID();
                    result.TimeModified = DateTimeHelper.GetUtcNow();
                    App.Repository.AddResult(result);

                    await App.Navigator.GoToMyProfile(ProfilePersonStateEnum.Breaks, true);

                    App.Navigator.StartSyncAndCheckForNotifications();
                }
                else
                {
                    // save this as opponent's break
                    Result result = new Result();
                    snookerBreak.PostToResult(result);
                    result.AthleteID                 = metadata.OpponentAthleteID;
                    result.OpponentAthleteID         = App.Repository.GetMyAthleteID();
                    result.TimeModified              = DateTimeHelper.GetUtcNow();
                    result.IsNotAcceptedByAthleteYet = true;
                    App.Repository.AddResult(result);

                    App.Navigator.StartSyncAndCheckForNotifications();
                    App.Navigator.DisplayAlertRegular("The break was recorded as a notable break for '" + metadata.OpponentAthleteName + "'. Once the data is synced with snookerbyb.com, '" + metadata.OpponentAthleteName + "' will be able to accept it.");
                }
            };
        }
Exemple #2
0
        void ctrl_UserWantsToEditBreak(object sender, SnookerEventArgs e)
        {
            if (this.IsMyAthlete == false)
            {
                return;
            }

            SnookerBreak snookerBreak = e.SnookerBreak;

            if (snookerBreak.OpponentConfirmation == OpponentConfirmationEnum.Confirmed)
            {
                App.Navigator.DisplayAlertRegular("Cannot edit a confirmed break.");
                return;
            }

            var page = new RecordBreakPage(snookerBreak, false, true);

            App.Navigator.NavPage.Navigation.PushModalAsync(page);
            page.Done += async(s1, e1) =>
            {
                snookerBreak = e1;
                if (snookerBreak == null)
                {
                    return;
                }

                // update
                Result result = App.Repository.GetResult(snookerBreak.ID);
                result.TimeModified         = DateTimeHelper.GetUtcNow();
                result.OpponentConfirmation = (int)OpponentConfirmationEnum.NotYet;
                snookerBreak.PostToResult(result);
                App.Repository.UpdateResult(result);

                await App.Navigator.GoToMyProfile(ProfilePersonStateEnum.Breaks, true);

                App.Navigator.StartSyncAndCheckForNotifications();
            };
        }