aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs525
1 files changed, 50 insertions, 475 deletions
diff --git a/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs b/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs
index cd3660e4..1cf8cf12 100644
--- a/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs
+++ b/src/WixToolset.Data/WindowsInstaller/Rows/FileRow.cs
@@ -2,41 +2,13 @@
2 2
3namespace WixToolset.Data.WindowsInstaller.Rows 3namespace WixToolset.Data.WindowsInstaller.Rows
4{ 4{
5 using System;
6 using System.Diagnostics; 5 using System.Diagnostics;
7 using System.Globalization;
8 6
9 /// <summary> 7 /// <summary>
10 /// Specialization of a row for the file table. 8 /// Specialization of a row for the file table.
11 /// </summary> 9 /// </summary>
12 public sealed class FileRow : Row //, IComparable 10 public sealed class FileRow : Row
13 { 11 {
14 //private string assemblyApplication;
15 //private string assemblyManifest;
16 //private FileAssemblyType assemblyType;
17 //private string directory;
18 //private int diskId;
19 //private bool fromModule;
20 //private bool isGeneratedShortFileName;
21 //private int patchGroup;
22 //private string processorArchitecture;
23 //private string source;
24 //private Row hashRow;
25 //private List<Row> assemblyNameRows;
26 //private string[] previousSource;
27 //private string symbols;
28 //private string[] previousSymbols;
29 //private PatchAttributeType patchAttributes;
30 //private string retainOffsets;
31 //private string retainLengths;
32 //private string ignoreOffsets;
33 //private string ignoreLengths;
34 //private string[] previousRetainOffsets;
35 //private string[] previousRetainLengths;
36 //private string[] previousIgnoreOffsets;
37 //private string[] previousIgnoreLengths;
38 //private string patch;
39
40 /// <summary> 12 /// <summary>
41 /// Creates a File row that belongs to a table. 13 /// Creates a File row that belongs to a table.
42 /// </summary> 14 /// </summary>
@@ -45,13 +17,6 @@ namespace WixToolset.Data.WindowsInstaller.Rows
45 public FileRow(SourceLineNumber sourceLineNumbers, Table table) 17 public FileRow(SourceLineNumber sourceLineNumbers, Table table)
46 : base(sourceLineNumbers, table) 18 : base(sourceLineNumbers, table)
47 { 19 {
48 //this.assemblyType = FileAssemblyType.NotAnAssembly;
49 //this.previousSource = new string[1];
50 //this.previousSymbols = new string[1];
51 //this.previousRetainOffsets = new string[1];
52 //this.previousRetainLengths = new string[1];
53 //this.previousIgnoreOffsets = new string[1];
54 //this.previousIgnoreLengths = new string[1];
55 } 20 }
56 21
57 /// <summary> 22 /// <summary>
@@ -62,13 +27,6 @@ namespace WixToolset.Data.WindowsInstaller.Rows
62 public FileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) 27 public FileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition)
63 : base(sourceLineNumbers, tableDefinition) 28 : base(sourceLineNumbers, tableDefinition)
64 { 29 {
65 //this.assemblyType = FileAssemblyType.NotAnAssembly;
66 //this.previousSource = new string[1];
67 //this.previousSymbols = new string[1];
68 //this.previousRetainOffsets = new string[1];
69 //this.previousRetainLengths = new string[1];
70 //this.previousIgnoreOffsets = new string[1];
71 //this.previousIgnoreLengths = new string[1];
72 } 30 }
73 31
74 /// <summary> 32 /// <summary>
@@ -77,8 +35,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows
77 /// <value>Primary key of the file row.</value> 35 /// <value>Primary key of the file row.</value>
78 public string File 36 public string File
79 { 37 {
80 get { return (string)this.Fields[0].Data; } 38 get => this.FieldAsString(0);
81 set { this.Fields[0].Data = value; } 39 set => this.Fields[0].Data = value;
82 } 40 }
83 41
84 /// <summary> 42 /// <summary>
@@ -87,8 +45,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows
87 /// <value>Component this file row belongs to.</value> 45 /// <value>Component this file row belongs to.</value>
88 public string Component 46 public string Component
89 { 47 {
90 get { return (string)this.Fields[1].Data; } 48 get => this.FieldAsString(1);
91 set { this.Fields[1].Data = value; } 49 set => this.Fields[1].Data = value;
92 } 50 }
93 51
94 /// <summary> 52 /// <summary>
@@ -97,8 +55,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows
97 /// <value>Name of the file.</value> 55 /// <value>Name of the file.</value>
98 public string FileName 56 public string FileName
99 { 57 {
100 get { return (string)this.Fields[2].Data; } 58 get => this.FieldAsString(2);
101 set { this.Fields[2].Data = value; } 59 set => this.Fields[2].Data = value;
102 } 60 }
103 61
104 /// <summary> 62 /// <summary>
@@ -110,18 +68,12 @@ namespace WixToolset.Data.WindowsInstaller.Rows
110 { 68 {
111 get 69 get
112 { 70 {
113 string fileName = this.FileName; 71 var fileName = this.FileName;
114 int index = fileName.IndexOf('|'); 72 var index = fileName.IndexOf('|');
115 73
116 // If it doesn't contain a pipe, just return the whole string 74 // If it doesn't contain a pipe, just return the whole string
117 if (-1 == index) 75 // otherwise, extract the part of the string after the pipe.
118 { 76 return (-1 == index) ? fileName : fileName.Substring(index + 1);
119 return fileName;
120 }
121 else // otherwise, extract the part of the string after the pipe
122 {
123 return fileName.Substring(index + 1);
124 }
125 } 77 }
126 } 78 }
127 79
@@ -131,8 +83,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows
131 /// <value>Size of the file.</value> 83 /// <value>Size of the file.</value>
132 public int FileSize 84 public int FileSize
133 { 85 {
134 get { return (int)this.Fields[3].Data; } 86 get => this.FieldAsInteger(3);
135 set { this.Fields[3].Data = value; } 87 set => this.Fields[3].Data = value;
136 } 88 }
137 89
138 /// <summary> 90 /// <summary>
@@ -141,8 +93,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows
141 /// <value>Version of the file.</value> 93 /// <value>Version of the file.</value>
142 public string Version 94 public string Version
143 { 95 {
144 get { return (string)this.Fields[4].Data; } 96 get => this.FieldAsString(4);
145 set { this.Fields[4].Data = value; } 97 set => this.Fields[4].Data = value;
146 } 98 }
147 99
148 /// <summary> 100 /// <summary>
@@ -151,8 +103,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows
151 /// <value>LCID of the file.</value> 103 /// <value>LCID of the file.</value>
152 public string Language 104 public string Language
153 { 105 {
154 get { return (string)this.Fields[5].Data; } 106 get => this.FieldAsString(5);
155 set { this.Fields[5].Data = value; } 107 set => this.Fields[5].Data = value;
156 } 108 }
157 109
158 /// <summary> 110 /// <summary>
@@ -161,8 +113,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows
161 /// <value>Attributes on a file.</value> 113 /// <value>Attributes on a file.</value>
162 public int Attributes 114 public int Attributes
163 { 115 {
164 get { return Convert.ToInt32(this.Fields[6].Data, CultureInfo.InvariantCulture); } 116 get => this.FieldAsInteger(6);
165 set { this.Fields[6].Data = value; } 117 set => this.Fields[6].Data = value;
166 } 118 }
167 119
168 /// <summary> 120 /// <summary>
@@ -173,8 +125,8 @@ namespace WixToolset.Data.WindowsInstaller.Rows
173 { 125 {
174 get 126 get
175 { 127 {
176 bool compressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesCompressed)); 128 var compressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesCompressed));
177 bool noncompressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesNoncompressed)); 129 var noncompressedFlag = (0 < (this.Attributes & WindowsInstallerConstants.MsidbFileAttributesNoncompressed));
178 130
179 if (compressedFlag && noncompressedFlag) 131 if (compressedFlag && noncompressedFlag)
180 { 132 {
@@ -225,415 +177,38 @@ namespace WixToolset.Data.WindowsInstaller.Rows
225 /// <value>Sequence of the file row.</value> 177 /// <value>Sequence of the file row.</value>
226 public int Sequence 178 public int Sequence
227 { 179 {
228 get { return (int)this.Fields[7].Data; } 180 get => this.FieldAsInteger(7);
229 set { this.Fields[7].Data = value; } 181 set => this.Fields[7].Data = value;
230 } 182 }
231 183
232 /////// <summary> 184 /// <summary>
233 /////// Gets or sets the type of assembly of file row. 185 /// Gets or sets the disk id for this file.
234 /////// </summary> 186 /// </summary>
235 /////// <value>Assembly type for file row.</value> 187 /// <value>Disk id for the file.</value>
236 ////public FileAssemblyType AssemblyType 188 public int DiskId
237 ////{ 189 {
238 //// get { return this.assemblyType; } 190 get => this.FieldAsInteger(8);
239 //// set { this.assemblyType = value; } 191 set => this.Fields[8].Data = value;
240 ////} 192 }
241
242 /////// <summary>
243 /////// Gets or sets the identifier for the assembly application.
244 /////// </summary>
245 /////// <value>Identifier for the assembly application.</value>
246 ////public string AssemblyApplication
247 ////{
248 //// get { return this.assemblyApplication; }
249 //// set { this.assemblyApplication = value; }
250 ////}
251
252 /////// <summary>
253 /////// Gets or sets the identifier for the assembly manifest.
254 /////// </summary>
255 /////// <value>Identifier for the assembly manifest.</value>
256 ////public string AssemblyManifest
257 ////{
258 //// get { return this.assemblyManifest; }
259 //// set { this.assemblyManifest = value; }
260 ////}
261
262 /////// <summary>
263 /////// Gets or sets the directory of the file.
264 /////// </summary>
265 /////// <value>Directory of the file.</value>
266 ////public string Directory
267 ////{
268 //// get { return this.directory; }
269 //// set { this.directory = value; }
270 ////}
271
272 /////// <summary>
273 /////// Gets or sets the disk id for this file.
274 /////// </summary>
275 /////// <value>Disk id for the file.</value>
276 ////public int DiskId
277 ////{
278 //// get { return this.diskId; }
279 //// set { this.diskId = value; }
280 ////}
281
282 /////// <summary>
283 /////// Gets or sets the source location to the file.
284 /////// </summary>
285 /////// <value>Source location to the file.</value>
286 ////public string Source
287 ////{
288 //// get { return this.source; }
289 //// set { this.source = value; }
290 ////}
291
292 /////// <summary>
293 /////// Gets or sets the source location to the previous file.
294 /////// </summary>
295 /////// <value>Source location to the previous file.</value>
296 ////public string PreviousSource
297 ////{
298 //// get { return this.previousSource[0]; }
299 //// set { this.previousSource[0] = value; }
300 ////}
301
302 /////// <summary>
303 /////// Gets the source location to the previous files.
304 /////// </summary>
305 /////// <value>Source location to the previous files.</value>
306 ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
307 ////public string[] PreviousSourceArray
308 ////{
309 //// get { return this.previousSource; }
310 ////}
311
312 /////// <summary>
313 /////// Gets or sets the architecture the file executes on.
314 /////// </summary>
315 /////// <value>Architecture the file executes on.</value>
316 ////public string ProcessorArchitecture
317 ////{
318 //// get { return this.processorArchitecture; }
319 //// set { this.processorArchitecture = value; }
320 ////}
321
322 /////// <summary>
323 /////// Gets of sets the patch group of a patch-added file.
324 /////// </summary>
325 /////// <value>The patch group of a patch-added file.</value>
326 ////public int PatchGroup
327 ////{
328 //// get { return this.patchGroup; }
329 //// set { this.patchGroup = value; }
330 ////}
331
332 /////// <summary>
333 /////// Gets or sets the patch header of the file.
334 /////// </summary>
335 /////// <value>Patch header of the file.</value>
336 ////public string Patch
337 ////{
338 //// get { return this.patch; }
339 //// set { this.patch = value; }
340 ////}
341
342 /////// <summary>
343 /////// Gets or sets the locations to find the file's symbols.
344 /////// </summary>
345 /////// <value>Symbol paths for the file.</value>
346 ////public string Symbols
347 ////{
348 //// get { return this.symbols; }
349 //// set { this.symbols = value; }
350 ////}
351
352 /////// <summary>
353 /////// Gets or sets the locations to find the file's previous symbols.
354 /////// </summary>
355 /////// <value>Symbol paths for the previous file.</value>
356 ////public string PreviousSymbols
357 ////{
358 //// get { return this.previousSymbols[0]; }
359 //// set { this.previousSymbols[0] = value; }
360 ////}
361
362 /////// <summary>
363 /////// Gets the locations to find the files' previous symbols.
364 /////// </summary>
365 /////// <value>Symbol paths for the previous files.</value>
366 ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
367 ////public string[] PreviousSymbolsArray
368 ////{
369 //// get { return this.previousSymbols; }
370 ////}
371
372 /////// <summary>
373 /////// Gets or sets the generated short file name attribute.
374 /////// </summary>
375 /////// <value>The generated short file name attribute.</value>
376 ////public bool IsGeneratedShortFileName
377 ////{
378 //// get { return this.isGeneratedShortFileName; }
379
380 //// set { this.isGeneratedShortFileName = value; }
381 ////}
382
383 /////// <summary>
384 /////// Gets or sets whether this row came from a merge module.
385 /////// </summary>
386 /////// <value>Whether this row came from a merge module.</value>
387 ////public bool FromModule
388 ////{
389 //// get { return this.fromModule; }
390 //// set { this.fromModule = value; }
391 ////}
392
393 /////// <summary>
394 /////// Gets or sets the MsiFileHash row created for this FileRow.
395 /////// </summary>
396 /////// <value>Row for MsiFileHash table.</value>
397 ////public Row HashRow
398 ////{
399 //// get { return this.hashRow; }
400 //// set { this.hashRow = value; }
401 ////}
402
403 /////// <summary>
404 /////// Gets or sets the set of MsiAssemblyName rows created for this FileRow.
405 /////// </summary>
406 /////// <value>RowCollection of MsiAssemblyName table.</value>
407 ////[SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
408 ////public List<Row> AssemblyNameRows
409 ////{
410 //// get { return this.assemblyNameRows; }
411 //// set { this.assemblyNameRows = value; }
412 ////}
413
414 /////// <summary>
415 /////// Gets or sets the patching attributes to the file.
416 /////// </summary>
417 /////// <value>Patching attributes of the file.</value>
418 ////public PatchAttributeType PatchAttributes
419 ////{
420 //// get { return this.patchAttributes; }
421 //// set { this.patchAttributes = value; }
422 ////}
423
424 /////// <summary>
425 /////// Gets or sets the delta patch retain-length list for the file.
426 /////// </summary>
427 /////// <value>RetainLength list for the file.</value>
428 ////public string RetainLengths
429 ////{
430 //// get { return this.retainLengths; }
431 //// set { this.retainLengths = value; }
432 ////}
433
434 /////// <summary>
435 /////// Gets or sets the delta patch ignore-offset list for the file.
436 /////// </summary>
437 /////// <value>IgnoreOffset list for the file.</value>
438 ////public string IgnoreOffsets
439 ////{
440 //// get { return this.ignoreOffsets; }
441 //// set { this.ignoreOffsets = value; }
442 ////}
443
444 /////// <summary>
445 /////// Gets or sets the delta patch ignore-length list for the file.
446 /////// </summary>
447 /////// <value>IgnoreLength list for the file.</value>
448 ////public string IgnoreLengths
449 ////{
450 //// get { return this.ignoreLengths; }
451 //// set { this.ignoreLengths = value; }
452 ////}
453
454 /////// <summary>
455 /////// Gets or sets the delta patch retain-offset list for the file.
456 /////// </summary>
457 /////// <value>RetainOffset list for the file.</value>
458 ////public string RetainOffsets
459 ////{
460 //// get { return this.retainOffsets; }
461 //// set { this.retainOffsets = value; }
462 ////}
463
464 /////// <summary>
465 /////// Gets or sets the delta patch retain-length list for the previous file.
466 /////// </summary>
467 /////// <value>RetainLength list for the previous file.</value>
468 ////public string PreviousRetainLengths
469 ////{
470 //// get { return this.previousRetainLengths[0]; }
471 //// set { this.previousRetainLengths[0] = value; }
472 ////}
473
474 /////// <summary>
475 /////// Gets the delta patch retain-length list for the previous files.
476 /////// </summary>
477 /////// <value>RetainLength list for the previous files.</value>
478 ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
479 ////public string[] PreviousRetainLengthsArray
480 ////{
481 //// get { return this.previousRetainLengths; }
482 ////}
483
484 /////// <summary>
485 /////// Gets or sets the delta patch ignore-offset list for the previous file.
486 /////// </summary>
487 /////// <value>IgnoreOffset list for the previous file.</value>
488 ////public string PreviousIgnoreOffsets
489 ////{
490 //// get { return this.previousIgnoreOffsets[0]; }
491 //// set { this.previousIgnoreOffsets[0] = value; }
492 ////}
493
494 /////// <summary>
495 /////// Gets the delta patch ignore-offset list for the previous files.
496 /////// </summary>
497 /////// <value>IgnoreOffset list for the previous files.</value>
498 ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
499 ////public string[] PreviousIgnoreOffsetsArray
500 ////{
501 //// get { return this.previousIgnoreOffsets; }
502 ////}
503
504 /////// <summary>
505 /////// Gets or sets the delta patch ignore-length list for the previous file.
506 /////// </summary>
507 /////// <value>IgnoreLength list for the previous file.</value>
508 ////public string PreviousIgnoreLengths
509 ////{
510 //// get { return this.previousIgnoreLengths[0]; }
511 //// set { this.previousIgnoreLengths[0] = value; }
512 ////}
513
514 /////// <summary>
515 /////// Gets the delta patch ignore-length list for the previous files.
516 /////// </summary>
517 /////// <value>IgnoreLength list for the previous files.</value>
518 ////[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
519 ////public string[] PreviousIgnoreLengthsArray
520 ////{
521 //// get { return this.previousIgnoreLengths; }
522 ////}
523
524 /////// <summary>
525 /////// Gets or sets the delta patch retain-offset list for the previous file.
526 /////// </summary>
527 /////// <value>RetainOffset list for the previous file.</value>
528 ////public string PreviousRetainOffsets
529 ////{
530 //// get { return this.previousRetainOffsets[0]; }
531 //// set { this.previousRetainOffsets[0] = value; }
532 ////}
533
534 /////// <summary>
535 /////// Gets the delta patch retain-offset list for the previous files.
536 /////// </summary>
537 /////// <value>RetainOffset list for the previous files.</value>
538 ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
539 ////public string[] PreviousRetainOffsetsArray
540 ////{
541 //// get { return this.previousRetainOffsets; }
542 ////}
543
544 /////// <summary>
545 /////// Compares the current FileRow with another object of the same type.
546 /////// </summary>
547 /////// <param name="obj">An object to compare with this instance.</param>
548 /////// <returns>An integer that indicates the relative order of the comparands.</returns>
549 ////[SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String)")]
550 ////[SuppressMessage("Microsoft.Globalization", "CA1309:UseOrdinalStringComparison")]
551 ////public int CompareTo(object obj)
552 ////{
553 //// if (this == obj)
554 //// {
555 //// return 0;
556 //// }
557
558 //// FileRow fileRow = obj as FileRow;
559 //// if (null == fileRow)
560 //// {
561 //// throw new ArgumentException(WixDataStrings.EXP_OtherObjectIsNotFileRow);
562 //// }
563
564 //// int compared = this.DiskId - fileRow.DiskId;
565 //// if (0 == compared)
566 //// {
567 //// compared = this.patchGroup - fileRow.patchGroup;
568
569 //// if (0 == compared)
570 //// {
571 //// compared = String.Compare(this.File, fileRow.File, StringComparison.InvariantCulture);
572 //// }
573 //// }
574
575 //// return compared;
576 ////}
577
578 /////// <summary>
579 /////// Copies data from another FileRow object.
580 /////// </summary>
581 /////// <param name="src">An row to get data from.</param>
582 ////public void CopyFrom(FileRow src)
583 ////{
584 //// for (int i = 0; i < src.Fields.Length; i++)
585 //// {
586 //// this[i] = src[i];
587 //// }
588 //// this.assemblyManifest = src.assemblyManifest;
589 //// this.assemblyType = src.assemblyType;
590 //// this.directory = src.directory;
591 //// this.diskId = src.diskId;
592 //// this.fromModule = src.fromModule;
593 //// this.isGeneratedShortFileName = src.isGeneratedShortFileName;
594 //// this.patchGroup = src.patchGroup;
595 //// this.processorArchitecture = src.processorArchitecture;
596 //// this.source = src.source;
597 //// this.PreviousSource = src.PreviousSource;
598 //// this.Operation = src.Operation;
599 //// this.symbols = src.symbols;
600 //// this.PreviousSymbols = src.PreviousSymbols;
601 //// this.patchAttributes = src.patchAttributes;
602 //// this.retainOffsets = src.retainOffsets;
603 //// this.retainLengths = src.retainLengths;
604 //// this.ignoreOffsets = src.ignoreOffsets;
605 //// this.ignoreLengths = src.ignoreLengths;
606 //// this.PreviousRetainOffsets = src.PreviousRetainOffsets;
607 //// this.PreviousRetainLengths = src.PreviousRetainLengths;
608 //// this.PreviousIgnoreOffsets = src.PreviousIgnoreOffsets;
609 //// this.PreviousIgnoreLengths = src.PreviousIgnoreLengths;
610 ////}
611 193
612 /////// <summary> 194 /// <summary>
613 /////// Appends previous data from another FileRow object. 195 /// Gets or sets the source location to the file.
614 /////// </summary> 196 /// </summary>
615 /////// <param name="src">An row to get data from.</param> 197 /// <value>Source location to the file.</value>
616 ////public void AppendPreviousDataFrom(FileRow src) 198 public string Source
617 ////{ 199 {
618 //// AppendStringToArray(ref this.previousSource, src.previousSource[0]); 200 get => this.FieldAsString(9);
619 //// AppendStringToArray(ref this.previousSymbols, src.previousSymbols[0]); 201 set => this.Fields[9].Data = value;
620 //// AppendStringToArray(ref this.previousRetainOffsets, src.previousRetainOffsets[0]); 202 }
621 //// AppendStringToArray(ref this.previousRetainLengths, src.previousRetainLengths[0]);
622 //// AppendStringToArray(ref this.previousIgnoreOffsets, src.previousIgnoreOffsets[0]);
623 //// AppendStringToArray(ref this.previousIgnoreLengths, src.previousIgnoreLengths[0]);
624 ////}
625 203
626 /////// <summary> 204 /// <summary>
627 /////// Helper method for AppendPreviousDataFrom. 205 /// Gets or sets the source location to the previous file.
628 /////// </summary> 206 /// </summary>
629 /////// <param name="source">Destination array.</param> 207 /// <value>Source location to the previous file.</value>
630 /////// <param name="destination">Source string.</param> 208 public string PreviousSource
631 ////private static void AppendStringToArray(ref string[] destination, string source) 209 {
632 ////{ 210 get => this.Fields[9].PreviousData;
633 //// string[] result = new string[destination.Length + 1]; 211 set => this.Fields[9].PreviousData = value;
634 //// destination.CopyTo(result, 0); 212 }
635 //// result[destination.Length] = source;
636 //// destination = result;
637 ////}
638 } 213 }
639} 214}