Example #1
0
        public async void IndexGet_GivenReturn_ViewModelShouldBeBuilt()
        {
            var returnId       = Guid.NewGuid();
            var aatfId         = Guid.NewGuid();
            var aatfName       = "Test Aatf";
            var aatfData       = A.Fake <AatfData>();
            var schemeId       = Guid.NewGuid();
            var schemeName     = "Test Scheme";
            var schemeInfo     = A.Fake <SchemePublicInfo>();
            var organisationId = Guid.NewGuid();
            var @return        = A.Fake <ReturnData>();

            A.CallTo(() => @return.OrganisationData.Id).Returns(organisationId);
            A.CallTo(() => schemeInfo.Name).Returns(schemeName);
            A.CallTo(() => cache.FetchSchemePublicInfoBySchemeId(schemeId)).Returns(schemeInfo);
            A.CallTo(() => aatfData.Name).Returns(aatfName);
            A.CallTo(() => cache.FetchAatfData(@return.OrganisationData.Id, aatfId)).Returns(aatfData);
            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetReturn> .That.Matches(r => r.ReturnId.Equals(returnId)))).Returns(@return);

            var result = await controller.Index(returnId, aatfId, schemeId, ObligatedType.Received) as ViewResult;

            var viewModel = result.Model as ObligatedValuesCopyPasteViewModel;

            viewModel.AatfId.Should().Be(aatfId);
            viewModel.AatfName.Should().Be(aatfName);
            viewModel.OrganisationId.Should().Be(organisationId);
            viewModel.ReturnId.Should().Be(returnId);
            viewModel.SchemeId.Should().Be(schemeId);
            viewModel.SchemeName.Should().Be(schemeName);
        }
        public virtual async Task <ActionResult> Index(Guid returnId, Guid aatfId, Guid schemeId, ObligatedType obligatedType)
        {
            using (var client = apiClient())
            {
                var @return = await client.SendAsync(User.GetAccessToken(), new GetReturn(returnId, false));

                var viewModel = new ObligatedValuesCopyPasteViewModel()
                {
                    AatfId         = aatfId,
                    ReturnId       = returnId,
                    OrganisationId = @return.OrganisationData.Id,
                    AatfName       = (await cache.FetchAatfData(@return.OrganisationData.Id, aatfId)).Name,
                    Type           = obligatedType
                };

                if (obligatedType == ObligatedType.Received)
                {
                    viewModel.SchemeId   = schemeId;
                    viewModel.SchemeName = Task.Run(() => cache.FetchSchemePublicInfoBySchemeId(schemeId)).Result.Name;
                }
                await SetBreadcrumb(@return.OrganisationData.Id, BreadCrumbConstant.AatfReturn, aatfId, DisplayHelper.YearQuarterPeriodFormat(@return.Quarter, @return.QuarterWindow));

                return(View(viewModel));
            }
        }
Example #3
0
        public void Map_GivenOrganisationId_CachedSchemeNameShouldBeSet()
        {
            const string expected   = "scheme";
            var          schemeData = A.Fake <SchemePublicInfo>();

            A.CallTo(() => schemeData.Name).Returns(expected);

            var transfer = new ReturnToObligatedViewModelMapTransfer()
            {
                SchemeId = Guid.NewGuid()
            };

            A.CallTo(() => cache.FetchSchemePublicInfoBySchemeId(transfer.SchemeId)).Returns(schemeData);

            var result = mapper.Map(transfer);

            result.SchemeName.Should().Be(expected);
        }
        public ObligatedViewModel Map(ReturnToObligatedViewModelMapTransfer source)
        {
            Guard.ArgumentNotNull(() => source, source);

            var model = new ObligatedViewModel(new ObligatedCategoryValues(), calculator)
            {
                SchemeName     = (source.SchemeId != new Guid()) ? Task.Run(() => cache.FetchSchemePublicInfoBySchemeId(source.SchemeId)).Result.Name : null,
                AatfName       = Task.Run(() => cache.FetchAatfData(source.OrganisationId, source.AatfId)).Result.Name,
                AatfId         = source.AatfId,
                OrganisationId = source.OrganisationId,
                ReturnId       = source.ReturnId,
                SchemeId       = source.SchemeId
            };

            var transfer = new ObligatedDataToObligatedValueMapTransfer()
            {
                ObligatedCategoryValues = model.CategoryValues
            };
            var existingData = new List <ObligatedCategoryValue>();

            if (source.WeeeSentOnId != null)
            {
                model.WeeeSentOnId = source.WeeeSentOnId;
            }

            if (source.SchemeId != new Guid())
            {
                transfer.WeeeDataValues = source.ReturnData.ObligatedWeeeReceivedData.Where(w => w.Aatf.Id == source.AatfId && w.Scheme.Id == source.SchemeId).ToList();
                existingData            = obligatedMap.Map(transfer).ToList();
            }
            else if (source.SiteName != null)
            {
                transfer.WeeeDataValues = source.ReturnData.ObligatedWeeeSentOnData.Where(w => w.WeeeSentOnId == source.WeeeSentOnId).ToList();
                existingData            = obligatedMap.Map(transfer).ToList();
            }
            else
            {
                transfer.WeeeDataValues = source.ReturnData.ObligatedWeeeReusedData.Where(w => w.Aatf.Id == source.AatfId).ToList();
                existingData            = obligatedMap.Map(transfer).ToList();
            }

            if (source.SiteName != null)
            {
                model.SiteName = source.SiteName;
            }

            if (source.PastedData != null)
            {
                var obligatedPastedValues = new ObligatedPastedValues
                {
                    B2B = pasteProcessor.BuildModel(source.PastedData.B2B),
                    B2C = pasteProcessor.BuildModel(source.PastedData.B2C)
                };

                model.CategoryValues = pasteProcessor.ParseObligatedPastedValues(obligatedPastedValues, existingData);
            }
            else
            {
                model.CategoryValues = existingData;
            }

            return(model);
        }