public void Update() { #if DEBUG Log.Logger.DebugFormat("WorkbookContext.Update"); #endif var newest = new Dictionary <string, TestCase>(); foreach (Excel.Worksheet worksheet in this.Workbook.Worksheets) { Excel.ListObject listObject = ListObjectHelper.GetTestCases(worksheet).FirstOrDefault(); if (null == listObject) { continue; } TestCase testCase; string key = listObject.Name; if (this.oldest.ContainsKey(key)) { testCase = this.oldest[key]; testCase.Update(); } else { testCase = new TestCase(this.Workbook, worksheet, listObject); } newest.Add(key, testCase); } var s1 = string.Join(",", this.oldest.Keys); var s2 = string.Join(",", newest.Keys); this.oldest = newest; if (s1 == s2) { return; } try { this.TestCases.RaiseListChangedEvents = false; this.TestCases.Clear(); foreach (var testCase in newest.Values) { this.TestCases.Add(testCase); } } finally { this.TestCases.RaiseListChangedEvents = true; this.TestCases.ResetBindings(); } }
public void DeleteEvidenceAll() { DisableScreenUpdating.Invoke(() => { foreach (var testCase in this.TestCases) { testCase.Result = TestResult.None; } List <Excel.Worksheet> deleteTargetWorksheets = new List <Excel.Worksheet>(); foreach (Excel.Worksheet worksheet in this.Workbook.Worksheets) { if (null != ExcelWorksheetCustomPropertyAccessor.Get(worksheet, EVIDENCE_PROPERTY)) { deleteTargetWorksheets.Add(worksheet); } else { Excel.ListObject listObject = ListObjectHelper.GetTestCases(worksheet).FirstOrDefault(); if (null != listObject) { listObject.DataBodyRange.Columns[ListRowHelper.ColumnIndex.Result].Clear(); listObject.DataBodyRange.Columns[ListRowHelper.ColumnIndex.Error].Clear(); listObject.DataBodyRange.Columns[ListRowHelper.ColumnIndex.Evidence].Clear(); } } } DisableDisplayAlert.Invoke(() => { foreach (Excel.Worksheet worksheet in deleteTargetWorksheets) { worksheet.Delete(); } }); }); }