public static void KeyValueListMergeTest() { PFKeyValueListEx <int, string> list1 = new PFKeyValueListEx <int, string>(); PFKeyValueListEx <int, string> list2 = new PFKeyValueListEx <int, string>(); PFKeyValueListEx <int, string> list3 = new PFKeyValueListEx <int, string>(); try { _msg.Length = 0; _msg.Append("KeyValueListMergeTest started ...\r\n"); Program._messageLog.WriteLine(_msg.ToString()); list1.Add(new pfKeyValuePair <int, string>(1, "First")); list1.Add(new pfKeyValuePair <int, string>(2, "Second")); list1.Add(new pfKeyValuePair <int, string>(3, "Third")); list2.Add(new pfKeyValuePair <int, string>(4, "fourth")); list2.Add(new pfKeyValuePair <int, string>(5, "fifth")); list2.Add(new pfKeyValuePair <int, string>(6, "sixth")); list3.Add(new pfKeyValuePair <int, string>(7, "Seventh")); list3.Add(new pfKeyValuePair <int, string>(8, "Eighth")); list3.Add(new pfKeyValuePair <int, string>(9, "Ninth")); list3.Add(new pfKeyValuePair <int, string>(10, "Tenth")); PFKeyValueListEx <int, string>[] listArray = { list1, list2, list3 }; PFListEx <PFKeyValueListEx <int, string> > listOfLists = new PFListEx <PFKeyValueListEx <int, string> >(); listOfLists.Add(list1); listOfLists.Add(list2); listOfLists.Add(list3); PFKeyValueListEx <int, string> concatListFromArray = PFKeyValueListEx <int, string> .ConcatenateLists(listArray); _msg.Length = 0; _msg.Append(Environment.NewLine); _msg.Append("Concatenated list from Array"); _msg.Append(Environment.NewLine); _msg.Append(concatListFromArray.ToXmlString()); Program._messageLog.WriteLine(_msg.ToString()); PFKeyValueListEx <int, string> concatListFromList = PFKeyValueListEx <int, string> .ConcatenateLists(listOfLists); _msg.Length = 0; _msg.Append(Environment.NewLine); _msg.Append("Concatenated list from List"); _msg.Append(Environment.NewLine); _msg.Append(concatListFromList.ToXmlString()); Program._messageLog.WriteLine(_msg.ToString()); PFKeyValueListEx <int, string> mergedList = list1.Merge(list2); _msg.Length = 0; _msg.Append(Environment.NewLine); _msg.Append("Merged list"); _msg.Append(Environment.NewLine); _msg.Append(mergedList.ToXmlString()); Program._messageLog.WriteLine(_msg.ToString()); mergedList.Clear(); mergedList = list3.Merge(new PFKeyValueListEx <int, string>[2] { list1, list2 }); _msg.Length = 0; _msg.Append(Environment.NewLine); _msg.Append("Merged list from Array"); _msg.Append(Environment.NewLine); _msg.Append(mergedList.ToXmlString()); Program._messageLog.WriteLine(_msg.ToString()); mergedList.Clear(); mergedList = list3.Merge(new PFListEx <PFKeyValueListEx <int, string> > { list2, list1 }); _msg.Length = 0; _msg.Append(Environment.NewLine); _msg.Append("Merged list from List"); _msg.Append(Environment.NewLine); _msg.Append(mergedList.ToXmlString()); Program._messageLog.WriteLine(_msg.ToString()); } catch (System.Exception ex) { _msg.Length = 0; _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex)); Program._messageLog.WriteLine(_msg.ToString()); AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog); } finally { _msg.Length = 0; _msg.Append("\r\n... KeyValueListMergeTest finished."); Program._messageLog.WriteLine(_msg.ToString()); } }
}//end GenericListTest public static void GenericKeyValueListTest() { PFKeyValueListEx <int, string> kvlist = new PFKeyValueListEx <int, string>(); PFKeyValueListEx <int, string> kvlist4 = new PFKeyValueListEx <int, string>(); PFKeyValueListEx <string, string> kvlistString = new PFKeyValueListEx <string, string>(); string kvlistFilename = @"c:\temp\testkvlist.xml"; string connectionString = string.Empty; string configValue = string.Empty; try { _msg.Length = 0; _msg.Append("GenericKeyValueListTest started ...\r\n"); Program._messageLog.WriteLine(_msg.ToString()); configValue = AppConfig.GetStringValueFromConfigFile("ListsDatabaseFile", string.Empty); if (configValue.Length > 0) { connectionString = configValue; } else { connectionString = _listsDatabaseConnectionString; } Program._messageLog.WriteLine(Environment.NewLine); kvlistString.Add(new pfKeyValuePair <string, string>("one", "First value")); kvlistString.Add(new pfKeyValuePair <string, string>("two", "Second value")); kvlistString.Add(new pfKeyValuePair <string, string>("three", "Third value")); kvlistString.Add(new pfKeyValuePair <string, string>("four", "Fourth value is just this")); kvlistString.Add(new pfKeyValuePair <string, string>("five", "First value is whatever comes here")); Program._messageLog.WriteLine("Before delete: " + kvlistString.Count.ToString()); if (kvlistString.Exists("three")) { kvlistString.Remove("three"); } Program._messageLog.WriteLine("After delete: " + kvlistString.Count.ToString()); Program._messageLog.WriteLine(Environment.NewLine); kvlist.Add(new pfKeyValuePair <int, string>(1, "First value")); kvlist.Add(new pfKeyValuePair <int, string>(2, "Second value")); kvlist.Add(new pfKeyValuePair <int, string>(3, "Third value")); kvlist.Add(new pfKeyValuePair <int, string>(4, "Fourth value is just this")); kvlist.Add(new pfKeyValuePair <int, string>(5, "First value is whatever comes here")); kvlist.SaveToXmlFile(kvlistFilename); PFKeyValueListEx <int, string> kvlist2 = PFKeyValueListEx <int, string> .LoadFromXmlFile(kvlistFilename); kvlist2.SetToBOF(); pfKeyValuePair <int, string> kvp = kvlist2.FirstItem; while (!kvlist2.EOF) { _msg.Length = 0; _msg.Append(kvp.Key.ToString()); _msg.Append(", "); _msg.Append(kvp.Value); Program._messageLog.WriteLine(_msg.ToString()); kvp = kvlist2.NextItem; } kvlist.SaveToDatabase(connectionString, "TestprogListObjects_kvlist"); PFKeyValueListEx <int, string> kvlist3 = PFKeyValueListEx <int, string> .LoadFromDatabase(connectionString, "TestprogListObjects_kvlist"); _msg.Length = 0; _msg.Append("kvlist3 ToXmlString Test: "); Program._messageLog.WriteLine(_msg.ToString()); _msg.Length = 0; _msg.Append(kvlist3.ToXmlString()); Program._messageLog.WriteLine(_msg.ToString()); _msg.Length = 0; _msg.Append(Environment.NewLine); _msg.Append("kvlist4 Sort Test: "); _msg.Append(Environment.NewLine); Program._messageLog.WriteLine(_msg.ToString()); kvlist4.Add(new pfKeyValuePair <int, string>(5, "YFifth value")); kvlist4.Add(new pfKeyValuePair <int, string>(4, "XFourth value")); kvlist4.Add(new pfKeyValuePair <int, string>(3, "Third value")); kvlist4.Add(new pfKeyValuePair <int, string>(2, "Second value")); kvlist4.Add(new pfKeyValuePair <int, string>(1, "First value")); kvlist4.SetToBOF(); pfKeyValuePair <int, string> kvp4 = kvlist4.FirstItem; while (!kvlist4.EOF) { _msg.Length = 0; _msg.Append(kvp4.Key.ToString()); _msg.Append(", "); _msg.Append(kvp4.Value); Program._messageLog.WriteLine(_msg.ToString()); kvp4 = kvlist4.NextItem; } _msg.Length = 0; _msg.Append(Environment.NewLine); _msg.Append("kvlist4 after sort: "); _msg.Append(Environment.NewLine); Program._messageLog.WriteLine(_msg.ToString()); kvlist4.SetToBOF(); kvlist4.Sort(PFKeyValueListExComparers.CompareKeyValueListIntString); kvlist4.SetToBOF(); kvp4 = kvlist4.FirstItem; while (!kvlist4.EOF) { _msg.Length = 0; _msg.Append(kvp4.Key.ToString()); _msg.Append(", "); _msg.Append(kvp4.Value); Program._messageLog.WriteLine(_msg.ToString()); kvp4 = kvlist4.NextItem; } Program._messageLog.WriteLine(Environment.NewLine); } catch (System.Exception ex) { _msg.Length = 0; _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex)); Program._messageLog.WriteLine(_msg.ToString()); AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog); } finally { _msg.Length = 0; _msg.Append("\r\n... GenericKeyValueListTest finished."); Program._messageLog.WriteLine(_msg.ToString()); } }