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