public virtual async Task <ActionResult> Index(SentOnCreateSiteViewModel viewModel, bool?noJavascriptCopy)
        {
            if (NoJavascriptCopy(noJavascriptCopy))
            {
                CopySiteAddressToOperatorAddress(viewModel);
            }
            else
            {
                if (ModelState.IsValid)
                {
                    using (var client = apiClient())
                    {
                        var request = requestCreator.ViewModelToRequest(viewModel);

                        var result = await client.SendAsync(User.GetAccessToken(), request);

                        return(AatfRedirect.ObligatedSentOn(viewModel.SiteAddressData.Name, viewModel.OrganisationId, viewModel.AatfId, viewModel.ReturnId, result));
                    }
                }
            }

            using (var client = apiClient())
            {
                viewModel.SiteAddressData.Countries = await client.SendAsync(User.GetAccessToken(), new GetCountries(false));

                viewModel.OperatorAddressData.Countries = await client.SendAsync(User.GetAccessToken(), new GetCountries(false));
            }

            await SetBreadcrumb(viewModel.OrganisationId, BreadCrumbConstant.AatfReturn, viewModel.AatfId, DisplayHelper.YearQuarterPeriodFormat(TempData["currentQuarter"] as Quarter, TempData["currentQuarterWindow"] as QuarterWindow));

            return(View(viewModel));
        }
Exemple #2
0
 private void CopySiteAddressToOperatorAddress(SentOnCreateSiteViewModel viewModel)
 {
     viewModel.OperatorAddressData.Address1       = viewModel.SiteAddressData.Address1;
     viewModel.OperatorAddressData.Address2       = viewModel.SiteAddressData.Address2;
     viewModel.OperatorAddressData.TownOrCity     = viewModel.SiteAddressData.TownOrCity;
     viewModel.OperatorAddressData.CountyOrRegion = viewModel.SiteAddressData.CountyOrRegion;
     viewModel.OperatorAddressData.Postcode       = viewModel.SiteAddressData.Postcode;
     viewModel.OperatorAddressData.CountryId      = viewModel.SiteAddressData.CountryId;
     viewModel.OperatorAddressData.CountryName    = viewModel.SiteAddressData.CountryName;
     ModelState.Clear();
 }
Exemple #3
0
        public async void IndexPost_GivenNoJavascriptCopyIsFalseOrNull_SentOnAatfSiteShouldBeSent(bool javascript)
        {
            var model = new SentOnCreateSiteViewModel
            {
                SiteAddressData = new AatfAddressData("TEST", "TEST", "TEST", "TEST", "TEST", "TEST", Guid.NewGuid(), "TEST")
            };

            await controller.Index(model, javascript);

            A.CallTo(() => requestCreator.ViewModelToRequest(model)).MustHaveHappened(Repeated.Exactly.Once);
        }
Exemple #4
0
        public async void IndexPost_GivenInvalidViewModel_ApiShouldNotBeCalled()
        {
            controller.ModelState.AddModelError("error", "error");
            var model = new SentOnCreateSiteViewModel
            {
                SiteAddressData     = new AatfAddressData("TEST", "TEST", "TEST", "TEST", "TEST", "TEST", Guid.NewGuid(), "TEST"),
                OperatorAddressData = new OperatorAddressData("TEST", "TEST", "TEST", "TEST", "TEST", "TEST", Guid.NewGuid(), "TEST")
            };
            await controller.Index(model, null);

            A.CallTo(() => apiClient.SendAsync(A <string> ._, A <AddSentOnAatfSite> ._)).MustNotHaveHappened();
        }
        public void ViewModelToRequest_GivenValidViewModelSetToEdit_RequestShouldBeOfTypeEditSentOnAatfSite()
        {
            var viewModel = new SentOnCreateSiteViewModel()
            {
                WeeeSentOnId        = Guid.NewGuid(),
                SiteAddressData     = A.Fake <AatfAddressData>(),
                OperatorAddressData = A.Fake <OperatorAddressData>(),
            };

            var request = requestCreator.ViewModelToRequest(viewModel);

            request.Should().BeOfType(typeof(EditSentOnAatfSite));
        }
Exemple #6
0
        public async void IndexPost_GivenValidViewModel_ApiSendShouldBeCalled()
        {
            var model = new SentOnCreateSiteViewModel
            {
                SiteAddressData = new AatfAddressData("TEST", "TEST", "TEST", "TEST", "TEST", "TEST", Guid.NewGuid(), "TEST")
            };
            var request = new AddSentOnAatfSite();

            A.CallTo(() => requestCreator.ViewModelToRequest(model)).Returns(request);

            await controller.Index(model, null);

            A.CallTo(() => apiClient.SendAsync(A <string> ._, request)).MustHaveHappened(Repeated.Exactly.Once);
        }
        public void ViewModelToRequest_GivenValidViewModel_PropertiesShouldBeMapped()
        {
            var viewModel = new SentOnCreateSiteViewModel()
            {
                AatfId          = Guid.NewGuid(),
                OrganisationId  = Guid.NewGuid(),
                ReturnId        = Guid.NewGuid(),
                SiteAddressData = A.Fake <AatfAddressData>()
            };

            var request = requestCreator.ViewModelToRequest(viewModel) as AddSentOnAatfSite;

            request.AatfId.Should().Be(viewModel.AatfId);
            request.OrganisationId.Should().Be(viewModel.OrganisationId);
            request.ReturnId.Should().Be(viewModel.ReturnId);
            request.SiteAddressData.Should().Be(viewModel.SiteAddressData);
        }
Exemple #8
0
        public async void IndexPost_GivenNoJavascriptCopyIsTrue_SideAddressShouldBeMappedToOperatorAddress()
        {
            var model = new SentOnCreateSiteViewModel
            {
                SiteAddressData     = new AatfAddressData("TEST", "TEST", "TEST", "TEST", "TEST", "TEST", Guid.NewGuid(), "TEST"),
                OperatorAddressData = new OperatorAddressData()
            };

            var result = await controller.Index(model, true) as ViewResult;

            var resultModel = result.Model as SentOnCreateSiteViewModel;

            resultModel.OperatorAddressData.Address1.Should().Be(model.SiteAddressData.Address1);
            resultModel.OperatorAddressData.Address2.Should().Be(model.SiteAddressData.Address2);
            resultModel.OperatorAddressData.TownOrCity.Should().Be(model.SiteAddressData.TownOrCity);
            resultModel.OperatorAddressData.CountyOrRegion.Should().Be(model.SiteAddressData.CountyOrRegion);
            resultModel.OperatorAddressData.CountryName.Should().Be(model.SiteAddressData.CountryName);
            resultModel.OperatorAddressData.Postcode.Should().Be(model.SiteAddressData.Postcode);
        }
        public SentOnAatfSite ViewModelToRequest(SentOnCreateSiteViewModel viewModel)
        {
            if (viewModel.Edit)
            {
                return(new EditSentOnAatfSite()
                {
                    SiteAddressData = viewModel.SiteAddressData,
                    WeeeSentOnId = (Guid)viewModel.WeeeSentOnId,
                    OperatorAddressData = viewModel.OperatorAddressData,
                });
            }

            var aatfSite = new AddSentOnAatfSite()
            {
                OrganisationId      = viewModel.OrganisationId,
                ReturnId            = viewModel.ReturnId,
                AatfId              = viewModel.AatfId,
                SiteAddressData     = viewModel.SiteAddressData,
                OperatorAddressData = viewModel.OperatorAddressData
            };

            return(aatfSite);
        }