2 using System.Collections.Generic;
3 using System.Collections.ObjectModel;
4 using System.ComponentModel;
5 using System.ComponentModel.Composition;
7 using System.Linq.Expressions;
11 using System.Windows.Controls;
12 using System.Windows.Data;
13 using System.Windows.Documents;
14 using System.Windows.Input;
15 using System.Windows.Media;
16 using System.Windows.Media.Imaging;
17 using System.Windows.Shapes;
20 namespace Pithos.Client.WPF
23 /// Interaction logic for MessageView.xaml
25 public partial class MessageView : Window, INotifyPropertyChanged
27 public ObservableCollection<UserMessage> UserMessages { get; set; }
29 private string _message;
39 NotifyOfPropertyChange(()=>Message);
44 public MessageView(IEnumerable<UserMessage> userMessages)
46 UserMessages = new ObservableCollection<UserMessage>(userMessages);
48 InitializeComponent();
52 /// Copies the messages to the clipboard
54 private void OnCopy(object sender, ExecutedRoutedEventArgs e)
56 StringBuilder clipText = new StringBuilder()
58 .AppendLine("\r\nProduct Map")
62 foreach (var message in UserMessages)
66 .AppendFormat("\r\n[{0,5}]\t{1}", message.Severity, message.Message)
68 .AppendLine(message.Details)
72 Clipboard.SetText(clipText.ToString());
75 private void OnClose(object sender, ExecutedRoutedEventArgs e)
80 public event PropertyChangedEventHandler PropertyChanged;
82 private void NotifyOfPropertyChange<TProperty>(Expression<Func<TProperty>> property)
84 if (PropertyChanged!=null)
85 PropertyChanged(this,new PropertyChangedEventArgs(property.GetMemberInfo().Name));
88 private void OnSend(object sender, RoutedEventArgs e)
90 SmtpClient client=new SmtpClient();
94 public class UserMessage
96 public string Message { get; set; }
98 public Severity Severity { get; set; }
99 public string Details { get; set; }