public async Task <NotificationMovementsSummaryAndTable> HandleAsync(GetSummaryAndTable message)
        {
            var isInterimNotification = (await facilityRepository.GetByNotificationId((message.Id))).IsInterim.GetValueOrDefault();
            var summaryData           = await summaryRepository.GetById(message.Id);

            IEnumerable <Movement> notificationMovements;

            if (message.Status.HasValue)
            {
                notificationMovements = await movementRepository.GetPagedMovementsByStatus(message.Id, message.Status.Value, message.PageNumber, PageSize);
            }
            else
            {
                notificationMovements = await movementRepository.GetPagedMovements(message.Id, message.PageNumber, PageSize);
            }

            var data = mapper.Map <NotificationMovementsSummary, Movement[], NotificationMovementsSummaryAndTable>(summaryData, notificationMovements.ToArray());

            data.IsInterimNotification = isInterimNotification;

            data.PageSize          = PageSize;
            data.PageNumber        = message.PageNumber;
            data.NumberOfShipments = await movementRepository.GetTotalNumberOfMovements(message.Id, message.Status);

            return(data);
        }
예제 #2
0
        public async Task <MovementSummary> HandleAsync(GetMovementSummary message)
        {
            var movement = await movementRepository
                           .GetById(message.Id);

            var summaryData = await summaryRepository
                              .GetById(movement.NotificationId);

            return(mapper.Map <MovementSummary>(summaryData, movement));
        }
예제 #3
0
        public PrenotificationQuantityExceededRuleTests()
        {
            this.repo = A.Fake <INotificationMovementsSummaryRepository>();

            int intendedQuantity = 100;
            int quantityReceived = 80;

            A.CallTo(() => repo.GetById(notificationId))
            .Returns(NotificationMovementsSummary.Load(notificationId, string.Empty,
                                                       Core.Shared.NotificationType.Disposal, 10, 5, 10, 5, intendedQuantity, quantityReceived,
                                                       Core.Shared.ShipmentQuantityUnits.Kilograms,
                                                       Core.FinancialGuarantee.FinancialGuaranteeStatus.Approved,
                                                       Core.Notification.UKCompetentAuthority.England,
                                                       Core.NotificationAssessment.NotificationStatus.Consented,
                                                       new Domain.ShipmentQuantity(1, Core.Shared.ShipmentQuantityUnits.Kilograms)));
        }
예제 #4
0
        public async Task <ContentRuleResult <BulkMovementContentRules> > GetResult(List <PrenotificationMovement> shipments, Guid notificationId)
        {
            var    excessiveShipmentsResult = MessageLevel.Success;
            var    excessiveShipmentNumbers = new List <string>();
            string errorMessage             = string.Empty;

            var movementSummary = await notificationMovementsSummaryRepository.GetById(notificationId);

            int remainingShipments = 1; //movementSummary.ActiveLoadsPermitted - movementSummary.CurrentActiveLoads;

            if (remainingShipments < shipments.Count)
            {
                excessiveShipmentsResult = MessageLevel.Error;
            }

            return(new ContentRuleResult <BulkMovementContentRules>(BulkMovementContentRules.ExcessiveShipments, excessiveShipmentsResult, excessiveShipmentNumbers, remainingShipments, shipments.Count));
        }
        public PrenotificationOnlyNewShipmentsRuleTests()
        {
            this.repo = A.Fake <INotificationMovementsSummaryRepository>();

            var maxShipments     = 10;
            var currentShipments = 3;

            var movementSummary = NotificationMovementsSummary.Load(notificationId, string.Empty,
                                                                    Core.Shared.NotificationType.Disposal, maxShipments, currentShipments, 5, 3, 100, 10,
                                                                    Core.Shared.ShipmentQuantityUnits.Kilograms, Core.FinancialGuarantee.FinancialGuaranteeStatus.Approved,
                                                                    Core.Notification.UKCompetentAuthority.England, Core.NotificationAssessment.NotificationStatus.Consented,
                                                                    new Domain.ShipmentQuantity(1, Core.Shared.ShipmentQuantityUnits.Kilograms));

            A.CallTo(() => repo.GetById(notificationId)).Returns(movementSummary);

            rule = new PrenotificationInvalidShipmentNumberRule(repo);
        }
예제 #6
0
        public async Task <InternalMovementSummary> HandleAsync(GetInternalMovementSummary message)
        {
            var summary = await repository.GetById(message.NotificationId);

            return(new InternalMovementSummary
            {
                NotificationId = summary.NotificationId,
                NotificationNumber = summary.NotificationNumber,
                TotalShipments = summary.CurrentTotalShipments,
                QuantityReceived = summary.QuantityReceived,
                QuantityRemaining = summary.QuantityRemaining,
                DisplayUnit = summary.Units,
                ActiveLoadsPermitted = summary.ActiveLoadsPermitted,
                CurrentActiveLoads = summary.CurrentActiveLoads,
                CompetentAuthority = summary.CompetentAuthority,
                FinancialGuaranteeStatus = summary.FinancialGuaranteeStatus,
                NotificationStatus = summary.NotificationStatus,
                TotalIntendedShipments = summary.IntendedTotalShipments,
                AverageTonnage = summary.AverageTonnage,
                AverageDataUnit = summary.AverageDataUnit
            });
        }
예제 #7
0
        public async Task <BasicMovementSummary> HandleAsync(GetBasicMovementSummary message)
        {
            var summary = await repository.GetById(message.NotificationId);

            return(mapper.Map <BasicMovementSummary>(summary));
        }