Exemple #1
0
        public Response UpdateCoachProfile(CoachRequest request)
        {
            var validationResult = validator.Validate(request);

            if (!validationResult.IsValid)
            {
                return(Response.CreateResponse(validationResult.Messages));
            }

            var club = clubQuery.GetClub(request.ClubId);

            if (club == null)
            {
                return(Response.CreateResponse(new EntityNotFoundException("The specified club does not exist")));
            }

            var coach = memberQuery.GetCoach(request.CoachId.Value);

            if (coach == null || coach.ClubId != request.ClubId)
            {
                return(Response.CreateResponse(new EntityNotFoundException("The specified coach does not exist")));
            }

            try {
                coachRepository.UpdateCoach(MapCoach(request, request.CoachId));
            } catch (Exception ex) {
                return(Response.CreateResponse(ex));
            }
            return(Response.CreateSuccessResponse());
        }
Exemple #2
0
        public async Task RefuseCoachRequestAsync(string currentUserId, string coachId, string requestId)
        {
            CoachRequest request = await GetCoachRequest(requestId);

            if (request == null)
            {
                throw new Exception("The request seems to not exist anymore");
            }

            if (request.CoachId != coachId)
            {
                throw new UnauthorizedAccessException("You are not the coach for this request");
            }

            var update = Builders <CoachRequest> .Update
                         .Set(dbRequest => dbRequest.Status, CoachRequestStatus.Refused);

            await _coachRequests.UpdateOneAsync(databaseRequest =>
                                                databaseRequest.Id == requestId,
                                                update
                                                );

            var builderUpdate = Builders <Builder> .Update
                                .Set(dbBuilder => dbBuilder.CoachId, null);

            await _builders.UpdateOneAsync(databaseBuilder =>
                                           databaseBuilder.Id == request.BuilderId,
                                           builderUpdate
                                           );
        }
Exemple #3
0
 private Coach MapCoach(CoachRequest request, Guid?coachId) =>
 new Coach(request.ClubId, coachId)
 {
     DateOfBirth    = request.DateOfBirth,
     Email          = request.Email,
     FirstName      = request.FirstName,
     LastName       = request.LastName,
     Phone          = request.Phone,
     Qualifications = request.Qualifications
 };
        private async void RequestListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
        {
            if (e.SelectedItem == null)
            {
                return;
            }

            CoachRequest selectedReq = RequestListView.SelectedItem as CoachRequest;

            await Navigation.PushAsync(new ConfirmRequestPage(selectedReq));

            RequestListView.SelectedItem = null;
        }
Exemple #5
0
        public async Task AcceptCoachRequestAsync(string currentUserId, string coachId, string requestId)
        {
            CoachRequest request = await GetCoachRequest(requestId);

            if (request == null)
            {
                throw new Exception("The request seems to not exist anymore");
            }

            if (request.CoachId != coachId)
            {
                throw new UnauthorizedAccessException("You are not the coach for this request");
            }

            var update = Builders <CoachRequest> .Update
                         .Set(dbRequest => dbRequest.Status, CoachRequestStatus.Accepted);

            await _coachRequests.UpdateOneAsync(databaseRequest =>
                                                databaseRequest.Id == requestId,
                                                update
                                                );

            var builderUpdate = Builders <Builder> .Update
                                .Set(dbBuilder => dbBuilder.Step, BuilderSteps.Signing);

            await _builders.UpdateOneAsync(databaseBuilder =>
                                           databaseBuilder.Id == request.BuilderId,
                                           builderUpdate
                                           );

            // We need to send a notification
            Builder builder = await GetBuilderFromBuilderId(request.BuilderId);

            if (builder == null)
            {
                throw new Exception("This builder doesn't exist");
            }

            User builderUser = await GetUserFromId(builder.UserId);

            if (builderUser == null)
            {
                throw new Exception("Their is no user for this builder...");
            }

            await _notificationService.NotifyCoachAcceptBuilder(builderUser.Email, builderUser.FirstName);
        }
Exemple #6
0
        public ConfirmRequestPage(CoachRequest aRequest)
        {
            InitializeComponent();
            selectedRequest = aRequest;

            NameLabel.Text = selectedRequest.User.UserName;

            if (selectedRequest.User.Gender.Equals("M"))
            {
                genderLabel.Text = ResxFile.lbl_male;
            }
            else
            {
                genderLabel.Text = ResxFile.lbl_female;
            }

            heightLabel.Text = selectedRequest.User.Height.ToString();

            weightLabel.Text = selectedRequest.User.Weight.ToString();
        }
Exemple #7
0
        public Response RegisterCoach(CoachRequest request)
        {
            var validationResult = validator.Validate(request);

            if (!validationResult.IsValid)
            {
                return(Response.CreateResponse(validationResult.Messages));
            }

            var club = clubQuery.GetClub(request.ClubId);

            if (club == null)
            {
                return(Response.CreateResponse(new EntityNotFoundException("The specified club does not exist")));
            }

            try {
                coachRepository.AddCoach(MapCoach(request, null));
            } catch (Exception ex) {
                return(Response.CreateResponse(ex));
            }
            return(Response.CreateSuccessResponse());
        }