/// <summary> /// Creates the measured course. /// </summary> /// <param name="accessToken">The access token.</param> /// <param name="claimsIdentity">The claims identity.</param> /// <param name="viewModel">The view model.</param> /// <param name="cancellationToken">The cancellation token.</param> public async Task CreateMeasuredCourse(String accessToken, ClaimsIdentity claimsIdentity, MeasuredCourseViewModel viewModel, CancellationToken cancellationToken) { AddMeasuredCourseToClubRequest addMeasuredCourseToClubRequest = this.ModelFactory.ConvertFrom(viewModel); Guid golfClubId = ApiClient.GetClaimValue <Guid>(claimsIdentity, "GolfClubId"); await this.GolfClubClient.AddMeasuredCourseToGolfClub(accessToken, golfClubId, addMeasuredCourseToClubRequest, cancellationToken); }
public async Task <IActionResult> NewMeasuredCourse(MeasuredCourseViewModel model, CancellationToken cancellationToken) { model.MeasuredCourseId = Guid.NewGuid(); // Validate the model if (this.ValidateModel(model)) { String accessToken = await this.HttpContext.GetTokenAsync("access_token"); // All good with model, call the client to create the golf club await this.ApiClient.CreateMeasuredCourse(accessToken, this.User.Identity as ClaimsIdentity, model, cancellationToken); // GOlf Club Created, redirect to the Club Details screen return(this.RedirectToAction(nameof(this.GetMeasuredCourseList))); } // If we got this far, something failed, redisplay form return(this.View(model)); }
/// <summary> /// Converts from. /// </summary> /// <param name="viewModel">The view model.</param> /// <returns></returns> public AddMeasuredCourseToClubRequest ConvertFrom(MeasuredCourseViewModel viewModel) { AddMeasuredCourseToClubRequest request = new AddMeasuredCourseToClubRequest { MeasuredCourseId = viewModel.MeasuredCourseId, StandardScratchScore = viewModel.StandardScratchScore, TeeColour = viewModel.TeeColour, Name = viewModel.Name, Holes = new List <HoleDataTransferObjectRequest>() }; request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 1, LengthInYards = viewModel.HoleNumber1Yards, Par = viewModel.HoleNumber1Par, StrokeIndex = viewModel.HoleNumber1StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 2, LengthInYards = viewModel.HoleNumber2Yards, Par = viewModel.HoleNumber2Par, StrokeIndex = viewModel.HoleNumber2StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 3, LengthInYards = viewModel.HoleNumber3Yards, Par = viewModel.HoleNumber3Par, StrokeIndex = viewModel.HoleNumber3StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 4, LengthInYards = viewModel.HoleNumber4Yards, Par = viewModel.HoleNumber4Par, StrokeIndex = viewModel.HoleNumber4StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 5, LengthInYards = viewModel.HoleNumber5Yards, Par = viewModel.HoleNumber5Par, StrokeIndex = viewModel.HoleNumber5StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 6, LengthInYards = viewModel.HoleNumber6Yards, Par = viewModel.HoleNumber6Par, StrokeIndex = viewModel.HoleNumber6StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 7, LengthInYards = viewModel.HoleNumber7Yards, Par = viewModel.HoleNumber7Par, StrokeIndex = viewModel.HoleNumber7StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 8, LengthInYards = viewModel.HoleNumber8Yards, Par = viewModel.HoleNumber8Par, StrokeIndex = viewModel.HoleNumber8StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 9, LengthInYards = viewModel.HoleNumber9Yards, Par = viewModel.HoleNumber9Par, StrokeIndex = viewModel.HoleNumber9StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 10, LengthInYards = viewModel.HoleNumber10Yards, Par = viewModel.HoleNumber10Par, StrokeIndex = viewModel.HoleNumber10StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 11, LengthInYards = viewModel.HoleNumber11Yards, Par = viewModel.HoleNumber11Par, StrokeIndex = viewModel.HoleNumber11StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 12, LengthInYards = viewModel.HoleNumber12Yards, Par = viewModel.HoleNumber12Par, StrokeIndex = viewModel.HoleNumber12StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 13, LengthInYards = viewModel.HoleNumber13Yards, Par = viewModel.HoleNumber13Par, StrokeIndex = viewModel.HoleNumber13StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 14, LengthInYards = viewModel.HoleNumber14Yards, Par = viewModel.HoleNumber14Par, StrokeIndex = viewModel.HoleNumber14StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 15, LengthInYards = viewModel.HoleNumber15Yards, Par = viewModel.HoleNumber15Par, StrokeIndex = viewModel.HoleNumber15StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 16, LengthInYards = viewModel.HoleNumber16Yards, Par = viewModel.HoleNumber16Par, StrokeIndex = viewModel.HoleNumber16StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 17, LengthInYards = viewModel.HoleNumber17Yards, Par = viewModel.HoleNumber17Par, StrokeIndex = viewModel.HoleNumber17StrokeIndex }); request.Holes.Add(new HoleDataTransferObjectRequest { HoleNumber = 18, LengthInYards = viewModel.HoleNumber18Yards, Par = viewModel.HoleNumber18Par, StrokeIndex = viewModel.HoleNumber18StrokeIndex }); return(request); }
public void ModelFactory_ConvertFrom_MeasuredCourseViewModel_ConvertedSuccessfully() { ModelFactory factory = new ModelFactory(); MeasuredCourseViewModel viewModel = ModelFactoryTestData.GetMeasuredCourseViewModel(); AddMeasuredCourseToClubRequest request = factory.ConvertFrom(viewModel); request.Holes.Count.ShouldBe(18); request.Name.ShouldBe(viewModel.Name); request.StandardScratchScore.ShouldBe(viewModel.StandardScratchScore); request.TeeColour.ShouldBe(viewModel.TeeColour); request.Holes.Single(x => x.HoleNumber == 1).Par.ShouldBe(viewModel.HoleNumber1Par); request.Holes.Single(x => x.HoleNumber == 1).StrokeIndex.ShouldBe(viewModel.HoleNumber1StrokeIndex); request.Holes.Single(x => x.HoleNumber == 1).LengthInYards.ShouldBe(viewModel.HoleNumber1Yards); request.Holes.Single(x => x.HoleNumber == 2).Par.ShouldBe(viewModel.HoleNumber2Par); request.Holes.Single(x => x.HoleNumber == 2).StrokeIndex.ShouldBe(viewModel.HoleNumber2StrokeIndex); request.Holes.Single(x => x.HoleNumber == 2).LengthInYards.ShouldBe(viewModel.HoleNumber2Yards); request.Holes.Single(x => x.HoleNumber == 3).Par.ShouldBe(viewModel.HoleNumber3Par); request.Holes.Single(x => x.HoleNumber == 3).StrokeIndex.ShouldBe(viewModel.HoleNumber3StrokeIndex); request.Holes.Single(x => x.HoleNumber == 3).LengthInYards.ShouldBe(viewModel.HoleNumber3Yards); request.Holes.Single(x => x.HoleNumber == 4).Par.ShouldBe(viewModel.HoleNumber4Par); request.Holes.Single(x => x.HoleNumber == 4).StrokeIndex.ShouldBe(viewModel.HoleNumber4StrokeIndex); request.Holes.Single(x => x.HoleNumber == 4).LengthInYards.ShouldBe(viewModel.HoleNumber4Yards); request.Holes.Single(x => x.HoleNumber == 5).Par.ShouldBe(viewModel.HoleNumber5Par); request.Holes.Single(x => x.HoleNumber == 5).StrokeIndex.ShouldBe(viewModel.HoleNumber5StrokeIndex); request.Holes.Single(x => x.HoleNumber == 5).LengthInYards.ShouldBe(viewModel.HoleNumber5Yards); request.Holes.Single(x => x.HoleNumber == 6).Par.ShouldBe(viewModel.HoleNumber6Par); request.Holes.Single(x => x.HoleNumber == 6).StrokeIndex.ShouldBe(viewModel.HoleNumber6StrokeIndex); request.Holes.Single(x => x.HoleNumber == 6).LengthInYards.ShouldBe(viewModel.HoleNumber6Yards); request.Holes.Single(x => x.HoleNumber == 7).Par.ShouldBe(viewModel.HoleNumber7Par); request.Holes.Single(x => x.HoleNumber == 7).StrokeIndex.ShouldBe(viewModel.HoleNumber7StrokeIndex); request.Holes.Single(x => x.HoleNumber == 7).LengthInYards.ShouldBe(viewModel.HoleNumber7Yards); request.Holes.Single(x => x.HoleNumber == 8).Par.ShouldBe(viewModel.HoleNumber8Par); request.Holes.Single(x => x.HoleNumber == 8).StrokeIndex.ShouldBe(viewModel.HoleNumber8StrokeIndex); request.Holes.Single(x => x.HoleNumber == 8).LengthInYards.ShouldBe(viewModel.HoleNumber8Yards); request.Holes.Single(x => x.HoleNumber == 9).Par.ShouldBe(viewModel.HoleNumber9Par); request.Holes.Single(x => x.HoleNumber == 9).StrokeIndex.ShouldBe(viewModel.HoleNumber9StrokeIndex); request.Holes.Single(x => x.HoleNumber == 9).LengthInYards.ShouldBe(viewModel.HoleNumber9Yards); request.Holes.Single(x => x.HoleNumber == 10).Par.ShouldBe(viewModel.HoleNumber10Par); request.Holes.Single(x => x.HoleNumber == 10).StrokeIndex.ShouldBe(viewModel.HoleNumber10StrokeIndex); request.Holes.Single(x => x.HoleNumber == 10).LengthInYards.ShouldBe(viewModel.HoleNumber10Yards); request.Holes.Single(x => x.HoleNumber == 11).Par.ShouldBe(viewModel.HoleNumber11Par); request.Holes.Single(x => x.HoleNumber == 11).StrokeIndex.ShouldBe(viewModel.HoleNumber11StrokeIndex); request.Holes.Single(x => x.HoleNumber == 11).LengthInYards.ShouldBe(viewModel.HoleNumber11Yards); request.Holes.Single(x => x.HoleNumber == 12).Par.ShouldBe(viewModel.HoleNumber12Par); request.Holes.Single(x => x.HoleNumber == 12).StrokeIndex.ShouldBe(viewModel.HoleNumber12StrokeIndex); request.Holes.Single(x => x.HoleNumber == 12).LengthInYards.ShouldBe(viewModel.HoleNumber12Yards); request.Holes.Single(x => x.HoleNumber == 13).Par.ShouldBe(viewModel.HoleNumber13Par); request.Holes.Single(x => x.HoleNumber == 13).StrokeIndex.ShouldBe(viewModel.HoleNumber13StrokeIndex); request.Holes.Single(x => x.HoleNumber == 13).LengthInYards.ShouldBe(viewModel.HoleNumber13Yards); request.Holes.Single(x => x.HoleNumber == 14).Par.ShouldBe(viewModel.HoleNumber14Par); request.Holes.Single(x => x.HoleNumber == 14).StrokeIndex.ShouldBe(viewModel.HoleNumber14StrokeIndex); request.Holes.Single(x => x.HoleNumber == 14).LengthInYards.ShouldBe(viewModel.HoleNumber14Yards); request.Holes.Single(x => x.HoleNumber == 15).Par.ShouldBe(viewModel.HoleNumber15Par); request.Holes.Single(x => x.HoleNumber == 15).StrokeIndex.ShouldBe(viewModel.HoleNumber15StrokeIndex); request.Holes.Single(x => x.HoleNumber == 15).LengthInYards.ShouldBe(viewModel.HoleNumber15Yards); request.Holes.Single(x => x.HoleNumber == 16).Par.ShouldBe(viewModel.HoleNumber16Par); request.Holes.Single(x => x.HoleNumber == 16).StrokeIndex.ShouldBe(viewModel.HoleNumber16StrokeIndex); request.Holes.Single(x => x.HoleNumber == 16).LengthInYards.ShouldBe(viewModel.HoleNumber16Yards); request.Holes.Single(x => x.HoleNumber == 17).Par.ShouldBe(viewModel.HoleNumber17Par); request.Holes.Single(x => x.HoleNumber == 17).StrokeIndex.ShouldBe(viewModel.HoleNumber17StrokeIndex); request.Holes.Single(x => x.HoleNumber == 17).LengthInYards.ShouldBe(viewModel.HoleNumber17Yards); request.Holes.Single(x => x.HoleNumber == 18).Par.ShouldBe(viewModel.HoleNumber18Par); request.Holes.Single(x => x.HoleNumber == 18).StrokeIndex.ShouldBe(viewModel.HoleNumber18StrokeIndex); request.Holes.Single(x => x.HoleNumber == 18).LengthInYards.ShouldBe(viewModel.HoleNumber18Yards); }
/// <summary> /// Validates the model. /// </summary> /// <param name="model">The model.</param> /// <returns></returns> private Boolean ValidateModel(MeasuredCourseViewModel model) { return(this.ModelState.IsValid); }
public async Task <IActionResult> NewMeasuredCourse(CancellationToken cancellationToken) { MeasuredCourseViewModel viewModel = new MeasuredCourseViewModel(); return(this.View(viewModel)); }