Statistics
| Branch: | Revision:

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
}