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); }
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; } }