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."); } }; }
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(); }; }