/// <summary>
 /// Initializes the specified view model.
 /// </summary>
 /// <param name="viewModel">The view model.</param>
 public void Init(MyMembershipsListViewModel viewModel)
 {
     this.BindingContext      = viewModel;
     this.HomeButton.Clicked += this.HomeButton_Clicked;
     this.RequestClubMembershipButton.Clicked += this.RequestClubMembershipButton_Clicked;
     this.MembershipsView.SelectionChanged    += MembershipsView_SelectionChanged;
 }
Example #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MyMembershipsPresenter"/> class.
 /// </summary>
 /// <param name="myMembershipsPage">My memberships page.</param>
 /// <param name="membershipRequestClubListPage">The membership request club list page.</param>
 /// <param name="myMembershipsListViewModel">My memberships ListView model.</param>
 /// <param name="myMembershipRequestClubListViewModel">My membership request club ListView model.</param>
 /// <param name="apiClient">The API client.</param>
 public MyMembershipsPresenter(IMyMembershipsPage myMembershipsPage,
                               IMyMembershipRequestClubListPage membershipRequestClubListPage,
                               MyMembershipsListViewModel myMembershipsListViewModel,
                               MyMembershipRequestClubListViewModel myMembershipRequestClubListViewModel,
                               IClient apiClient)
 {
     this.MyMembershipsPage                    = myMembershipsPage;
     this.MembershipRequestClubListPage        = membershipRequestClubListPage;
     this.MyMembershipsListViewModel           = myMembershipsListViewModel;
     this.MyMembershipRequestClubListViewModel = myMembershipRequestClubListViewModel;
     this.ApiClient = apiClient;
 }
        /// <summary>
        /// Gets the player memberships.
        /// </summary>
        /// <param name="passwordToken">The password token.</param>
        /// <param name="playerId">The player identifier.</param>
        /// <param name="viewModel">The view model.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        public async Task GetPlayerMemberships(String passwordToken,
                                               Guid playerId,
                                               MyMembershipsListViewModel viewModel,
                                               CancellationToken cancellationToken)
        {
            try
            {
                List <ClubMembershipResponse> apiResponse = await this.PlayerClient.GetPlayerMemberships(passwordToken, playerId, cancellationToken);

                foreach (ClubMembershipResponse clubMembershipResponse in apiResponse)
                {
                    // Only show accepted memberships
                    if (clubMembershipResponse.Status == MembershipStatus.Accepted)
                    {
                        viewModel.Memberships.Add(new MembershipViewModel
                        {
                            GolfClubId       = clubMembershipResponse.GolfClubId,
                            GolfClubName     = clubMembershipResponse.GolfClubName,
                            MembershipId     = clubMembershipResponse.MembershipId,
                            MembershipNumber = clubMembershipResponse.MembershipNumber,
                            DateJoined       = clubMembershipResponse.AcceptedDateTime.Value
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                // Look at the inner exception
                if (ex.InnerException is KeyNotFoundException)
                {
                    // Swallow this exception and set the view model list to empty
                    viewModel.Memberships = new ObservableCollection <MembershipViewModel>();
                }
                else
                {
                    throw;
                }
            }
        }