//properties //methods /// <summary> /// Saves the public property values contained in the current instance to the database specified by the connection string. /// </summary> /// <param name="kvlist">Key/Value list object to be saved to a database.</param> /// <param name="connectionString">Contains information needed to open the database.</param> /// <param name="listName">Name of the list in the database.</param> public void SaveToDatabase(PFKeyValueList <K, V> kvlist, string connectionString, string listName) { string sqlStmt = string.Empty; PFDatabase db = new PFDatabase(DatabasePlatform.SQLServerCE35); int numRecsAffected = 0; DateTime currdate = DateTime.Now; string currBatchId = string.Empty; string listObject = string.Empty; db.ConnectionString = connectionString; db.OpenConnection(); //create batch id for this list currBatchId = "'" + Guid.NewGuid().ToString().Trim() + "'"; listObject = kvlist.ToXmlString().Replace("'", ""); //get rid of any single quotes in the object. they will mess up the sql syntax e.g. values(1, 'two' ,'this is the 'object'') //insert current list to the database sqlStmt = _listsInsertSQL.Replace("<listname>", listName).Replace("<id>", currBatchId).Replace("<listobject>", listObject); numRecsAffected = db.RunNonQuery(sqlStmt, CommandType.Text); //get rid of any previous PFListEx objects in the database sqlStmt = _listsDeleteOldSQL.Replace("<listname>", listName).Replace("<id>", currBatchId); numRecsAffected = db.RunNonQuery(sqlStmt, CommandType.Text); db.CloseConnection(); db = null; }
public void RandomizeListsTest() { PFList <string> list1 = new PFList <string>(); PFKeyValueList <int, string> kvlist2 = new PFKeyValueList <int, string>(); PFKeyValueListSorted <int, string> sortlist3 = new PFKeyValueListSorted <int, string>(); try { _msg.Length = 0; _msg.Append("RandomizeListsTest started ...\r\n"); Program._messageLog.WriteLine(_msg.ToString()); list1.Add("First"); list1.Add("Second"); list1.Add("Third"); list1.Add("fourth"); list1.Add("fifth"); list1.Add("sixth"); list1.Add("Seventh"); list1.Add("Eighth"); list1.Add("Ninth"); list1.Add("Tenth"); PFList <string> randomizedList = list1.Randomize(); _msg.Length = 0; _msg.Append("randomizedList: "); _msg.Append(Environment.NewLine); _msg.Append(randomizedList.ToXmlString()); Program._messageLog.WriteLine(_msg.ToString()); kvlist2.Add(new stKeyValuePair <int, string>(1, "First")); kvlist2.Add(new stKeyValuePair <int, string>(2, "Second")); kvlist2.Add(new stKeyValuePair <int, string>(3, "Third")); kvlist2.Add(new stKeyValuePair <int, string>(4, "fourth")); kvlist2.Add(new stKeyValuePair <int, string>(5, "fifth")); kvlist2.Add(new stKeyValuePair <int, string>(6, "sixth")); kvlist2.Add(new stKeyValuePair <int, string>(7, "Seventh")); kvlist2.Add(new stKeyValuePair <int, string>(8, "Eighth")); kvlist2.Add(new stKeyValuePair <int, string>(9, "Ninth")); kvlist2.Add(new stKeyValuePair <int, string>(10, "Tenth")); PFKeyValueList <int, string> randomizedKvList = kvlist2.Randomize(); _msg.Length = 0; _msg.Append("randomizedKvList: "); _msg.Append(Environment.NewLine); _msg.Append(randomizedKvList.ToXmlString()); Program._messageLog.WriteLine(_msg.ToString()); sortlist3.Add(1, "First"); sortlist3.Add(2, "Second"); sortlist3.Add(3, "Third"); sortlist3.Add(4, "fourth"); sortlist3.Add(5, "fifth"); sortlist3.Add(6, "sixth"); sortlist3.Add(7, "Seventh"); sortlist3.Add(8, "Eighth"); sortlist3.Add(9, "Ninth"); sortlist3.Add(10, "Tenth"); PFKeyValueList <int, string> randomizedSortList = sortlist3.Randomize(); _msg.Length = 0; _msg.Append("randomizedSortList: "); _msg.Append(Environment.NewLine); _msg.Append(randomizedSortList.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... RandomizeListsTest finished."); Program._messageLog.WriteLine(_msg.ToString()); } }
public void KeyValueListMergeTest() { PFKeyValueList <int, string> list1 = new PFKeyValueList <int, string>(); PFKeyValueList <int, string> list2 = new PFKeyValueList <int, string>(); PFKeyValueList <int, string> list3 = new PFKeyValueList <int, string>(); try { _msg.Length = 0; _msg.Append("KeyValueListMergeTest started ...\r\n"); Program._messageLog.WriteLine(_msg.ToString()); list1.Add(new stKeyValuePair <int, string>(1, "First")); list1.Add(new stKeyValuePair <int, string>(2, "Second")); list1.Add(new stKeyValuePair <int, string>(3, "Third")); list2.Add(new stKeyValuePair <int, string>(4, "fourth")); list2.Add(new stKeyValuePair <int, string>(5, "fifth")); list2.Add(new stKeyValuePair <int, string>(6, "sixth")); list3.Add(new stKeyValuePair <int, string>(7, "Seventh")); list3.Add(new stKeyValuePair <int, string>(8, "Eighth")); list3.Add(new stKeyValuePair <int, string>(9, "Ninth")); list3.Add(new stKeyValuePair <int, string>(10, "Tenth")); PFKeyValueList <int, string>[] listArray = { list1, list2, list3 }; PFList <PFKeyValueList <int, string> > listOfLists = new PFList <PFKeyValueList <int, string> >(); listOfLists.Add(list1); listOfLists.Add(list2); listOfLists.Add(list3); PFKeyValueList <int, string> concatListFromArray = PFKeyValueList <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()); PFKeyValueList <int, string> concatListFromList = PFKeyValueList <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()); PFKeyValueList <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 PFKeyValueList <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 PFList <PFKeyValueList <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 void GenericKeyValueListTest() { PFKeyValueList <int, string> kvlist = new PFKeyValueList <int, string>(); PFKeyValueList <int, string> kvlist3 = new PFKeyValueList <int, string>(); string kvlistFilename = @"c:\temp\testkvlist.xml"; string connectionString = string.Empty; string configValue = string.Empty; PFDBKeyValueListProcessor <int, string> kvlistProcessor = new PFDBKeyValueListProcessor <int, string>(); 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); kvlist.Add(new stKeyValuePair <int, string>(1, "First value")); kvlist.Add(new stKeyValuePair <int, string>(2, "Second value")); kvlist.Add(new stKeyValuePair <int, string>(3, "Third value")); kvlist.Add(new stKeyValuePair <int, string>(4, "Fourth value is just this")); kvlist.Add(new stKeyValuePair <int, string>(5, "First value is whatever comes here")); kvlist.SaveToXmlFile(kvlistFilename); PFKeyValueList <int, string> kvlist2 = PFKeyValueList <int, string> .LoadFromXmlFile(kvlistFilename); kvlist2.SetToBOF(); stKeyValuePair <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; } kvlistProcessor.SaveToDatabase(kvlist, connectionString, "TestprogCollections_kvlist"); kvlist3 = kvlistProcessor.LoadFromDatabase(connectionString, "TestprogCollections_kvlist"); if (kvlist3 != null) { _msg.Length = 0; _msg.Append("kvlist3 ToXmlString Test: "); Program._messageLog.WriteLine(_msg.ToString()); _msg.Length = 0; _msg.Append(kvlist3.ToXmlString()); _msg.Append(Environment.NewLine); _msg.Append("+++ kvlist3 retrieved. +++"); Program._messageLog.WriteLine(_msg.ToString()); } else { _msg.Length = 0; _msg.Append("kvlist3 ToXmlString Test: "); Program._messageLog.WriteLine(_msg.ToString()); _msg.Length = 0; _msg.Append("*** KVLIST3 IS NULL ***"); 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 { kvlistProcessor = null; _msg.Length = 0; _msg.Append("\r\n... GenericKeyValueListTest finished."); Program._messageLog.WriteLine(_msg.ToString()); } }