예제 #1
0
        public async Task <List <WeeeSentOnData> > HandleAsync(GetWeeeSentOn message)
        {
            authorization.EnsureCanAccessExternalArea();

            var weeeSentOnList = new List <WeeeSentOnData>();
            var weeeSentOn     = await getSentOnAatfSiteDataAccess.GetWeeeSentOnByReturnAndAatf(message.AatfId, message.ReturnId);

            foreach (var item in weeeSentOn)
            {
                var amount = await fetchWeeeSentOnAmountDataAccess.FetchObligatedWeeeSentOnForReturn(item.Id);

                var weeeSentOnObligatedData = amount.Select(n => new WeeeObligatedData(n.Id, new AatfData(n.WeeeSentOn.Aatf.Id, n.WeeeSentOn.Aatf.Name, n.WeeeSentOn.Aatf.ApprovalNumber, n.WeeeSentOn.Aatf.ComplianceYear), n.CategoryId, n.NonHouseholdTonnage, n.HouseholdTonnage)).ToList();

                var weeeSentOnData = new WeeeSentOnData()
                {
                    SiteAddress   = addressMapper.Map(item.SiteAddress),
                    Tonnages      = weeeSentOnObligatedData,
                    WeeeSentOnId  = item.Id,
                    SiteAddressId = item.SiteAddress.Id
                };

                if (item.OperatorAddress != null)
                {
                    weeeSentOnData.OperatorAddress   = addressMapper.Map(item.OperatorAddress);
                    weeeSentOnData.OperatorAddressId = item.OperatorAddress.Id;
                }

                weeeSentOnList.Add(weeeSentOnData);
            }

            if (message.WeeeSentOnId != null)
            {
                var weeeSentOnListFiltered = new List <WeeeSentOnData>();
                var weeeSentOnSelected     = weeeSentOnList.Where(w => w.WeeeSentOnId == message.WeeeSentOnId).Select(w => w).SingleOrDefault();
                weeeSentOnListFiltered.Add(weeeSentOnSelected);
                return(weeeSentOnListFiltered);
            }

            return(weeeSentOnList);
        }
예제 #2
0
        public async void HandleAsync_GivenWeeeSentOnId_ReturnedListShouldContainOnly1Element()
        {
            var aatfId   = Guid.NewGuid();
            var returnId = Guid.NewGuid();

            var sentOnList      = new List <WeeeSentOn>();
            var operatorAddress = new AatfAddress("OpName", "OpAdd1", "OpAdd2", "OpTown", "OpCounty", "PostOp", A.Fake <Country>());
            var siteAddress     = new AatfAddress("SiteName", "SiteAdd1", "SiteAdd2", "SiteTown", "SiteCounty", "PostSite", A.Fake <Country>());
            var weeeSentOn      = new WeeeSentOn(operatorAddress, siteAddress, A.Fake <Aatf>(), A.Fake <Return>());

            sentOnList.Add(weeeSentOn);

            var weeeSentOnId = weeeSentOn.Id;

            var request = new GetWeeeSentOn(aatfId, returnId, weeeSentOnId);

            A.CallTo(() => getSentOnAatfSiteDataAccess.GetWeeeSentOnByReturnAndAatf(aatfId, returnId)).Returns(sentOnList);

            var result = await handler.HandleAsync(request);

            result.Count.Should().Be(1);
        }
예제 #3
0
        public async void HandleAsync_GivenGetSentOnAatfSiteRequest_AddressDataShouldBeMapped()
        {
            var aatfId   = Guid.NewGuid();
            var returnId = Guid.NewGuid();

            var sentOnList      = new List <WeeeSentOn>();
            var operatorAddress = new AatfAddress("OpName", "OpAdd1", "OpAdd2", "OpTown", "OpCounty", "PostOp", A.Fake <Country>());
            var siteAddress     = new AatfAddress("SiteName", "SiteAdd1", "SiteAdd2", "SiteTown", "SiteCounty", "PostSite", A.Fake <Country>());
            var weeeSentOn      = new WeeeSentOn(operatorAddress, siteAddress, A.Fake <Aatf>(), A.Fake <Return>());

            sentOnList.Add(weeeSentOn);

            var request = new GetWeeeSentOn(aatfId, returnId, null);

            A.CallTo(() => getSentOnAatfSiteDataAccess.GetWeeeSentOnByReturnAndAatf(aatfId, returnId)).Returns(sentOnList);

            await handler.HandleAsync(request);

            for (var i = 0; i < sentOnList.Count; i++)
            {
                A.CallTo(() => addressMapper.Map(A <AatfAddress> .That.IsSameAs(sentOnList[i].OperatorAddress))).MustHaveHappened(Repeated.Exactly.Once);
                A.CallTo(() => addressMapper.Map(A <AatfAddress> .That.IsSameAs(sentOnList[i].SiteAddress))).MustHaveHappened(Repeated.Exactly.Once);
            }
        }