public OperationBlock(IList <MergeField> mergeFields, NotificationApplication notification, TechnologyEmployed technologyEmployed) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); data = new OperationViewModel(notification, technologyEmployed, new OperationInfoFormatter()); AnnexMergeFields = MergeFieldLocator.GetAnnexMergeFields(mergeFields, TypeName); }
public async Task <byte[]> Generate(Guid movementId) { using (var memoryStream = DocumentHelper.ReadDocumentStreamShared("MovementMergeTemplate.docx")) { using (var document = WordprocessingDocument.Open(memoryStream, true)) { var movementDetails = await movementDetailsRepository.GetByMovementId(movementId); var carrierCollection = await carrierRepository.GetByMovementId(movementId); bool hasCarrierAnnex = carrierCollection.Carriers.Count() > 1; var fields = MergeFieldLocator.GetMergeRuns(document); var blocks = await blocksFactory.GetBlocks(movementId, fields); var movementDocument = new MovementDocument(blocks); ShipmentQuantityUnitFormatter.ApplyStrikethroughFormattingToUnits(document, movementDetails.ActualQuantity.Units); movementDocument.Merge(hasCarrierAnnex); MergeFieldLocator.RemoveDataSourceSettingFromMergedDocument(document); } return(memoryStream.ToArray()); } }
public WasteCodesBlock(IList <MergeField> mergeFields, NotificationApplication notification) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); data = new WasteCodesViewModel(notification, new WasteCodeInfoFormatter()); AnnexMergeFields = MergeFieldLocator.GetAnnexMergeFields(mergeFields, TypeName); }
private void MergeCarriersTable() { var mergeTableRows = new TableRow[data.CarrierDetails.Count]; var properties = PropertyHelper.GetPropertiesForViewModel(typeof(MovementCarrierDetails)); // Find both the first row in the multiple carriers table and the table itself. var firstMergeFieldInTable = FindFirstMergeFieldInAnnexTable(); var table = FindMultipleCarriersTable(firstMergeFieldInTable); // Get the table row containing the merge fields. mergeTableRows[0] = firstMergeFieldInTable.Run.Ancestors <TableRow>().First(); // Create a row containing merge fields for each of the Carriers. for (var i = 1; i < data.CarrierDetails.Count; i++) { mergeTableRows[i] = (TableRow)mergeTableRows[0].CloneNode(true); table.AppendChild(mergeTableRows[i]); } // Merge the carriers into the table rows. for (var i = 0; i < mergeTableRows.Length; i++) { foreach (var field in MergeFieldLocator.GetMergeRuns(mergeTableRows[i])) { MergeFieldDataMapper.BindCorrespondingField( MergeFieldLocator.ConvertAnnexMergeFieldToRegularMergeField(field), data.CarrierDetails[i], properties); } } }
public WasteRecoveryBlock(IList <MergeField> mergeFields, NotificationApplication notification, WasteRecovery wasteRecovery, WasteDisposal wasteDisposal) { AnnexMergeFields = MergeFieldLocator.GetAnnexMergeFields(mergeFields, TypeName); CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); data = new WasteRecoveryViewModel(notification, wasteRecovery, wasteDisposal, new WasteRecoveryFormatter()); if (notification.NotificationType == NotificationType.Disposal) { HasAnnex = false; MergeMainDocumentBlock(); } else { HasAnnex = true; if (notification.WasteRecoveryInformationProvidedByImporter.GetValueOrDefault()) { HasAnnex = false; MergeMainDocumentBlock(); } } }
public TransitStatesBlock(IList <MergeField> mergeFields, TransportRoute transportRoute) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); data = new TransitStateViewModel(transportRoute.TransitStates.ToList()); AnnexMergeFields = MergeFieldLocator.GetAnnexMergeFields(mergeFields, TypeName); }
private void MergeToTable(PropertyInfo[] properties) { var mergeTableRows = new TableRow[data.TransitStateDetails.Count]; // Find both the first row in the multiple producers table and the table itself. var firstMergeFieldInTable = FindFirstMergeFieldInAnnexTable(); var table = FindAnnexTable(firstMergeFieldInTable); // Get the table row containing the merge fields. mergeTableRows[0] = firstMergeFieldInTable.Run.Ancestors <TableRow>().First(); // Create a row containing merge fields for each of the producers. for (var i = 1; i < data.TransitStateDetails.Count; i++) { mergeTableRows[i] = (TableRow)mergeTableRows[0].CloneNode(true); table.AppendChild(mergeTableRows[i]); } // Merge the producers into the table rows. for (var i = 0; i < mergeTableRows.Length; i++) { foreach (var field in MergeFieldLocator.GetMergeRuns(mergeTableRows[i])) { MergeFieldDataMapper.BindCorrespondingField( MergeFieldLocator.ConvertAnnexMergeFieldToRegularMergeField(field), data.TransitStateDetails[i], properties); } } }
public CarrierBlock(IList <MergeField> mergeFields, MeansOfTransport meansOfTransport, CarrierCollection carrierCollection) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); data = CarrierViewModel.CreateCarrierViewModelsForNotification(meansOfTransport, carrierCollection, new MeansOfTransportFormatter()); AnnexMergeFields = MergeFieldLocator.GetAnnexMergeFields(mergeFields, TypeName); }
public CustomsOfficeBlock(IList <MergeField> mergeFields, TransportRoute transportRoute, UKCompetentAuthority notificationCompetentAuthority) { IsNorthenIrelandCompetentAuthority = (notificationCompetentAuthority.Equals(UKCompetentAuthority.NorthernIreland) ? true : false); CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); data = new CustomsOfficeViewModel(transportRoute); AnnexMergeFields = MergeFieldLocator.GetAnnexMergeFields(mergeFields, TypeName); }
public WasteCompositionBlock(IList <MergeField> mergeFields, NotificationApplication notification) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); data = new WasteCompositionViewModel(notification.WasteType, new WasteCompositionFormatter()); //Set annex merge fields AnnexMergeFields = MergeFieldLocator.GetAnnexMergeFields(mergeFields, TypeName); ((List <MergeField>)AnnexMergeFields).AddRange(MergeFieldLocator.GetAnnexMergeFields(mergeFields, Parameters)); ((List <MergeField>)AnnexMergeFields).AddRange(MergeFieldLocator.GetAnnexMergeFields(mergeFields, Constituents)); }
public GeneralBlock(IList <MergeField> mergeFields, NotificationApplication notification, ShipmentInfo shipmentInfo, FacilityCollection facilityCollection) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, "General"); data = new GeneralViewModel(notification, shipmentInfo, facilityCollection, new DateTimeFormatter(), new QuantityFormatter(), new PhysicalCharacteristicsFormatter()); }
public FacilityBlock(IList <MergeField> mergeFields, FacilityCollection facilityCollection) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); var numberOfFacilities = facilityCollection.Facilities.Count(); data = facilityCollection.Facilities.Select(p => new FacilityViewModel(p, numberOfFacilities)).ToList(); //The facility annex contains a set of different merge fields for facility marked as Actual Site of Treatment. AnnexMergeFields = MergeFieldLocator.GetAnnexMergeFields(mergeFields, TypeName); ((List <MergeField>)AnnexMergeFields).AddRange(MergeFieldLocator.GetAnnexMergeFields(mergeFields, ActualSiteOfTreatment)); }
public async Task <byte[]> Generate(Guid notificationId) { using (var memoryStream = DocumentHelper.ReadDocumentStreamShared("InterimMovementMergeTemplate.docx")) { using (var document = WordprocessingDocument.Open(memoryStream, true)) { var notificationNumber = await notificationApplicationRepository.GetNumber(notificationId); MergeFieldLocator.MergeNamedField("NotificationNumber", notificationNumber, document); } return(memoryStream.ToArray()); } }
public ProducerBlock(IList <MergeField> mergeFields, NotificationApplication notification, ProducerCollection producerCollection) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); var numberOfProducers = producerCollection.Producers.Count(); var processText = notification.WasteGenerationProcess; var isProcessAnnexAttached = notification.IsWasteGenerationProcessAttached; data = producerCollection.Producers.Select(p => new ProducerViewModel(p, numberOfProducers, processText, isProcessAnnexAttached)).ToList(); // The producers annex contains a set of different merge fields for producer marked as Site of Export. AnnexMergeFields = MergeFieldLocator.GetAnnexMergeFields(mergeFields, TypeName); ((List <MergeField>)AnnexMergeFields).AddRange(MergeFieldLocator.GetAnnexMergeFields(mergeFields, SiteOfExport)); ((List <MergeField>)AnnexMergeFields).AddRange(MergeFieldLocator.GetAnnexMergeFields(mergeFields, PoGtext)); }
public MovementBlock(IList <MergeField> mergeFields, Movement movement, MovementDetails movementDetails, NotificationApplication notification, ShipmentInfo shipmentInfo) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); data = new MovementViewModel( movement, movementDetails, notification, shipmentInfo, new DateTimeFormatter(), new QuantityFormatter(), new PhysicalCharacteristicsFormatter(), new PackagingTypesFormatter()); }
private byte[] GenerateMainDocument(NotificationApplication notification, string applicationDirectory) { var pathToTemplate = Path.Combine(applicationDirectory, "NotificationMergeTemplate.docx"); // Minimise time the process is using the template file to prevent contention between processes. var templateFile = DocumentHelper.ReadDocumentShared(pathToTemplate); using (var memoryStream = new MemoryStream()) { memoryStream.Write(templateFile, 0, templateFile.Length); using (var document = WordprocessingDocument.Open(memoryStream, true)) { var mergeFields = MergeFieldLocator.GetMergeRuns(document); notificationDocumentMerger.MergeDataIntoDocument(mergeFields, notification); MergeFieldLocator.RemoveDataSourceSettingFromMergedDocument(document); } return(memoryStream.ToArray()); } }
protected void MergeMultipleFacilitiesTable(PropertyInfo[] properties) { var mergeTableRows = new TableRow[data.Count]; var firstMergeFieldInTable = FindFirstMergeFieldInAnnexTable(); var table = FindMultipleFacilitiesTable(firstMergeFieldInTable); // Get the table row containing the merge fields. mergeTableRows[0] = firstMergeFieldInTable.Run.Ancestors <TableRow>().First(); for (var i = 1; i < data.Count; i++) { mergeTableRows[i] = (TableRow)mergeTableRows[0].CloneNode(true); table.AppendChild(mergeTableRows[i]); } for (var i = 0; i < mergeTableRows.Length; i++) { foreach (var field in MergeFieldLocator.GetMergeRuns(mergeTableRows[i])) { MergeFieldDataMapper.BindCorrespondingField( MergeFieldLocator.ConvertAnnexMergeFieldToRegularMergeField(field), data[i], properties); } } }
public async Task <byte[]> GenerateNotificationDocument(Guid notificationId) { using (var memoryStream = DocumentHelper.ReadDocumentStreamShared("NotificationMergeTemplate.docx")) { using (var document = WordprocessingDocument.Open(memoryStream, true)) { var mergeFields = MergeFieldLocator.GetMergeRuns(document); var blocks = await blocksFactory.GetBlocks(notificationId, mergeFields); var notificationDocument = new NotificationDocumentMerger(mergeFields, blocks); var shipmentInfo = await shipmentInfoRepository.GetByNotificationId(notificationId); ShipmentQuantityUnitFormatter.ApplyStrikethroughFormattingToUnits(document, shipmentInfo); notificationDocument.Merge(); MergeFieldLocator.RemoveDataSourceSettingFromMergedDocument(document); } return(memoryStream.ToArray()); } }
private void MergeToTable(PropertyInfo[] properties, IList <ChemicalCompositionPercentages> list, string tableName) { var mergeTableRows = new TableRow[list.Count()]; var firstMergeFieldInTable = FindFirstMergeFieldInTable(tableName); var table = FindTable(firstMergeFieldInTable); mergeTableRows[0] = firstMergeFieldInTable.Run.Ancestors <TableRow>().First(); for (var i = 1; i < list.Count(); i++) { mergeTableRows[i] = (TableRow)mergeTableRows[0].CloneNode(true); table.AppendChild(mergeTableRows[i]); } for (var i = 0; i < mergeTableRows.Length; i++) { foreach (var field in MergeFieldLocator.GetMergeRuns(mergeTableRows[i])) { MergeFieldDataMapper.BindCorrespondingField( MergeFieldLocator.ConvertAnnexMergeFieldToRegularMergeField(field), list[i], properties); } } }
public SpecialHandlingBlock(IList <MergeField> mergeFields, NotificationApplication notification) { data = new SpecialHandlingViewModel(notification); CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); AnnexMergeFields = MergeFieldLocator.GetAnnexMergeFields(mergeFields, SpecialHandling); }
public NumberOfAnnexesAndInstructionsAndToCBlock(IList <MergeField> mergeFields, int annexNumber, string tocText, string instructionsText) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); data = new NumberOfAnnexesAndInstructionsAndToCViewModel(tocText, instructionsText, annexNumber); }
public ImporterBlock(IList <MergeField> mergeFields, Importer importer) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, "Importer"); data = new ImporterViewModel(importer); }
public TransportBlock(IList <MergeField> mergeFields, TransportRoute transportRoute) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); data = new TransportViewModel(transportRoute); }
public MovementCarrierBlock(IList <MergeField> mergeFields, IEnumerable <MovementCarrier> movementCarriers) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); data = new MovementCarriersViewModel(movementCarriers.ToList()); AnnexMergeFields = MergeFieldLocator.GetAnnexMergeFields(mergeFields, TypeName); }
public ExporterBlock(IList <MergeField> mergeFields, Exporter exporter) { CorrespondingMergeFields = MergeFieldLocator.GetCorrespondingFieldsForBlock(mergeFields, TypeName); data = new ExporterViewModel(exporter); }