public async Task CopyAatfPost_ValidViewModel_CacheShouldBeInvalidated()
        {
            Guid orgId     = Guid.NewGuid();
            var  viewModel = CreateCopyAatfViewModel();

            viewModel.StatusValue    = 1;
            viewModel.SizeValue      = 1;
            viewModel.ComplianceYear = 2019;
            viewModel.Name           = "Name";
            viewModel.ApprovalNumber = "WEE/AB1234CD/ATF";

            var request = fixture.Create <AddAatf>();

            var aatf = new AatfData()
            {
                Id = viewModel.Id,

                Organisation = new OrganisationData()
                {
                    Id = viewModel.OrganisationId
                }
            };

            A.CallTo(() => mapper.Map <CopyAatfViewModel>(aatf)).Returns(viewModel);

            A.CallTo(() => weeeClient.SendAsync(A <string> .Ignored, request)).Returns(true);

            var validationResult = new ValidationResult();

            A.CallTo(() => validationWrapper.ValidateByYear(A <string> ._, viewModel, viewModel.ComplianceYear)).Returns(validationResult);

            var result = await controller.CopyAatfDetails(viewModel);

            A.CallTo(() => cache.InvalidateAatfCache(viewModel.OrganisationId)).MustHaveHappenedOnceExactly();
        }
Example #2
0
        public async Task <ActionResult> UpdateApproval(UpdateApprovalViewModel model)
        {
            SetBreadcrumb(model.FacilityType, model.AatfName);

            if (ModelState.IsValid)
            {
                if (model.SelectedValue.Equals("Yes"))
                {
                    using (var client = apiClient())
                    {
                        await client.SendAsync(User.GetAccessToken(), model.Request);

                        await cache.InvalidateAatfCache(model.OrganisationId);

                        return(Redirect(Url.Action("Details", new { id = model.AatfId })));
                    }
                }
                else
                {
                    return(RedirectToAction(nameof(ManageAatfDetails), new { id = model.AatfId }));
                }
            }

            return(View(model));
        }
Example #3
0
        public async Task AddAatfPost_ValidViewModel_CacheShouldBeInvalidated()
        {
            AddAatfViewModel viewModel = new AddAatfViewModel()
            {
                SizeValue      = 1,
                StatusValue    = 1,
                OrganisationId = Guid.NewGuid()
            };

            var validationResult = new ValidationResult();

            A.CallTo(() => validationWrapper.Validate(A <string> ._, viewModel)).Returns(validationResult);
            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetApiUtcDate> ._)).Returns(new DateTime(2019, 1, 1));

            await controller.AddAatf(viewModel);

            A.CallTo(() => cache.InvalidateAatfCache(viewModel.OrganisationId)).MustHaveHappenedOnceExactly();
            A.CallTo(() => cache.InvalidateOrganisationSearch()).MustHaveHappened(Repeated.Exactly.Once);
        }
Example #4
0
        private async Task <ActionResult> AddFacility(AddFacilityViewModelBase viewModel)
        {
            PreventSiteAddressNameValidationErrors();
            SetBreadcrumb(viewModel.FacilityType);
            viewModel = await PopulateViewModelLists(viewModel);

            if (!ModelState.IsValid)
            {
                if (!viewModel.ModelValidated)
                {
                    ModelState.RunCustomValidation(viewModel);
                }

                ModelState.ApplyCustomValidationSummaryOrdering(AddFacilityViewModelBase.ValidationMessageDisplayOrder);
                return(View(nameof(Add), viewModel));
            }

            using (var client = apiClient())
            {
                var result = await validationWrapper.Validate(User.GetAccessToken(), viewModel);

                if (!result.IsValid)
                {
                    ModelState.AddModelError("ApprovalNumber", Constants.ApprovalNumberExistsError);
                    return(View(nameof(Add), viewModel));
                }

                var request = new AddAatf()
                {
                    Aatf           = AatfHelper.CreateFacilityData(viewModel),
                    AatfContact    = viewModel.ContactData,
                    OrganisationId = viewModel.OrganisationId,
                };

                await client.SendAsync(User.GetAccessToken(), request);

                await cache.InvalidateAatfCache(request.OrganisationId);

                await client.SendAsync(User.GetAccessToken(), new CompleteOrganisationAdmin()
                {
                    OrganisationId = viewModel.OrganisationId
                });

                await cache.InvalidateOrganisationSearch();

                return(RedirectToAction("ManageAatfs", "Aatf", new { viewModel.FacilityType }));
            }
        }