-
Notifications
You must be signed in to change notification settings - Fork 0
/
Utilities.net.xml
1107 lines (1107 loc) · 78.5 KB
/
Utilities.net.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0"?>
<doc>
<assembly>
<name>Utilities.net</name>
</assembly>
<members>
<member name="T:TeamControlium.Utilities.Detokeniser">
<summary>
Processes given strings to process and resolve all tokens in passed strings.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Detokeniser.EscapeChar">
<summary>
Character to use as an escape char.
</summary>
<remarks>Defined as a string in-case it itself has to be escaped in the Regular Expression pattern</remarks>
</member>
<member name="F:TeamControlium.Utilities.Detokeniser.StartTokenChar">
<summary>
Character defining the start of a Token to be processed.
</summary>
<remarks>Must NOT be the same as the escape character.
Is a string in-case it needs to be escaped for Regular Expression pattern.</remarks>
</member>
<member name="F:TeamControlium.Utilities.Detokeniser.EndTokenChar">
<summary>
Character defining the end of a Token to be processed.
</summary>
<remarks>Must NOT be the same as the escape character or the start token character.
Is a string in-case it needs to be escaped for Regular Expression pattern.</remarks>
</member>
<member name="F:TeamControlium.Utilities.Detokeniser.StartTokenPattern">
<summary>
Regular Expression pattern defining the start of a Token to be processed.
</summary>
<remarks>Should contain a negative look-behind to enable escaping.</remarks>
</member>
<member name="F:TeamControlium.Utilities.Detokeniser.EndTokenPattern">
<summary>
Regular Expression pattern defining the end of a Token to be processed.
</summary>
<remarks>Should contain a negative look-behind to enable escaping.</remarks>
</member>
<member name="F:TeamControlium.Utilities.Detokeniser.DefaultCommonDelimiter">
<summary>
Default token delimiter. Delimiter is used to partition token verb and body and is the default for field partitions within a token body.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Detokeniser.threadDelimiters">
<summary>
Collection of delimiters split by thread. Allows different threads to use different delimiters if required.
</summary>
</member>
<member name="P:TeamControlium.Utilities.Detokeniser.CustomTokenProcessor">
<summary>
Gets or sets delegate for processing custom tokens if required. If set, delegate is called before internal token processing to allow overriding if required.
</summary>
<remarks> Assigned delegate must take char (delimiter being used) and the token (split into an array using delimiter as separator) and return the resolved token text.
If the token cannot be resolved, delegate should return a null. Any exception should be allowed to ripple up to enable the Utilities Detokeniser to handle
the error.</remarks>
</member>
<member name="P:TeamControlium.Utilities.Detokeniser.DefaultTokenDelimiterCurrentThread">
<summary>
Gets or sets the default delimiter within tokens.
</summary>
<remarks>This is used as the delimiter when separating token verb from body and is the default token when token verb processors split their required fields.
Is thread-safe; if a Thread changes the token delimiter the change only affects Detokeniser calls for that thread.</remarks>
</member>
<member name="P:TeamControlium.Utilities.Detokeniser.RandomGenerator">
<summary>
Gets initialized instance of the .NET Random generator. Used when resolving {random tokens.
</summary>
</member>
<member name="M:TeamControlium.Utilities.Detokeniser.Detokenize(System.String)">
<summary>
Process passed string and return after resolving all tokens.
</summary>
<param name="tokenisedString">String possibly containing tokens.</param>
<returns>Passed string with all valid tokens resolved.</returns>
</member>
<member name="M:TeamControlium.Utilities.Detokeniser.ProcessToken(System.String)">
<summary>
Processes parses and processes passed in token and returns the resolution result. Token must be trimmed of its start/end indicators.
</summary>
<param name="token">Token to be processed</param>
<returns>Result of processing passed in token.</returns>
<remarks>A token must at least contain a single element, the verb. This tells the processor what processing is required to resolve the token. The total number
of elements in the token depends on the verb. As an example the random token requires three fields (examples assume delimiter is a ;): verb;type;format or length. IE. "random;digits;5" returns
5 random digits. <code>"random;date(01-01-1980,31-12-1980);dd MMM yy"</code> returns a random 1980 date such as 09 JUN 80.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Detokeniser.DoRandomToken(System.String)">
<summary>
Process a 'random' token and return result
</summary>
<param name="tokenBody">Body part of token. Format depends on type of random being executed.</param>
<returns>Token resolution result</returns>
</member>
<member name="M:TeamControlium.Utilities.Detokeniser.DoDateToken(System.String)">
<summary>
Process a 'date' token and return result.
</summary>
<param name="tokenBody">Consists of date offset process and required output format.</param>
<returns>Required date in specified format.</returns>
</member>
<member name="M:TeamControlium.Utilities.Detokeniser.DoFinancialYearToken(System.String,System.Boolean)">
<summary>
Returns formatted start or end date of financial year date passed in is within.
</summary>
<param name="tokenBody">Date within required financial year and required return format.</param>
<param name="startOfFinancialYear">True - returns date start of financial year, False - returns date end of financial year.</param>
<returns>Start or end date of financial year date is within.</returns>
</member>
<member name="M:TeamControlium.Utilities.Detokeniser.DoRandomFloat(System.String)">
<summary>
Returns random floating point number on or between the minimum and maximum limits
</summary>
<param name="limits">Maximum and minimum limits of random selection.</param>
<returns>Random floating point number</returns>
</member>
<member name="M:TeamControlium.Utilities.Detokeniser.DoRandomFloat(System.Single,System.Single)">
<summary>
Returns random floating point number on or between the minimum and maximum limits
</summary>
<param name="minFloat">Minimum limit</param>
<param name="maxFloat">Maximum limit</param>
<returns>Random floating point number</returns>
</member>
<member name="M:TeamControlium.Utilities.Detokeniser.DoRandomDate(System.String)">
<summary>
Returns random date on or between the minimum and maximum limits
</summary>
<param name="maxAndMinDates">String containing minimum and maximum dates in required format</param>
<returns>Random dates between the two given dates, inclusive.</returns>
</member>
<member name="M:TeamControlium.Utilities.Detokeniser.DoRandomDate(System.DateTime,System.DateTime)">
<summary>
Returns random date on or between the minimum and maximum limits
</summary>
<param name="minDate">Minimum date of random selection</param>
<param name="maxDate">Maximum date of random selection</param>
<returns>Random dates between the two given dates, inclusive.</returns>
</member>
<member name="M:TeamControlium.Utilities.Detokeniser.DoRandomTFN">
<summary>
Returns a valid random Australian TFN
</summary>
<returns>Random valid TFN</returns>
</member>
<member name="T:TeamControlium.Utilities.Detokeniser.InnermostToken">
<summary>
Represents result of a Token search for a given string
</summary>
</member>
<member name="F:TeamControlium.Utilities.Detokeniser.InnermostToken.tokenPreamble">
<summary>
Holds all characters preceding any found token in given string. Holds ALL characters from given string if no token found.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Detokeniser.InnermostToken.tokenPostamble">
<summary>
Holds all characters following found token in given string.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Detokeniser.InnermostToken.token">
<summary>
Innermost token found in given string
</summary>
</member>
<member name="F:TeamControlium.Utilities.Detokeniser.InnermostToken.foundToken">
<summary>
Indicates if a token was found or not
</summary>
</member>
<member name="M:TeamControlium.Utilities.Detokeniser.InnermostToken.#ctor(System.String)">
<summary>
Initialises a new instance of the <see cref="T:TeamControlium.Utilities.Detokeniser.InnermostToken" /> class.
Takes a string that may or may not contain token/s. If string contains token/s, innermost (from left) token is identified
</summary>
<param name="inputString">String to be processed</param>
</member>
<member name="P:TeamControlium.Utilities.Detokeniser.InnermostToken.Preamble">
<summary>
Gets all characters preceding any found token in given string. Returns ALL characters from given string if no token found.
</summary>
</member>
<member name="P:TeamControlium.Utilities.Detokeniser.InnermostToken.Postamble">
<summary>
Gets all characters following found token in given string.
</summary>
</member>
<member name="P:TeamControlium.Utilities.Detokeniser.InnermostToken.Token">
<summary>
Gets Innermost token found in given string
</summary>
</member>
<member name="P:TeamControlium.Utilities.Detokeniser.InnermostToken.HasToken">
<summary>
Gets a value indicating whether a token was found
</summary>
</member>
<member name="T:TeamControlium.Utilities.Log">
<summary>
Manages logging information. Created from scratch rather than using an OffTheShelf (NLog, Log4Net etc) to keep footprint as small as possible while ensuring
logging is formatted, along with functionality, exactly as we want.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Log.testTimer">
<summary>
Used to keep track of time since first call to Logger class made.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Log.testToolStrings">
<summary>
Different threads will be sending logging information to Log. So, when building a Log string (IE. Calls to .DoWrite to build a Log
string) the string relating to the correct thread is appended to.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Log.errorWrittenToEventLog">
<summary>
Indicates whether an error has been written to the event log. Allows suppressing of further errors to prevent log blow-out.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Log.lockWriteLine">
<summary>
Used for locking during a DoWriteLine. To ensure thread safety, only a single thread at a time is
permitted to call DoWriteLine at any one time.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Log.lockWrite">
<summary>
Used for locking during a DoWriteLine. To ensure thread safety, only a single thread at a time is
permitted to call DoWrite at any one time.
</summary>
</member>
<member name="M:TeamControlium.Utilities.Log.#cctor">
<summary>
Initialises static members of the <see cref="T:TeamControlium.Utilities.Log" /> class.
Instantiates an instant of the Log static class. Starts the main Stopwatch running for timing information in log data.
</summary>
</member>
<member name="T:TeamControlium.Utilities.Log.LogLevels">
<summary>
Levels of logging - Verbose (Maximum) to Exception (Minimum). If level of text being written to
logging is equal to, or higher than the current LoggingLevel the text is written.<br/>
This is used to filter logging so that only entries to log are made if the level of the write is equal
or greater than the logging level set by <see cref="P:TeamControlium.Utilities.Log.CurrentLoggingLevel">LoggingLevel</see>.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Log.LogLevels.FrameworkDebug">
<summary>
Data written to log if LoggingLevel is FrameworkDebug and WriteLogException is FrameworkDebug or higher
</summary>
</member>
<member name="F:TeamControlium.Utilities.Log.LogLevels.FrameworkInformation">
<summary>
Data written to log if LoggingLevel is FrameworkInformation and WriteLogException is FrameworkInformation or higher
</summary>
</member>
<member name="F:TeamControlium.Utilities.Log.LogLevels.TestDebug">
<summary>
Data written to log if LoggingLevel is TestDebug and WriteLogException is TestDebug or higher
</summary>
</member>
<member name="F:TeamControlium.Utilities.Log.LogLevels.TestInformation">
<summary>
Data written to log if LoggingLevel is TestInformation and WriteLogException is TestInformation or Error
</summary>
</member>
<member name="F:TeamControlium.Utilities.Log.LogLevels.Error">
<summary>
Data always written to results
</summary>
</member>
<member name="P:TeamControlium.Utilities.Log.CurrentLoggingLevel">
<summary>
Gets or sets Logging level. Lowest is Error (least amount of log data written - only writes at
level <see cref="F:TeamControlium.Utilities.Log.LogLevels.Error">Error</see> are written to the log). Most data is written to
the log if level set is <see cref="F:TeamControlium.Utilities.Log.LogLevels.FrameworkDebug">FrameworkDebug</see>.
</summary>
<remarks>Default is FrameworkDebug</remarks>
</member>
<member name="P:TeamControlium.Utilities.Log.WriteToConsole">
<summary>
Gets or sets a value indicating whether log data is written to Console.<br/>
If true debug data is written to the Console (STDOUT)<br/>
If false and <see cref="P:TeamControlium.Utilities.Log.TestToolLog"/> has been defined, no log data is written to Console. If <see cref="P:TeamControlium.Utilities.Log.TestToolLog"/> has
NOT been defined, WriteToConsole false is ignored and output is STILL written to Console.<br/>
</summary>
<remarks>
The default is true (log data to be written to the console)
</remarks>
</member>
<member name="P:TeamControlium.Utilities.Log.TestToolLog">
<summary>
Gets or sets delegate to write debug data to if WriteToConsole is false.
</summary>
<remarks>
Note. If the delegate throws an exception, allow the exception to ripple up. Log class will handle the exception and write details to
the OS event logging system.
</remarks>
<seealso cref="P:TeamControlium.Utilities.Log.WriteToConsole"/>
</member>
<member name="M:TeamControlium.Utilities.Log.ResetTimer">
<summary>
Resets the logger elapsed timer to zero
</summary>
</member>
<member name="M:TeamControlium.Utilities.Log.WriteLogException(System.Exception)">
<summary>
Writes details of a caught exception to the active debug log at level <see cref="F:TeamControlium.Utilities.Log.LogLevels.Error">Error</see>
</summary>
<remarks>
If current error logging level is <see cref="F:TeamControlium.Utilities.Log.LogLevels.FrameworkDebug">FrameworkDebug</see> the full
exception is written, including stack-trace etc.<br/>
With any other <see cref="T:TeamControlium.Utilities.Log.LogLevels">Log Level</see> only the exception message is written if an exception is thrown during write, Logger
attempts to write the error details if able.
</remarks>
<param name="ex">Exception being logged</param>
<example>
<code language="cs">
catch (InvalidHostURI ex)
{
// Log exception and abort the test - we cant talk to the remote Selenium server
Logger.WriteLogException(ex,"Connecting to Selenium host");
toolWrapper.AbortTest("Cannot connect to remote Selenium host");
}
</code>
</example>
</member>
<member name="M:TeamControlium.Utilities.Log.WriteLogException(System.Exception,System.String,System.Object[])">
<summary>
Writes details of a caught exception to the active debug log at level <see cref="F:TeamControlium.Utilities.Log.LogLevels.Error">Error</see>
</summary>
<remarks>
If current error logging level is <see cref="F:TeamControlium.Utilities.Log.LogLevels.FrameworkDebug">FrameworkDebug</see> the full
exception is written, including stack trace details etc.<br/>
With any other <see cref="T:TeamControlium.Utilities.Log.LogLevels">Log Level</see> only the exception message is written if an exception is thrown during write, Logger
attempts to write the error details if able.
</remarks>
<param name="ex">Exception being logged</param>
<param name="text">Additional string format text to show when logging exception</param>
<param name="args">Arguments shown in string format text</param>
<example>
<code lang="C#">
catch (InvalidHostURI ex)
{
// Log exception and abort the test - we cant talk to the remote Selenium server
Logger.WriteLogException(ex,"Given up trying to connect to [{0}]",Wherever);
toolWrapper.AbortTest("Cannot connect to remote Selenium host");
}
</code>
</example>
</member>
<member name="M:TeamControlium.Utilities.Log.WriteLog(TeamControlium.Utilities.Log.LogLevels,System.String,System.Object[])">
<summary>
Writes a line of data to the active debug log with no line termination
</summary>
<param name="logLevel">Level of text being written (See <see cref="T:TeamControlium.Utilities.Log.LogLevels"/> for usage of the Log Level)</param>
<param name="textString">Text to be written</param>
<param name="args">String formatting arguments (if any)</param>
<example>WriteLog a line of data from our test:
<code lang="C#">
Logger.WriteLn(LogLevels.TestDebug, "Select member using key (Member: {0})","90986754332");
</code>code></example>
</member>
<member name="M:TeamControlium.Utilities.Log.WriteLogLine(TeamControlium.Utilities.Log.LogLevels,System.String,System.Object[])">
<summary>
Writes a line of data to the active debug log.
Data can be formatted in the standard string.format syntax. If an exception is thrown during write, Logger
attempts to write the error details if able.
</summary>
<param name="logLevel">Level of text being written (See <see cref="T:TeamControlium.Utilities.Log.LogLevels"/> for usage of the Log Level)</param>
<param name="textString">Text to be written</param>
<param name="args">String formatting arguments (if any)</param>
<example>WriteLogException a line of data from our test:
<code lang="C#">
Logger.WriteLogLine(LogLevels.TestDebug, "Select member using key (Member: {0})","90986754332");
</code></example>
<remarks>If arguments are passed in but there is an error formatting the text line during resolution of the arguments they will be ignored and the text line written out without arguments.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Log.WriteTextToFile(System.String,System.Boolean,System.String)">
<summary>
Writes given Text to a text file, optionally auto versioning (adding (n) to filename) OR
overwriting.
</summary>
<remarks>
No exception is raised if there is any problem, but details of error is written to Logger log
</remarks>
<param name="fileName">Full path and filename to use</param>
<param name="autoVersion">If true and file exists. (n) is added to auto-version. If false and file exists, it is overwritten if able</param>
<param name="text">Text to write</param>
</member>
<member name="M:TeamControlium.Utilities.Log.WriteLogException(System.Diagnostics.StackFrame,System.Exception,System.String,System.Object[])">
<summary>
Does writing of the logged exception
</summary>
<param name="stackFrame">Stack frame passed in by caller. Used to get method base details</param>
<param name="ex">Exception being reported</param>
<param name="text">Optional text</param>
<param name="args">Optional text arguments</param>
</member>
<member name="M:TeamControlium.Utilities.Log.CallingMethodDetails(System.Reflection.MethodBase)">
<summary>
Gets class-type and Method name of passed MethodBase class.
</summary>
<param name="methodBase">MethodBase of class</param>
<returns>Formatted string containing Type.Method</returns>
</member>
<member name="M:TeamControlium.Utilities.Log.DoWrite(System.Reflection.MethodBase,TeamControlium.Utilities.Log.LogLevels,System.String)">
<summary>
Appends text to currently active line. If the start of line, text is pre-pended with Line header information
</summary>
<param name="methodBase">MethodBase of class calling Logger class</param>
<param name="typeOfWrite">Level of debug text to be written</param>
<param name="textString">Text string to be written</param>
<remarks>Text is written if TypeOfWrite is equal to, or higher the current Logging Level</remarks>
</member>
<member name="M:TeamControlium.Utilities.Log.DoWriteLine(System.Reflection.MethodBase,TeamControlium.Utilities.Log.LogLevels,System.String)">
<summary>
Appends text to currently active line and writes line to active log. If new line, text is pre-pended with Line header information
</summary>
<param name="methodBase">MethodBase of class calling Logger class</param>
<param name="typeOfWrite">Level of debug text to be written</param>
<param name="textString">Text string to be written</param>
<remarks>Text is written if TypeOfWrite is equal to, or higher the current Logging Level</remarks>
</member>
<member name="M:TeamControlium.Utilities.Log.GetPreAmble(System.Reflection.MethodBase,TeamControlium.Utilities.Log.LogLevels)">
<summary>
Constructs and returns a log-file pre-amble. Preamble is {Log Type} - [{Time}][{Elapsed}] [Calling Type.Method]:
</summary>
<param name="methodBase">Reference to calling method</param>
<param name="typeOfWrite">Type of write</param>
<example>
GetPreAmple(methodBase, LogLevel.TestDebug) returns "TSDBG - [15:34:45][00012.33] [MyTestClass.MyMethod]:"
</example>
<returns>Line pre-amble text</returns>
</member>
<member name="M:TeamControlium.Utilities.Log.GetWriteTypeString(TeamControlium.Utilities.Log.LogLevels)">
<summary>
Returns debug line initial token based on LogLevel of text being written
</summary>
<param name="typeOfWrite">Log Level to obtain text for</param>
<returns>Textual representation for Debug log line pre-amble</returns>
</member>
<member name="T:TeamControlium.Utilities.Repository">
<summary>
Central Test Data repository for tool independent storage of data used within tests. TeamControlium repository is intended to be used as the primary mechanism for storage of
data within a Test Framework and is used for configuration settings of the Controlium based library. It is a thread-safe static repository with dynamic objects that can be
scoped for global (all threads) or local (local thread only visibility) use but with the ability to clone data from Global to Local if/as required.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Repository.repository">
<summary>
Actual storage of data. Three dimensional dictionary.
Dimension 1 is the ThreadID storing data for the identified specific thread.
Dimension 2 is the data categoryName
Dimension 3 is the data item name
Data is stored as dynamic objects enabling storage of anything and runtime changes of item location types as well as varying types in the repository.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Repository.globalIndex">
<summary>
When data is stored in the Global repository (IE. Seen by all threads) the threadID used is -1.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Repository.categorylessItems">
<summary>
Repository allows test code to store data singly or in Categories. If storing a data item without a Category, it actually goes in the categoryName named in this variable.
</summary>
<remarks>There is the chance a test framework could create a categoryName with the same name. However, this a low risk and could always be changed at a later date if needed.</remarks>
</member>
<member name="F:TeamControlium.Utilities.Repository.lastException">
<summary>
Stores the last exception/s caught when using Try... methods. Is in a dictionary to enable thread-safe and thread oriented exception storage. A thread can ONLY see the
last exception thrown for it's specific thread. The ensures maximum flexibility in parallel testing scenarios.
</summary>
</member>
<member name="T:TeamControlium.Utilities.Repository.CloneableTypes">
<summary>
Type to indicate if data item being cloned is cloneable or a value type.
</summary>
</member>
<member name="F:TeamControlium.Utilities.Repository.CloneableTypes.isValueType">
<summary>
Is a value type (such as <code>int</code>, <code>float</code> etc.)
</summary>
</member>
<member name="F:TeamControlium.Utilities.Repository.CloneableTypes.yes">
<summary>
Is a cloneable reference type
</summary>
</member>
<member name="F:TeamControlium.Utilities.Repository.CloneableTypes.no">
<summary>
Is not a cloneable reference type
</summary>
</member>
<member name="P:TeamControlium.Utilities.Repository.ItemLocal">
<summary>
Gets reference to the Dynamic items class allowing indexed access to and setting of all Local stored data items in current thread.
</summary>
<remarks>This is a reference to an indexer class. So can be used as an indexed property. All data stored in the Local repository are visible only to code executing within the current thread.</remarks>
<example>Example stores string 'some data' in the repository, naming it 'MyItem'.
Then recalls Repository item 'MyItem', storing it in myData.<code>
Repository.ItemLocal["MyItem"] = "some data";
string myData = Repository.ItemLocal["MyItem"]; // myData now equal to 'some data'
</code></example>
</member>
<member name="P:TeamControlium.Utilities.Repository.ItemGlobal">
<summary>
Gets reference to the Dynamic items class allowing indexed access to and setting of all Globally stored data items.
</summary>
<remarks>This is a reference to an indexer class. So can be used as an indexed property. All data stored in the Global repository are visible across all threads.</remarks>
<example>Example stores string 'some data' in the repository, naming it 'MyItem'.
Then recalls Repository item 'MyItem', storing it in myData.<code>
Repository.ItemGlobal["MyItem"] = "some data";
string myData = Repository.ItemGlobal["MyItem"]; // myData now equal to 'some data'
</code></example>
</member>
<member name="M:TeamControlium.Utilities.Repository.RepositoryLastTryException">
<summary>
Returns the last exception were a TryGetRunCategoryOptions returned false
</summary>
<returns>Last exception thrown by a Try... method in this thread.</returns>
<remarks>Return is cast as Exception but underlying type can be obtained by called (IE. <code>var myType = Repository.RepositoryLastTryException().GetType();</code></remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.HasCategoryLocal(System.String)">
<summary>
Indicates whether Local repository has a Category with the given name
</summary>
<param name="categoryName">Name of category to check for.</param>
<returns>True if local repository has category named. Otherwise False.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.HasCategoryGlobal(System.String)">
<summary>
Indicates whether Global repository has a Category with the given name
</summary>
<param name="categoryName">Name of category to check for.</param>
<returns>True if global repository has category named. Otherwise False.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetCategoryLocal(System.String)">
<summary>
Returns all items (in dictionary) from required local category
</summary>
<param name="categoryName">Name of category to retrieve items from</param>
<returns>All items from Local repository in named Category.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetCategoryGlobal(System.String)">
<summary>
Returns all items (in dictionary) from required global category
</summary>
<param name="categoryName">Name of category to retrieve items from</param>
<returns>All items from Global repository in named Category.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryGetCategoryLocal(System.String,System.Collections.Generic.Dictionary{System.String,System.Object}@)">
<summary>
Gets all items (in dictionary) from required local category indicating success or failure of retrieval
</summary>
<param name="categoryName">Name of category to retrieve items from</param>
<param name="category">Output parameter populated with all items in named local category if successful. Null reference if not</param>
<returns>True if Category exists and item/s retrieved successfully. False if not.</returns>
<remarks>If method fails and returns False, <see cref="M:TeamControlium.Utilities.Repository.RepositoryLastTryException"/> can be used to obtain exception thrown.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryGetCategoryGlobal(System.String,System.Collections.Generic.Dictionary{System.String,System.Object}@)">
<summary>
Gets all items (in dictionary) from required global category indicating success or failure of retrieval
</summary>
<param name="categoryName">Name of category to retrieve items from</param>
<param name="category">Output parameter populated with all items in named global category if successful. Null reference if not</param>
<returns>True if Category exists and item/s retrieved successfully. False if not.</returns>
<remarks>If method fails and returns False, <see cref="M:TeamControlium.Utilities.Repository.RepositoryLastTryException"/> can be used to obtain exception thrown.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.SetCategoryLocal(System.String,System.Collections.Generic.Dictionary{System.String,System.Object},System.Boolean)">
<summary>
Load named Local repository category with required data.
</summary>
<remarks>If category already exists, merge data optionally overwriting if duplicate keys found.</remarks>
<param name="categoryName">Name of category to add or merge in</param>
<param name="category">Category data to add or merge in</param>
<param name="overwriteExistingItems">If true, any existing data items are overwritten. Otherwise any duplicates will result in an Exception.</param>
</member>
<member name="M:TeamControlium.Utilities.Repository.SetCategoryGlobal(System.String,System.Collections.Generic.Dictionary{System.String,System.Object},System.Boolean)">
<summary>
Load named Global repository category with required data.
</summary>
<remarks>If category already exists, merge data optionally overwriting if duplicate keys found.</remarks>
<param name="categoryName">Name of category to add or merge in</param>
<param name="category">Category data to add or merge in</param>
<param name="overwriteExistingItems">If true, any existing data items are overwritten. Otherwise any duplicates will result in an Exception.</param>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItemLocal(System.String)">
<summary>
Returns non-categorized data item from local repository.
</summary>
<param name="itemName">Name of data item to retrieve</param>
<remarks>If item does not exist or there is a error obtaining item an exception will be thrown</remarks>
<returns>Data item. Type is dynamic so it is callers responsibility to ensure correct typing (Use <see cref="M:TeamControlium.Utilities.Repository.GetItemLocal``1(System.String)"/> for type checked data recall.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItemGlobal(System.String)">
<summary>
Returns non-categorized data item from global repository.
</summary>
<param name="itemName">Name of data item to retrieve</param>
<remarks>If item does not exist or there is a error obtaining item an exception will be thrown</remarks>
<returns>Data item. Type is dynamic so it is callers responsibility to ensure correct typing (Use <see cref="M:TeamControlium.Utilities.Repository.GetItemGlobal``1(System.String)"/> for type checked data recall.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItemLocal(System.String,System.String)">
<summary>
Returns data item from required category in local repository.
</summary>
<param name="categoryName">Name of category data item is in</param>
<param name="itemName">Name of data item to retrieve</param>
<returns>Data item. Type is dynamic so it is callers responsibility to ensure correct typing (Use <see cref="M:TeamControlium.Utilities.Repository.GetItemLocal``1(System.String,System.String)"/> for type checked data recall.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItemGlobal(System.String,System.String)">
<summary>
Returns data item from required category in global repository.
</summary>
<param name="categoryName">Name of category data item is in</param>
<param name="itemName">Name of data item to retrieve</param>
<returns>Data item. Type is dynamic so it is callers responsibility to ensure correct typing (Use <see cref="M:TeamControlium.Utilities.Repository.GetItemGlobal``1(System.String,System.String)"/> for type checked data recall.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItemLocal``1(System.String)">
<summary>
Returns non-categorized data item from local repository with verification of required type
</summary>
<param name="itemName">Name of data item to retrieve</param>
<typeparam name="T">Expected type of required data</typeparam>
<remarks>If item does not exist, there is a error obtaining item or the type is not of the required type an exception will be thrown</remarks>
<returns>Data item. Type will be cast as required.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItemGlobal``1(System.String)">
<summary>
Returns non-categorized data item from global repository with verification of required type
</summary>
<param name="itemName">Name of data item to retrieve</param>
<typeparam name="T">Expected type of required data</typeparam>
<remarks>If item does not exist, there is a error obtaining item or the type is not of the required type an exception will be thrown</remarks>
<returns>Data item. Type will be cast as required.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItemLocal``1(System.String,System.String)">
<summary>
Returns data item from required category in local repository with verification of required type.
</summary>
<param name="categoryName">Name of category data item is in</param>
<param name="itemName">Name of data item to retrieve</param>
<typeparam name="T">Expected type of required data</typeparam>
<remarks>If item does not exist, there is a error obtaining item or the type is not of the required type an exception will be thrown</remarks>
<returns>Data item. Type will be cast as required.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItemGlobal``1(System.String,System.String)">
<summary>
Returns data item from required category in global repository with verification of required type.
</summary>
<param name="categoryName">Name of category data item is in</param>
<param name="itemName">Name of data item to retrieve</param>
<typeparam name="T">Expected type of required data</typeparam>
<remarks>If item does not exist, there is a error obtaining item or the type is not of the required type an exception will be thrown</remarks>
<returns>Data item. Type will be cast as required.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryGetItemLocal(System.String,System.Object@)">
<summary>
Returns non-categorized data item from local repository indicating if successful or not
</summary>
<param name="itemName">Name of data item to retrieve</param>
<param name="item">Item found (if successful) or null. Type is dynamic so it is callers responsibility to ensure correct typing (Use <see cref="M:TeamControlium.Utilities.Repository.TryGetItemLocal``1(System.String,``0@)"/> for type checked data recall.</param>
<returns>True if successful, False if not.</returns>
<remarks>If method fails and returns False, <see cref = "M:TeamControlium.Utilities.Repository.RepositoryLastTryException" /> can be used to obtain exception thrown.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryGetItemGlobal(System.String,System.Object@)">
<summary>
Returns non-categorized data item from global repository indicating if successful or not.
</summary>
<param name="itemName">Name of data item to retrieve</param>
<param name="item">Item found (if successful) or null. Type is dynamic so it is callers responsibility to ensure correct typing (Use <see cref = "M:TeamControlium.Utilities.Repository.TryGetItemGlobal``1(System.String,``0@)"/> for type checked data recall).</param>
<returns>True if successful, False if not.</returns>
<remarks>If method fails and returns False, <see cref = "M:TeamControlium.Utilities.Repository.RepositoryLastTryException" /> can be used to obtain exception thrown.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryGetItemLocal(System.String,System.String,System.Object@)">
<summary>
Returns data item from required category in local repository with verification of required type indicating if successful or not.
</summary>
<param name="categoryName">Name of category data item is in</param>
<param name="itemName">Name of data item to retrieve</param>
<param name="item">Item found (if successful) or null. Type is dynamic so it is callers responsibility to ensure correct typing (Use <see cref="M:TeamControlium.Utilities.Repository.TryGetItemLocal``1(System.String,System.String,``0@)"/> for type checked data recall.</param>
<returns>If method fails and returns False, <see cref = "M:TeamControlium.Utilities.Repository.RepositoryLastTryException" /> can be used to obtain exception thrown.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryGetItemGlobal(System.String,System.String,System.Object@)">
<summary>
Returns data item from required category in global repository with verification of required type indicating if successful or not.
</summary>
<param name="categoryName">Name of category data item is in</param>
<param name="itemName">Name of data item to retrieve</param>
<param name="item">Item found (if successful) or null. Type is dynamic so it is callers responsibility to ensure correct typing (Use <see cref="M:TeamControlium.Utilities.Repository.TryGetItemGlobal``1(System.String,System.String,``0@)"/> for type checked data recall.</param>
<returns>If method fails and returns False, <see cref = "M:TeamControlium.Utilities.Repository.RepositoryLastTryException" /> can be used to obtain exception thrown.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryGetItemLocal``1(System.String,``0@)">
<summary>
Returns non-categorized data item from local repository with verification of required type indicating if successful or not
</summary>
<param name="itemName">Name of data item to retrieve</param>
<param name="item">Item found (if successful) or null. Type checked with expected type to ensure type compatibility.</param>
<typeparam name="T">Expected type of data item</typeparam>
<returns>True if successful, False if not or type differs to expected.</returns>
<remarks>If method fails and returns False, <see cref = "M:TeamControlium.Utilities.Repository.RepositoryLastTryException" /> can be used to obtain exception thrown.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryGetItemGlobal``1(System.String,``0@)">
<summary>
Returns non-categorized data item from global repository with verification of required type indicating if successful or not
</summary>
<param name="itemName">Name of data item to retrieve</param>
<param name="item">Item found (if successful) or null. Type checked with expected type to ensure type compatibility.</param>
<typeparam name="T">Expected type of data item</typeparam>
<returns>True if successful, False if not or type differs to expected.</returns>
<remarks>If method fails and returns False, <see cref = "M:TeamControlium.Utilities.Repository.RepositoryLastTryException" /> can be used to obtain exception thrown.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryGetItemLocal``1(System.String,System.String,``0@)">
<summary>
Returns categorized data item from local repository with verification of required type indicating if successful or not
</summary>
<param name="categoryName">Name of category to retrieve data item from</param>
<param name="itemName">Name of data item to retrieve</param>
<param name="item">Item found (if successful) or null. Type checked with expected type to ensure type compatibility.</param>
<typeparam name="T">Expected type of data item</typeparam>
<returns>True if successful, False if not or type differs to expected.</returns>
<remarks>If method fails and returns False, <see cref = "M:TeamControlium.Utilities.Repository.RepositoryLastTryException" /> can be used to obtain exception thrown.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryGetItemGlobal``1(System.String,System.String,``0@)">
<summary>
Returns categorized data item from global repository with verification of required type indicating if successful or not
</summary>
<param name="categoryName">Name of category to retrieve data item from</param>
<param name="itemName">Name of data item to retrieve</param>
<param name="item">Item found (if successful) or null. Type checked with expected type to ensure type compatibility.</param>
<typeparam name="T">Expected type of data item</typeparam>
<returns>True if successful, False if not or type differs to expected.</returns>
<remarks>If method fails and returns False, <see cref = "M:TeamControlium.Utilities.Repository.RepositoryLastTryException" /> can be used to obtain exception thrown.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItemOrDefaultLocal``1(System.String)">
<summary>
Returns non-categorized data item from local repository with verification of required type or types default value if item does not exist
</summary>
<param name="itemName">Name of data item to retrieve</param>
<typeparam name="T">Expected type of required data</typeparam>
<remarks>If item does not exist, the default value for the Type defied in the call will be returned.</remarks>
<returns>Data item or default value based on Type. Type will be cast as required.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItemOrDefaultGlobal``1(System.String)">
<summary>
Returns non-categorized data item from global repository with verification of required type or types default value if item does not exist
</summary>
<param name="itemName">Name of data item to retrieve</param>
<typeparam name="T">Expected type of required data</typeparam>
<remarks>If item does not exist, the default value for the Type defied in the call will be returned.</remarks>
<returns>Data item or default value based on Type. Type will be cast as required.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItemOrDefaultLocal``1(System.String,System.String)">
<summary>
Returns categorized data item from local repository with verification of required type or types default value if item does not exist
</summary>
<param name="categoryName">Name of Category data item is in</param>
<param name="itemName">Name of data item to retrieve</param>
<typeparam name="T">Expected type of required data</typeparam>
<remarks>If item does not exist, the default value for the Type defied in the call will be returned.</remarks>
<returns>Data item or default value based on Type. Type will be cast as required.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItemOrDefaultGlobal``1(System.String,System.String)">
<summary>
Returns categorized data item from global repository with verification of required type or types default value if item does not exist
</summary>
<param name="categoryName">Name of Category data item is in</param>
<param name="itemName">Name of data item to retrieve</param>
<typeparam name="T">Expected type of required data</typeparam>
<remarks>If item does not exist, the default value for the Type defied in the call will be returned.</remarks>
<returns>Data item or default value based on Type. Type will be cast as required.</returns>
</member>
<member name="M:TeamControlium.Utilities.Repository.SetItemLocal(System.String,System.Object)">
<summary>
Stores data item in local repository with defined non-categorized name
</summary>
<param name="itemName">Label to store data item with</param>
<param name="item">Data item to store</param>
<remarks>If data item already exists it is overwritten with current data</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.SetItemGlobal(System.String,System.Object)">
<summary>
Stores data item in global repository with defined non-categorized name
</summary>
<param name="itemName">Label to store data item with</param>
<param name="item">Data item to store</param>
<remarks>If data item already exists it is overwritten with current data</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.SetItemLocal(System.String,System.String,System.Object)">
<summary>
Stores data item in local repository with defined categorized name
</summary>
<param name="categoryName">Name of category to store data item in</param>
<param name="itemName">Label to store data item with</param>
<param name="item">Data item to store</param>
<remarks>
If category does not exist it is created.
If data item already exists it is overwritten with current data.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.SetItemGlobal(System.String,System.String,System.Object)">
<summary>
Stores data item in global repository with defined categorized name
</summary>
<param name="categoryName">Name of category to store data item in</param>
<param name="itemName">Label to store data item with</param>
<param name="item">Data item to store</param>
<remarks>
If category does not exist it is created.
If data item already exists it is overwritten with current data.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.CloneLocalToGlobal(System.Boolean)">
<summary>
Copy all data from Local to Global repository.
</summary>
<param name="overwriteExistingItems">Indicates if existing data should be overwritten. An exception is thrown if false and any existing item/s would be overwritten.</param>
<remarks>A deep clone is performed to copy items. However, it should be noted that complex data items (EG. IO references etc) may clone incorrectly. Complex type cloning should be verified during test framework development to ensure correct cloning.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.CloneCategoryLocalToGlobal(System.String,System.Boolean)">
<summary>
Copy all data from required Local category to Global repository.
</summary>
<param name="categoryName">Name of category to be copied.</param>
<param name="overwriteExistingItems">Indicates if existing data should be overwritten. An exception is thrown if false and any existing item/s would be overwritten.</param>
<remarks>A deep clone is performed to copy items. However, it should be noted that complex data items (EG. IO references etc) may clone incorrectly. Complex type cloning should be verified during test framework development to ensure correct cloning.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.CloneItemLocalToGlobal(System.String,System.String,System.Boolean)">
<summary>
Copy named data item from required Local category to Global repository.
</summary>
<param name="categoryName">Name of category to be copied.</param>
<param name="itemName">Name of item to clone.</param>
<param name="overwriteExistingItems">Indicates if existing data item should be overwritten if it already exists. An exception is thrown if false and the named data item exists in global repository.</param>
<remarks>A deep clone is performed to copy items. However, it should be noted that complex data items (EG. IO references etc) may clone incorrectly. Complex type cloning should be verified during test framework development to ensure correct cloning.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryCloneLocalToGlobal(System.Boolean)">
<summary>
Copy all data from Local to Global repository indicting if successful or not.
</summary>
<param name="overwriteExistingItems">Indicates if existing data should be overwritten. An exception is thrown if false and any existing item/s would be overwritten.</param>
<returns>True if successful clone or false if not (See <see cref="M:TeamControlium.Utilities.Repository.RepositoryLastTryException"/> for exception thrown if false returned).</returns>
<remarks>A deep clone is performed to copy items. However, it should be noted that complex data items (EG. IO references etc) may clone incorrectly. Complex type cloning should be verified during test framework development to ensure correct cloning.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryCloneCategoryLocalToGlobal(System.String,System.Boolean)">
<summary>
Copy all data from required Local category to Global repository indicting if successful or not.
</summary>
<param name="categoryName">Name of category to be copied.</param>
<param name="overwriteExistingItems">Indicates if existing data should be overwritten. An exception is thrown if false and any existing item/s would be overwritten.</param>
<returns>True if successful clone or false if not (See <see cref="M:TeamControlium.Utilities.Repository.RepositoryLastTryException"/> for exception thrown if false returned).</returns>
<remarks>A deep clone is performed to copy items. However, it should be noted that complex data items (EG. IO references etc) may clone incorrectly. Complex type cloning should be verified during test framework development to ensure correct cloning.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryCloneItemLocalToGlobal(System.String,System.String,System.Boolean)">
<summary>
Copy named data item from required Local category to Global repository indicating if successful
</summary>
<param name="categoryName">Name of category to be copied.</param>
<param name="itemName">Name of item to clone.</param>
<param name="overwriteExistingItems">Indicates if existing data item should be overwritten if it already exists. An exception is thrown if false and the named data item exists in global repository.</param>
<returns>True if successful clone or false if not (See <see cref="M:TeamControlium.Utilities.Repository.RepositoryLastTryException"/> for exception thrown if false returned).</returns>
<remarks>A deep clone is performed to copy items. However, it should be noted that complex data items (EG. IO references etc) may clone incorrectly. Complex type cloning should be verified during test framework development to ensure correct cloning.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.CloneGlobalToLocal(System.Boolean)">
<summary>
Copy all data from Local to Global repository.
</summary>
<param name="overwriteExistingItems">Indicates if existing data should be overwritten. An exception is thrown if false and any existing item/s would be overwritten.</param>
<remarks>A deep clone is performed to copy items. However, it should be noted that complex data items (EG. IO references etc) may clone incorrectly. Complex type cloning should be verified during test framework development to ensure correct cloning.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.CloneCategoryGlobalToLocal(System.String,System.Boolean)">
<summary>
Copy all data from required Local category to Global repository.
</summary>
<param name="categoryName">Name of category to be copied.</param>
<param name="overwriteExistingItems">Indicates if existing data should be overwritten. An exception is thrown if false and any existing item/s would be overwritten.</param>
<remarks>A deep clone is performed to copy items. However, it should be noted that complex data items (EG. IO references etc) may clone incorrectly. Complex type cloning should be verified during test framework development to ensure correct cloning.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.CloneItemGlobalToLocal(System.String,System.String,System.Boolean)">
<summary>
Copy named data item from required Local category to Global repository.
</summary>
<param name="categoryName">Name of category to be copied.</param>
<param name="itemName">Name of item to clone.</param>
<param name="overwriteExistingItems">Indicates if existing data item should be overwritten if it already exists. An exception is thrown if false and the named data item exists in global repository.</param>
<remarks>A deep clone is performed to copy items. However, it should be noted that complex data items (EG. IO references etc) may clone incorrectly. Complex type cloning should be verified during test framework development to ensure correct cloning.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryCloneGlobalToLocal(System.Boolean)">
<summary>
Copy all data from Global to local repository indicting if successful or not.
</summary>
<param name="overwriteExistingItems">Indicates if existing data should be overwritten. An exception is thrown if false and any existing item/s would be overwritten.</param>
<returns>True if successful clone or false if not (See <see cref="M:TeamControlium.Utilities.Repository.RepositoryLastTryException"/> for exception thrown if false returned).</returns>
<remarks>A deep clone is performed to copy items. However, it should be noted that complex data items (EG. IO references etc) may clone incorrectly. Complex type cloning should be verified during test framework development to ensure correct cloning.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryCloneCategoryGlobalToLocal(System.String,System.Boolean)">
<summary>
Copy all data from required Global category to local repository indicting if successful or not.
</summary>
<param name="categoryName">Name of category to be copied.</param>
<param name="overwriteExistingItems">Indicates if existing data should be overwritten. An exception is thrown if false and any existing item/s would be overwritten.</param>
<returns>True if successful clone or false if not (See <see cref="M:TeamControlium.Utilities.Repository.RepositoryLastTryException"/> for exception thrown if false returned).</returns>
<remarks>A deep clone is performed to copy items. However, it should be noted that complex data items (EG. IO references etc) may clone incorrectly. Complex type cloning should be verified during test framework development to ensure correct cloning.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.TryCloneItemGlobalToLocal(System.String,System.String,System.Boolean)">
<summary>
Copy named data item from required Global category to Local repository indicating if successful
</summary>
<param name="categoryName">Name of category to be copied.</param>
<param name="itemName">Name of item to clone.</param>
<param name="overwriteExistingItems">Indicates if existing data item should be overwritten if it already exists. An exception is thrown if false and the named data item exists in global repository.</param>
<returns>True if successful clone or false if not (See <see cref="M:TeamControlium.Utilities.Repository.RepositoryLastTryException"/> for exception thrown if false returned).</returns>
<remarks>A deep clone is performed to copy items. However, it should be noted that complex data items (EG. IO references etc) may clone incorrectly. Complex type cloning should be verified during test framework development to ensure correct cloning.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.ClearRepositoryAll">
<summary>
Clear data from Global and all thread repositories
</summary>
<remarks>Should be used carefully as ALL data from Global and local repositories is removed. Many TeamControlium libraries use Repository data to hold configuration settings and defaults. If used after clearing repository these will not be available and errors may be thrown.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.ClearRepositoryLocal">
<summary>
Clear data from Local repository
</summary>
<remarks>Should be used carefully as ALL data from the local repository is removed. Many TeamControlium libraries use the local thread's repository to hold configuration data. If this is cleared it should be rebuilt if required to ensure errors are not thrown.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.ClearRepositoryGlobal">
<summary>
Clear data from Global repository
</summary>
</member>
<member name="M:TeamControlium.Utilities.Repository.SetLastException``1(``0)">
<summary>
Called to store exception information when a Try... method catches an Exception. Allows actual exception type to be stored
so that reader can determine underlying exception type.
</summary>
<typeparam name="T">Exception derived from Exception class.</typeparam>
<param name="ex">Exception to be stored</param>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetCategory(System.Boolean,System.String)">
<summary>
Retrieves Dictionary, containing all data items for the named category, from the Local or Global repository
</summary>
<param name="isLocal">Indicates if local repository should be used (true) or global (false)</param>
<param name="category">Name of category to obtain</param>
<returns>Dictionary of data items in required repository's named category</returns>
<remarks>Method is NOT thread safe. It is the responsibility of the calling code to ensure thread safety.
If category does not exist or there is another issue retrieving the category an exception will be thrown.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.SetCategory(System.Boolean,System.String,System.Collections.Generic.Dictionary{System.String,System.Object},System.Boolean)">
<summary>
Add/Merge the passed category dictionary to the required local/global repository.
</summary>
<param name="isLocal">Indicates if local repository should be used (true) or global (false)</param>
<param name="name">Name of category being added</param>
<param name="categoryToAdd">Dictionary to add</param>
<param name="overwriteDuplicates">Flag stating if existing data items can be overwritten.</param>
<remarks>If the named category already exists the category being added is merged into the existing. If <paramref name="overwriteDuplicates"/> is false, and the existing repository category already contains an item with the same name an exception is thrown.
Method is NOT thread-safe. It is the responsibility of the calling code to ensure thread safety.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItem(System.Boolean,System.String,System.String)">
<summary>
Get named data item from named category in local or global repository
</summary>
<param name="isLocal">Flag indicates if repository to get item from is local (true) or global (false).</param>
<param name="category">Name of category to obtain item from</param>
<param name="itemKey">Name of item to get</param>
<returns>Data of named item.</returns>
<remarks>If data item does not exist, or there is any other issue when obtaining, an exception is thrown.
Method is NOT thread-safe. It is the responsibility of the calling code to ensure thread safety.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.SetItem(System.Boolean,System.String,System.String,System.Object)">
<summary>
Set named item in named category of local or global repository
</summary>
<param name="isLocal">Flag indicates if repository to get item from is local (true) or global (false).</param>
<param name="category">Name of category to obtain item from</param>
<param name="itemKey">Name of item to get</param>
<param name="value">data to be stored</param>
<remarks>Value to store is a dynamic value and so can store any value or reference data.
If item already exists it is overwritten with new value.
Method is NOT thread-safe. It is the responsibility of the calling code to ensure thread safety.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.GetItemTyped``1(System.Boolean,System.String,System.String)">
<summary>
Get named data item from named category in local or global repository and very item is of required type
</summary>
<param name="isLocal">Flag indicates if repository to get item from is local (true) or global (false).</param>
<param name="category">Name of category to obtain item from</param>
<param name="itemKey">Name of item to get</param>
<typeparam name="U">Expected type of item to obtain.</typeparam>
<returns>Data of named item.</returns>
<remarks>If data item does not exist, type does not match expected type or there is any other issue when obtaining, an exception is thrown.
Method is NOT thread-safe. It is the responsibility of the calling code to ensure thread safety.</remarks>
</member>
<member name="M:TeamControlium.Utilities.Repository.ClearRepository(System.Boolean)">
<summary>
Clears the required repository