/// <summary> /// called when we're done making changes and want to apply them and go back to whatever else /// we were doing. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnDone_Click(object sender, RoutedEventArgs e) { try { CaseFile caseFile = UserPrefs.caseFile; if (caseFile == null) { MessageBox.Show("No active case file, cannot assign users!"); this.Close(); } string[] alreadyAssignedIds = caseFile.assignedUserIDs.ToArray(); foreach (User user in this.assignedUsers) { if (!alreadyAssignedIds.Contains(user.id)) { caseFile.AssignUser(user); } } UserPrefs.caseFile = caseFile; MainWindow.instance.SetCaseFile(caseFile); this.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
/// <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); } }
/// <summary> /// Gets all the casefiles. /// </summary> /// <returns></returns> public List <CaseFile> GetAllCaseFiles() { List <CaseFile> caseFiles = new List <CaseFile>(); try { WebRequest request = WebRequest.Create(caseSyncAddress); 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(); string[] result = pagesource.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries); foreach (string caseFileLine in result) { string[] caseFileResult = caseFileLine.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries); CaseFile temp = new CaseFile(caseFileResult[1], caseFileResult[1], int.Parse(caseFileResult[2])); //changed this temp.caseID = caseFileResult[0]; if (int.Parse(caseFileResult[3]) == 1) { temp.CloseCase(); } foreach (string username in AssignedUsers(temp.caseID)) { temp.AssignUser(username); } caseFiles.Add(temp); } } } } catch (WebException e) { Console.WriteLine(e.Message); UserPrefs.isOnline = false; } return(caseFiles); }