public CaseFile GetAllReports(CaseFile caseFile) { try { MySqlDataReader reader = null; conn.Open(); string sqlStatement = "SELECT * FROM reports WHERE case_id=@caseID"; MySqlCommand command = new MySqlCommand(sqlStatement, conn); command.Prepare(); command.Parameters.AddWithValue("@caseID", caseFile.caseID); reader = command.ExecuteReader(); while (reader.Read()) { String reportID = reader["report_id"].ToString(); String caseID = reader["case_id"].ToString(); string authorID = reader["author_id"].ToString(); DateTime lastModified = reader.GetDateTime("last_modified").ToLocalTime(); Report tempReport = caseFile.AddReport(reportID, authorID.ToString()); tempReport.lastModified = lastModified; FormSyncer formSyncer = new FormSyncer(); formSyncer.GetForms(tempReport); } conn.Close(); return(caseFile); } catch (Exception e) { Console.WriteLine(e.ToString()); return(caseFile); } }
/// <summary> /// Get a casefile. Also gets all the reports and forms included with it. /// </summary> /// <param name="caseFileID"></param> /// <returns></returns> public CaseFile GetCaseFile(string caseFileID) { try { WebRequest request = WebRequest.Create(caseSyncAddress + "?case_id=" + caseFileID); request.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); request.Method = "GET"; using (WebResponse response = request.GetResponse()) { using (StreamReader stream = new StreamReader(response.GetResponseStream())) { string pagesource = stream.ReadToEnd(); Console.WriteLine(pagesource); if (pagesource == "invalid") { return(null); } else { string[] result = pagesource.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries); CaseFile temp = new CaseFile(result[0], result[0], int.Parse(result[1])); //changed this temp.caseID = caseFileID; if (int.Parse(result[2]) == 1) { temp.CloseCase(); } foreach (string username in AssignedUsers(caseFileID)) { temp.AssignUser(username); } List <Report> reports = new ReportSyncer().GetReports(temp); foreach (Report report in reports) { temp.AddReport(report); } return(temp); } } } } catch (WebException e) { Console.WriteLine(e.Message); UserPrefs.isOnline = false; return(null); } }
private static void TestForm() { CaseFile caseFile = new CaseFile("case00001", "Steve's assisted living", 00004); Report report = caseFile.AddReport("kenny00001", "kenny"); Form form = report.AddForm(new Form("formA")); User testUser; Console.WriteLine(caseFile); Console.WriteLine("Testing users"); UserSyncer userSyncer = new UserSyncer(); userSyncer.CreateUser("tester", "tpassword", "Bob", false); Console.WriteLine("Testing valid login info"); testUser = userSyncer.Login("tester", "tpassword"); Console.WriteLine("Testing invalid login info"); userSyncer.Login("tester", "asd"); Console.WriteLine("Testing colliding usernames user creation"); userSyncer.CreateUser("tester", "tPassword", "Bill", true); CaseFileSyncer syncer = new CaseFileSyncer(); Console.WriteLine("Testing inserting case file into database"); //syncer.SyncCaseFile(caseFile, testUser); caseFile.Sync(testUser); Console.WriteLine("Testing updating case file already in database"); CaseFile caseFile2 = new CaseFile("case00001", "Bob's assisted living", 00004); //syncer.SyncCaseFile(caseFile2, testUser); caseFile2.Sync(testUser); CaseFile caseFile3 = new CaseFile(caseFile2.caseID, "Bob's existing living", 00004); syncer.UpdateCaseFile(caseFile3); CaseFile databaseCaseFile = new CaseFile("14", "invalid", -1); //databaseCaseFile = syncer.SyncCaseFile(databaseCaseFile, testUser); databaseCaseFile.Sync(testUser); Console.WriteLine(databaseCaseFile); string dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "testXML"); XmlSerializer ser = new XmlSerializer(caseFile.GetType()); using (TextWriter writer = new StreamWriter(dir + @"\groupTest.xml")) { ser.Serialize(writer, caseFile); } Console.WriteLine("\n >done!"); Console.WriteLine(" >Now reading from file!"); CaseFile readField; using (TextReader reader = new StreamReader(dir + @"\groupTest.xml")) { readField = (CaseFile)ser.Deserialize(reader); } Console.WriteLine(readField); }