public DocumentWindow(DocumentWindowModel model) { InitializeComponent(); DataContext = model; }
private void listView_MouseDoubleClick(object sender, MouseButtonEventArgs e) { int index = listView.SelectedIndex; if (index < 0 || index >= listView.Items.Count) { return; } if (listView.Items[index] is DocumentItem selectedItem) { Document document = documentManager.DocumentsStorage.GetDocument(selectedItem.Identifier); DocumentWindowModel dwModel = new DocumentWindowModel { WindowHandler = document.Identifier, LogMessages = documentManager.loggerManager.GetDocumentMessages(document) .Where(msg => msg is LogMessage || msg is ErrorMessage).Select(msg => { LogMessageItem.LogStatus ls = LogMessageItem.LogStatus.Normal; if (msg.Type == MessageBase.MessageType.warning) { ls = LogMessageItem.LogStatus.Warning; } else if (msg.Type == MessageBase.MessageType.error) { ls = LogMessageItem.LogStatus.Error; } return(new LogMessageItem(msg.Message, msg.Time.ToShortTimeString(), ls)); }), TextMessages = documentManager.loggerManager.GetDocumentMessages(document).Where(msg => { if (msg is WarningMessage) { return((msg as WarningMessage).Place == WarningMessage.PlaceType.TextFile); } return(false); }) .Select(msg => { LogMessageItem.LogStatus ls = LogMessageItem.LogStatus.Normal; if (msg.Type == MessageBase.MessageType.warning) { ls = LogMessageItem.LogStatus.Warning; } else if (msg.Type == MessageBase.MessageType.error) { ls = LogMessageItem.LogStatus.Error; } return(new LogMessageItem(msg.Message, msg.Time.ToShortTimeString(), ls)); }), ScanMessages = documentManager.loggerManager.GetDocumentMessages(document).Where(msg => { if (msg is WarningMessage) { return((msg as WarningMessage).Place == WarningMessage.PlaceType.Scan); } return(false); }) .Select(msg => { LogMessageItem.LogStatus ls = LogMessageItem.LogStatus.Normal; if (msg.Type == MessageBase.MessageType.warning) { ls = LogMessageItem.LogStatus.Warning; } else if (msg.Type == MessageBase.MessageType.error) { ls = LogMessageItem.LogStatus.Error; } return(new LogMessageItem(msg.Message, msg.Time.ToShortTimeString(), ls)); }), TextPdfMessages = documentManager.loggerManager.GetDocumentMessages(document).Where(msg => { if (msg is WarningMessage) { return((msg as WarningMessage).Place == WarningMessage.PlaceType.TextPdf); } return(false); }) .Select(msg => { LogMessageItem.LogStatus ls = LogMessageItem.LogStatus.Normal; if (msg.Type == MessageBase.MessageType.warning) { ls = LogMessageItem.LogStatus.Warning; } else if (msg.Type == MessageBase.MessageType.error) { ls = LogMessageItem.LogStatus.Error; } return(new LogMessageItem(msg.Message, msg.Time.ToShortTimeString(), ls)); }), AttachMessages = documentManager.loggerManager.GetDocumentMessages(document).Where(msg => { if (msg is WarningMessage) { return((msg as WarningMessage).Place == WarningMessage.PlaceType.Attachments); } return(false); }) .Select(msg => { LogMessageItem.LogStatus ls = LogMessageItem.LogStatus.Normal; if (msg.Type == MessageBase.MessageType.warning) { ls = LogMessageItem.LogStatus.Warning; } else if (msg.Type == MessageBase.MessageType.error) { ls = LogMessageItem.LogStatus.Error; } return(new LogMessageItem(msg.Message, msg.Time.ToShortTimeString(), ls)); }) }; DocumentWindow documentWindow = new DocumentWindow(dwModel); documentWindow.Left = this.Left + this.Width / 2 - documentWindow.Width / 2; documentWindow.Top = this.Top + this.Height / 2 - documentWindow.Height / 2; documentWindow.ShowDialog(); } }