root / trunk / Pithos.Client.WPF / Shell / MessageView.xaml.cs @ 4b0a2fc0
History | View | Annotate | Download (2.9 kB)
1 | d53bbdf0 | Panagiotis Kanavos | using System; |
---|---|---|---|
2 | d53bbdf0 | Panagiotis Kanavos | using System.Collections.Generic; |
3 | d53bbdf0 | Panagiotis Kanavos | using System.Collections.ObjectModel; |
4 | d53bbdf0 | Panagiotis Kanavos | using System.ComponentModel; |
5 | d53bbdf0 | Panagiotis Kanavos | using System.ComponentModel.Composition; |
6 | d53bbdf0 | Panagiotis Kanavos | using System.Linq; |
7 | d53bbdf0 | Panagiotis Kanavos | using System.Linq.Expressions; |
8 | d53bbdf0 | Panagiotis Kanavos | using System.Net.Mail; |
9 | d53bbdf0 | Panagiotis Kanavos | using System.Text; |
10 | d53bbdf0 | Panagiotis Kanavos | using System.Windows; |
11 | d53bbdf0 | Panagiotis Kanavos | using System.Windows.Controls; |
12 | d53bbdf0 | Panagiotis Kanavos | using System.Windows.Data; |
13 | d53bbdf0 | Panagiotis Kanavos | using System.Windows.Documents; |
14 | d53bbdf0 | Panagiotis Kanavos | using System.Windows.Input; |
15 | d53bbdf0 | Panagiotis Kanavos | using System.Windows.Media; |
16 | d53bbdf0 | Panagiotis Kanavos | using System.Windows.Media.Imaging; |
17 | d53bbdf0 | Panagiotis Kanavos | using System.Windows.Shapes; |
18 | d53bbdf0 | Panagiotis Kanavos | using Caliburn.Micro; |
19 | d53bbdf0 | Panagiotis Kanavos | |
20 | d53bbdf0 | Panagiotis Kanavos | namespace Pithos.Client.WPF |
21 | d53bbdf0 | Panagiotis Kanavos | { |
22 | d53bbdf0 | Panagiotis Kanavos | /// <summary> |
23 | d53bbdf0 | Panagiotis Kanavos | /// Interaction logic for MessageView.xaml |
24 | d53bbdf0 | Panagiotis Kanavos | /// </summary> |
25 | d53bbdf0 | Panagiotis Kanavos | public partial class MessageView : Window, INotifyPropertyChanged |
26 | d53bbdf0 | Panagiotis Kanavos | { |
27 | d53bbdf0 | Panagiotis Kanavos | public ObservableCollection<UserMessage> UserMessages { get; set; } |
28 | d53bbdf0 | Panagiotis Kanavos | |
29 | d53bbdf0 | Panagiotis Kanavos | private string _message; |
30 | d53bbdf0 | Panagiotis Kanavos | public string Message |
31 | d53bbdf0 | Panagiotis Kanavos | { |
32 | d53bbdf0 | Panagiotis Kanavos | get |
33 | d53bbdf0 | Panagiotis Kanavos | { |
34 | d53bbdf0 | Panagiotis Kanavos | return _message; |
35 | d53bbdf0 | Panagiotis Kanavos | } |
36 | d53bbdf0 | Panagiotis Kanavos | set |
37 | d53bbdf0 | Panagiotis Kanavos | { |
38 | d53bbdf0 | Panagiotis Kanavos | _message = value; |
39 | d53bbdf0 | Panagiotis Kanavos | NotifyOfPropertyChange(()=>Message); |
40 | d53bbdf0 | Panagiotis Kanavos | } |
41 | d53bbdf0 | Panagiotis Kanavos | } |
42 | d53bbdf0 | Panagiotis Kanavos | |
43 | d53bbdf0 | Panagiotis Kanavos | |
44 | d53bbdf0 | Panagiotis Kanavos | public MessageView(IEnumerable<UserMessage> userMessages) |
45 | d53bbdf0 | Panagiotis Kanavos | { |
46 | d53bbdf0 | Panagiotis Kanavos | UserMessages = new ObservableCollection<UserMessage>(userMessages); |
47 | d53bbdf0 | Panagiotis Kanavos | DataContext = this; |
48 | d53bbdf0 | Panagiotis Kanavos | InitializeComponent(); |
49 | d53bbdf0 | Panagiotis Kanavos | } |
50 | d53bbdf0 | Panagiotis Kanavos | |
51 | d53bbdf0 | Panagiotis Kanavos | /// <summary> |
52 | d53bbdf0 | Panagiotis Kanavos | /// Copies the messages to the clipboard |
53 | d53bbdf0 | Panagiotis Kanavos | /// </summary> |
54 | d53bbdf0 | Panagiotis Kanavos | private void OnCopy(object sender, ExecutedRoutedEventArgs e) |
55 | d53bbdf0 | Panagiotis Kanavos | { |
56 | d53bbdf0 | Panagiotis Kanavos | StringBuilder clipText = new StringBuilder() |
57 | d53bbdf0 | Panagiotis Kanavos | .Append('-', 30) |
58 | d53bbdf0 | Panagiotis Kanavos | .AppendLine("\r\nProduct Map") |
59 | d53bbdf0 | Panagiotis Kanavos | .Append('-', 30) |
60 | d53bbdf0 | Panagiotis Kanavos | .AppendLine() |
61 | d53bbdf0 | Panagiotis Kanavos | .AppendLine(); |
62 | d53bbdf0 | Panagiotis Kanavos | foreach (var message in UserMessages) |
63 | d53bbdf0 | Panagiotis Kanavos | { |
64 | d53bbdf0 | Panagiotis Kanavos | clipText |
65 | d53bbdf0 | Panagiotis Kanavos | .Append('-', 20) |
66 | d53bbdf0 | Panagiotis Kanavos | .AppendFormat("\r\n[{0,5}]\t{1}", message.Severity, message.Message) |
67 | d53bbdf0 | Panagiotis Kanavos | .AppendLine() |
68 | d53bbdf0 | Panagiotis Kanavos | .AppendLine(message.Details) |
69 | d53bbdf0 | Panagiotis Kanavos | .AppendLine(); |
70 | d53bbdf0 | Panagiotis Kanavos | } |
71 | d53bbdf0 | Panagiotis Kanavos | |
72 | d53bbdf0 | Panagiotis Kanavos | Clipboard.SetText(clipText.ToString()); |
73 | d53bbdf0 | Panagiotis Kanavos | } |
74 | d53bbdf0 | Panagiotis Kanavos | |
75 | d53bbdf0 | Panagiotis Kanavos | private void OnClose(object sender, ExecutedRoutedEventArgs e) |
76 | d53bbdf0 | Panagiotis Kanavos | { |
77 | d53bbdf0 | Panagiotis Kanavos | this.Close(); |
78 | d53bbdf0 | Panagiotis Kanavos | } |
79 | d53bbdf0 | Panagiotis Kanavos | |
80 | d53bbdf0 | Panagiotis Kanavos | public event PropertyChangedEventHandler PropertyChanged; |
81 | d53bbdf0 | Panagiotis Kanavos | |
82 | d53bbdf0 | Panagiotis Kanavos | private void NotifyOfPropertyChange<TProperty>(Expression<Func<TProperty>> property) |
83 | d53bbdf0 | Panagiotis Kanavos | { |
84 | d53bbdf0 | Panagiotis Kanavos | if (PropertyChanged!=null) |
85 | d53bbdf0 | Panagiotis Kanavos | PropertyChanged(this,new PropertyChangedEventArgs(property.GetMemberInfo().Name)); |
86 | d53bbdf0 | Panagiotis Kanavos | } |
87 | d53bbdf0 | Panagiotis Kanavos | |
88 | d53bbdf0 | Panagiotis Kanavos | private void OnSend(object sender, RoutedEventArgs e) |
89 | d53bbdf0 | Panagiotis Kanavos | { |
90 | d53bbdf0 | Panagiotis Kanavos | SmtpClient client=new SmtpClient(); |
91 | d53bbdf0 | Panagiotis Kanavos | } |
92 | d53bbdf0 | Panagiotis Kanavos | } |
93 | d53bbdf0 | Panagiotis Kanavos | |
94 | d53bbdf0 | Panagiotis Kanavos | public class UserMessage |
95 | d53bbdf0 | Panagiotis Kanavos | { |
96 | d53bbdf0 | Panagiotis Kanavos | public string Message { get; set; } |
97 | d53bbdf0 | Panagiotis Kanavos | |
98 | d53bbdf0 | Panagiotis Kanavos | public Severity Severity { get; set; } |
99 | d53bbdf0 | Panagiotis Kanavos | public string Details { get; set; } |
100 | d53bbdf0 | Panagiotis Kanavos | } |
101 | d53bbdf0 | Panagiotis Kanavos | |
102 | d53bbdf0 | Panagiotis Kanavos | public enum Severity |
103 | d53bbdf0 | Panagiotis Kanavos | { |
104 | d53bbdf0 | Panagiotis Kanavos | Info, |
105 | d53bbdf0 | Panagiotis Kanavos | Warn, |
106 | d53bbdf0 | Panagiotis Kanavos | Error |
107 | d53bbdf0 | Panagiotis Kanavos | } |
108 | d53bbdf0 | Panagiotis Kanavos | } |