Horizon – Diff between revs 8 and 27

Subversion Repositories:
Rev:
Only display areas with differencesIgnore whitespace
Rev 8 Rev 27
1 using System; 1 using System;
-   2 using System.Security.Policy;
-   3 using System.Threading;
2 using System.Windows.Forms; 4 using System.Windows.Forms;
-   5 using System.Windows.Markup;
3 using Be.Windows.Forms; 6 using Be.Windows.Forms;
4 using Horizon.Database; 7 using Horizon.Database;
5 using Horizon.Utilities; 8 using Horizon.Utilities;
-   9 using Serilog;
6   10  
7 namespace Horizon.Snapshots 11 namespace Horizon.Snapshots
8 { 12 {
9 public partial class HexViewForm : Form 13 public partial class HexViewForm : Form
10 { 14 {
11 #region Public Events & Delegates 15 #region Public Events & Delegates
12   16  
13 public event EventHandler<SaveDataEventArgs> SaveData; 17 public event EventHandler<SaveDataEventArgs> SaveData;
14   18  
15 #endregion 19 #endregion
16   20  
17 #region Public Methods 21 #region Public Methods
18   22  
19 public void UpdateData(byte[] data) 23 public void UpdateData(byte[] data)
20 { 24 {
21 hexBox1.InvokeIfRequired(hexBox => 25 hexBox1.InvokeIfRequired(hexBox =>
22 { 26 {
23 _originalData = (byte[])data.Clone(); 27 _originalData = (byte[])data.Clone();
24   28  
25 _dynamicByteProvider = new DynamicByteProvider(data); 29 _dynamicByteProvider = new DynamicByteProvider(data);
26 hexBox.ByteProvider = _dynamicByteProvider; 30 hexBox.ByteProvider = _dynamicByteProvider;
27 hexBox.Refresh(); 31 hexBox.Refresh();
28 }); 32 });
29 } 33 }
30   34  
31 #endregion 35 #endregion
32   36  
33 #region Private Delegates, Events, Enums, Properties, Indexers and Fields 37 #region Private Delegates, Events, Enums, Properties, Indexers and Fields
34   38  
35 private readonly SnapshotDatabase _snapshotDatabase; 39 private readonly SnapshotDatabase _snapshotDatabase;
36   40  
37 private DynamicByteProvider _dynamicByteProvider; 41 private DynamicByteProvider _dynamicByteProvider;
38   -  
39 private string _hash; -  
40   -  
41 private byte[] _originalData; 42 private byte[] _originalData;
-   43 private string _hash;
-   44 private readonly CancellationToken _cancellationToken;
42   45  
43 #endregion 46 #endregion
44   47  
45 #region Constructors, Destructors and Finalizers 48 #region Constructors, Destructors and Finalizers
46   49  
47 public HexViewForm() 50 public HexViewForm()
48 { 51 {
49 InitializeComponent(); 52 InitializeComponent();
50 } 53 }
51   54  
52 public HexViewForm(SnapshotDatabase snapshotDatabase, string hash, byte[] data) : this() 55 public HexViewForm(string hash, SnapshotDatabase snapshotDatabase, CancellationToken cancellationToken) : this()
53 { -  
54 _originalData = (byte[])data.Clone(); 56 {
55 _hash = hash; -  
56   57 _hash = hash;
57 _snapshotDatabase = snapshotDatabase; 58 _snapshotDatabase = snapshotDatabase;
58 _snapshotDatabase.SnapshotDataUpdate += SnapshotDatabaseSnapshotDataUpdate; -  
59   -  
60 _dynamicByteProvider = new DynamicByteProvider(data); 59 _snapshotDatabase.SnapshotDataUpdate += SnapshotDatabaseSnapshotDataUpdate;
61 hexBox1.ByteProvider = _dynamicByteProvider; 60 _cancellationToken = cancellationToken;
62 } 61 }
63   62  
64 /// <summary> 63 /// <summary>
65 /// Clean up any resources being used. 64 /// Clean up any resources being used.
66 /// </summary> 65 /// </summary>
67 /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> 66 /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
68 protected override void Dispose(bool disposing) 67 protected override void Dispose(bool disposing)
69 { 68 {
70 if (disposing && components != null) 69 if (disposing && components != null)
71 { 70 {
72 components.Dispose(); 71 components.Dispose();
73 } 72 }
74   73  
75 _snapshotDatabase.SnapshotDataUpdate -= SnapshotDatabaseSnapshotDataUpdate; 74 _snapshotDatabase.SnapshotDataUpdate -= SnapshotDatabaseSnapshotDataUpdate;
76   75  
77 base.Dispose(disposing); 76 base.Dispose(disposing);
78 } 77 }
79   78  
80 #endregion 79 #endregion
81   80  
82 #region Event Handlers 81 #region Event Handlers
83 private void HexViewForm_Load(object sender, EventArgs e) 82 private async void HexViewForm_Load(object sender, EventArgs e)
84 { 83 {
85 Utilities.WindowState.FormTracker.Track(this); 84 Utilities.WindowState.FormTracker.Track(this);
-   85  
-   86 try
-   87 {
-   88 using var memoryStream = await _snapshotDatabase.RetrieveFileStreamAsync(_hash, _cancellationToken);
-   89  
-   90 if (memoryStream == null)
-   91 {
-   92 return;
-   93 }
-   94  
-   95 var data = memoryStream.ToArray();
-   96  
-   97 _originalData = (byte[])data.Clone();
-   98  
-   99 _dynamicByteProvider = new DynamicByteProvider(data);
-   100 hexBox1.ByteProvider = _dynamicByteProvider;
-   101 }
-   102 catch (Exception exception)
-   103 {
-   104 Log.Error(exception, "Could not retrieve snapshot data.");
-   105 }
86 } 106 }
87 private void SnapshotDatabaseSnapshotDataUpdate(object sender, SnapshotDataUpdateEventArgs e) 107 private void SnapshotDatabaseSnapshotDataUpdate(object sender, SnapshotDataUpdateEventArgs e)
88 { 108 {
89 switch (e) 109 switch (e)
90 { 110 {
91 case SnapshotDataUpdateSuccessEventArgs snapshotDataUpdateSuccessEventArgs: 111 case SnapshotDataUpdateSuccessEventArgs snapshotDataUpdateSuccessEventArgs:
92 _hash = snapshotDataUpdateSuccessEventArgs.NewHash; 112 _hash = snapshotDataUpdateSuccessEventArgs.NewHash;
93   113  
94 statusStrip1.InvokeIfRequired(statusStrip => 114 statusStrip1.InvokeIfRequired(statusStrip =>
95 { 115 {
96 toolStripProgressBar1.Value = toolStripProgressBar1.Maximum; 116 toolStripProgressBar1.Value = toolStripProgressBar1.Maximum;
97 toolStripStatusLabel1.Text = "Data saved."; 117 toolStripStatusLabel1.Text = "Data saved.";
98 }); 118 });
99 break; 119 break;
100 case SnapshotDataUpdateFailureEventArgs _: 120 case SnapshotDataUpdateFailureEventArgs _:
101 statusStrip1.InvokeIfRequired(statusStrip => 121 statusStrip1.InvokeIfRequired(statusStrip =>
102 { 122 {
103 toolStripProgressBar1.Value = toolStripProgressBar1.Minimum; 123 toolStripProgressBar1.Value = toolStripProgressBar1.Minimum;
104 toolStripStatusLabel1.Text = "Could not save data."; 124 toolStripStatusLabel1.Text = "Could not save data.";
105 }); 125 });
106 break; 126 break;
107 } 127 }
108 } 128 }
109   129  
110 private void SaveToolStripMenuItem_Click(object sender, EventArgs e) 130 private void SaveToolStripMenuItem_Click(object sender, EventArgs e)
111 { 131 {
112 if (_dynamicByteProvider.HasChanges()) 132 if (_dynamicByteProvider.HasChanges())
113 { 133 {
114 _dynamicByteProvider.ApplyChanges(); 134 _dynamicByteProvider.ApplyChanges();
115   135  
116 statusStrip1.InvokeIfRequired(statusStrip => 136 statusStrip1.InvokeIfRequired(statusStrip =>
117 { 137 {
118 toolStripProgressBar1.Value = toolStripProgressBar1.Minimum; 138 toolStripProgressBar1.Value = toolStripProgressBar1.Minimum;
119 toolStripStatusLabel1.Text = "Saving."; 139 toolStripStatusLabel1.Text = "Saving.";
120 }); 140 });
121   141  
122 SaveData?.Invoke(this, new SaveDataEventArgs(_hash, _dynamicByteProvider.Bytes.ToArray())); 142 SaveData?.Invoke(this, new SaveDataEventArgs(_hash, _dynamicByteProvider.Bytes.ToArray()));
123 } 143 }
124 } 144 }
125   145  
126 private void ReloadToolStripMenuItem_Click(object sender, EventArgs e) 146 private void ReloadToolStripMenuItem_Click(object sender, EventArgs e)
127 { 147 {
128 hexBox1.InvokeIfRequired(hexBox => 148 hexBox1.InvokeIfRequired(hexBox =>
129 { 149 {
130 _dynamicByteProvider = new DynamicByteProvider(_originalData); 150 _dynamicByteProvider = new DynamicByteProvider(_originalData);
131 hexBox.ByteProvider = _dynamicByteProvider; 151 hexBox.ByteProvider = _dynamicByteProvider;
132 hexBox.Refresh(); 152 hexBox.Refresh();
133 }); 153 });
134 } 154 }
135   155  
136 #endregion 156 #endregion
137   157  
138   158  
139 } 159 }
140 } 160 }
141   161  
142
Generated by GNU Enscript 1.6.5.90.
162
Generated by GNU Enscript 1.6.5.90.
143   163  
144   164  
145   165