Example #1
0
        /// <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));
        }
Example #3
0
        /// <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));
        }