Ejemplo n.º 1
0
        public GeneralViewModel(NotificationApplication notification,
            ShipmentInfo shipmentInfo,
            FacilityCollection facilityCollection,
            DateTimeFormatter dateTimeFormatter,
            QuantityFormatter quantityFormatter,
            PhysicalCharacteristicsFormatter physicalCharacteristicsFormatter)
        {
            Number = notification.NotificationNumber;
            IsDisposal = notification.NotificationType.Equals(NotificationType.Disposal);
            IsRecovery = notification.NotificationType.Equals(NotificationType.Recovery);

            var isPreconsented = facilityCollection.AllFacilitiesPreconsented;
            if (!isPreconsented.HasValue)
            {
                IsPreconsented = false;
                IsNotPreconsented = false;
            }
            else
            {
                IsPreconsented = isPreconsented.GetValueOrDefault();
                IsNotPreconsented = !isPreconsented.GetValueOrDefault();
            }

            if (shipmentInfo.NumberOfShipments > 1)
            {
                IsIndividualShipment = false;
                IsNotIndividualShipment = true;
            }
            else
            {
                IsIndividualShipment = true;
                IsNotIndividualShipment = false;
            }

            IntendedNumberOfShipments = shipmentInfo.NumberOfShipments.ToString();
            FirstDeparture = dateTimeFormatter.DateTimeToDocumentFormatString(shipmentInfo.ShipmentPeriod.FirstDate);
            LastDeparture = dateTimeFormatter.DateTimeToDocumentFormatString(shipmentInfo.ShipmentPeriod.LastDate);
            SetIntendedQuantityFields(shipmentInfo, quantityFormatter);

            var hasSpecialHandlingRequirements = notification.HasSpecialHandlingRequirements;
            if (!hasSpecialHandlingRequirements.HasValue)
            {
                IsSpecialHandling = false;
                IsNotSpecialHandling = false;
            }
            else
            {
                IsSpecialHandling = hasSpecialHandlingRequirements.GetValueOrDefault();
                IsNotSpecialHandling = !hasSpecialHandlingRequirements.GetValueOrDefault();
            }

            PackagingTypes = GetPackagingInfo(notification);

            PhysicalCharacteristics =
                physicalCharacteristicsFormatter.PhysicalCharacteristicsToCommaDelimitedString(
                    notification.PhysicalCharacteristics);
        }
Ejemplo n.º 2
0
        private void SetIntendedQuantityFields(ShipmentInfo shipmentInfo, QuantityFormatter quantityFormatter)
        {
            IntendedQuantityTonnes = string.Empty;
            IntendedQuantityKg = string.Empty;
            IntendedQuantityM3 = string.Empty;
            IntendedQuantityLtrs = string.Empty;

            var quantity = quantityFormatter.QuantityToStringWithUnits(shipmentInfo.Quantity,
                        shipmentInfo.Units);

            switch (shipmentInfo.Units)
            {
                case ShipmentQuantityUnits.Kilograms:
                    IntendedQuantityKg = quantity;
                    break;
                case ShipmentQuantityUnits.CubicMetres:
                    IntendedQuantityM3 = quantity;
                    break;
                case ShipmentQuantityUnits.Litres:
                    IntendedQuantityLtrs = quantity;
                    break;
                case ShipmentQuantityUnits.Tonnes:
                    IntendedQuantityTonnes = quantity;
                    break;
                default:
                    break;
            }
        }
        public MovementViewModel(Movement movement,
            MovementDetails movementDetails,
            NotificationApplication notification,
            ShipmentInfo shipmentInfo,
            DateTimeFormatter dateTimeFormatter,
            QuantityFormatter quantityFormatter,
            PhysicalCharacteristicsFormatter physicalCharacteristicsFormatter,
            PackagingTypesFormatter packagingTypesFormatter)
        {
            if (notification == null)
            {
                return;
            }

            NotificationNumber = notification.NotificationNumber ?? string.Empty;
            IsSpecialHandling = notification.HasSpecialHandlingRequirements.GetValueOrDefault();
            IsNotSpecialHandling = !notification.HasSpecialHandlingRequirements.GetValueOrDefault(true);
            PhysicalCharacteristics =
                physicalCharacteristicsFormatter.PhysicalCharacteristicsToCommaDelimitedString(notification.PhysicalCharacteristics);
            IntendedNumberOfShipments = (shipmentInfo == null)
                ? "0"
                : shipmentInfo.NumberOfShipments.ToString();
            IsRecovery = notification.NotificationType == NotificationType.Recovery;
            IsDisposal = notification.NotificationType == NotificationType.Disposal;

            if (movement == null)
            {
                return;
            }

            Number = movement.Number.ToString();

            if (movementDetails == null)
            {
                return;
            }

            ActualDate = dateTimeFormatter.DateTimeToDocumentFormatString(movement.Date);
            SetQuantity(movementDetails, quantityFormatter);
            PackagingTypes = packagingTypesFormatter.PackagingTypesToCommaDelimitedString(movementDetails.PackagingInfos);
        }
        private void SetQuantity(MovementDetails movementDetails, QuantityFormatter quantityFormatter)
        {
            var displayString = quantityFormatter.QuantityToStringWithUnits(movementDetails.ActualQuantity.Quantity, movementDetails.ActualQuantity.Units);

            switch (movementDetails.ActualQuantity.Units)
            {
                case ShipmentQuantityUnits.Kilograms:
                    ActualKilograms = displayString;
                    break;

                case ShipmentQuantityUnits.CubicMetres:
                    ActualCubicMetres = displayString;
                    break;

                case ShipmentQuantityUnits.Litres:
                    ActualLitres = displayString;
                    break;

                case ShipmentQuantityUnits.Tonnes:
                    ActualTonnes = displayString;
                    break;

                default:
                    break;
            }
        }