/// <summary>
        /// Adds a given exercise to a member
        /// </summary>
        /// <typeparam name="T">Any class that inherits from IExercise</typeparam>
        /// <param name="exercise">A exercise</param>
        /// <returns>The success of the operation</returns>
        protected async Task <bool> RegisterExercise <T>(T exercise) where T : IExercise, new()
        {
            int memberID = await SelectMember(await _master.GetMembers());

            if (memberID < 0)
            {
                return(false);
            }

            await _quarry.Add(exercise);

            await AddExerciseToMember(_quarry, memberID, exercise.ID, exercise.Identifier);

            return(true);
        }
        public MemberCreationPage(MasterPage master, Quarry quarry)
        {
            InitializeComponent();

            btn_create.Clicked += async(s, e) =>
            {
                var forename = ety_forename.Text;
                var surname  = ety_surname.Text;

                var member = new Member()
                {
                    Forename = forename, Surname = surname
                };

                await quarry.Add(member);

                await master.RefreshList();

                await master.ShowMemberDetail(member);
            };
        }
 /// <summary>
 /// It couples an exercise with a member
 /// </summary>
 /// <param name="quarry">Quarry to the DB</param>
 /// <param name="exerciseID">Id of an exercise</param>
 /// <param name="memberID">Id of a member</param>
 /// <returns></returns>
 private async Task AddExerciseToMember(Quarry quarry, int memberID, int exerciseID, int exerciseIdentifier)
 => await quarry.Add(new MemberExercise()
 {
     MemberID = memberID, ExerciseID = exerciseID, ExerciseIdentifier = exerciseIdentifier
 });