public ConversationRendererBase(IDisplayOptionsReadOnly displayOptions, IConversation conversation) { _displayOptions = displayOptions; _conversation = conversation; _lastMessageDate = DateTime.MinValue; _lastMessageReadIndex = -1; _renderedEmptyMessage = false; _remoteContacts = new List <IContact>(); _localSenderColor = Color.FromRgb(210, 0, 0); _remoteSenderColors = new Color[6]; _remoteSenderColors[0] = Color.FromRgb(0, 0, 210); _remoteSenderColors[1] = Color.FromRgb(114, 159, 0); _remoteSenderColors[2] = Color.FromRgb(186, 124, 30); _remoteSenderColors[3] = Color.FromRgb(0, 210, 210); _remoteSenderColors[4] = Color.FromRgb(143, 2, 128); _remoteSenderColors[5] = Color.FromRgb(52, 143, 156); ClearRenderingBuffer(); }
public ConversationRendererRichText(IDisplayOptionsReadOnly displayOptions, IConversation conversation) : base(displayOptions, conversation) { _currentParagraph = null; _fileSystem = new OsFileSystem(); }
public ConversationRendererBase(IDisplayOptionsReadOnly displayOptions, IConversation conversation) { _displayOptions = displayOptions; _conversation = conversation; _lastMessageDate = DateTime.MinValue; _lastMessageReadIndex = -1; _renderedEmptyMessage = false; _remoteContacts = new List<IContact>(); _localSenderColor = Color.FromRgb(210, 0, 0); _remoteSenderColors = new Color[6]; _remoteSenderColors[0] = Color.FromRgb(0, 0, 210); _remoteSenderColors[1] = Color.FromRgb(114, 159, 0); _remoteSenderColors[2] = Color.FromRgb(186, 124, 30); _remoteSenderColors[3] = Color.FromRgb(0, 210, 210); _remoteSenderColors[4] = Color.FromRgb(143, 2, 128); _remoteSenderColors[5] = Color.FromRgb(52, 143, 156); ClearRenderingBuffer(); }
public ExportMultipleDialogModel(IConversationManager conversationManager, IDisplayOptionsReadOnly displayOptions, IFileSystem exportFileSystem, ExportErrorFormatter exportErrorFormatter) { _conversationManager = conversationManager; _displayOptions = displayOptions; _exportFileSystem = exportFileSystem; _exportErrorFormatter = exportErrorFormatter; }
public List<ExportError> Export(IConversation conversation, IDisplayOptionsReadOnly displayOptions, string exportFilename) { IAttachmentExportLocator exportLocator; List<ExportError> attachmentExportErrors = DoAttachmentExport(conversation, displayOptions, exportFilename, out exportLocator); List<ExportError> conversationTextExportErrors = DoConversationTextExport(conversation, displayOptions, exportFilename, exportLocator); List<ExportError> exportErrors = new List<ExportError>(); exportErrors.AddRange(attachmentExportErrors); exportErrors.AddRange(conversationTextExportErrors); return exportErrors; }
public List <ExportError> Export(IConversation conversation, IDisplayOptionsReadOnly displayOptions, string exportFilename) { IAttachmentExportLocator exportLocator; List <ExportError> attachmentExportErrors = DoAttachmentExport(conversation, displayOptions, exportFilename, out exportLocator); List <ExportError> conversationTextExportErrors = DoConversationTextExport(conversation, displayOptions, exportFilename, exportLocator); List <ExportError> exportErrors = new List <ExportError>(); exportErrors.AddRange(attachmentExportErrors); exportErrors.AddRange(conversationTextExportErrors); return(exportErrors); }
public ExportMultipleDialogView(IConversationManager conversationManager, IDisplayOptionsReadOnly displayOptions) { InitializeComponent(); IFileSystem exportFileSystem = new OsFileSystem(); ExportErrorFormatter exportErrorFormatter = new ExportErrorFormatter(); _model = new ExportMultipleDialogModel(conversationManager, displayOptions, exportFileSystem, exportErrorFormatter); _progressCallback = null; Loaded += delegate { folderPathTextBox.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); }; }
private List <ExportError> DoAttachmentExport(IConversation conversation, IDisplayOptionsReadOnly displayOptions, string exportFilename, out IAttachmentExportLocator exportLocator) { List <ExportError> exportErrors; if (displayOptions.LoadMmsAttachments) { exportErrors = ExportConversationAttachments(conversation, exportFilename, out exportLocator); } else { exportErrors = new List <ExportError>(); exportLocator = new AttachmentExportLocator(null); } return(exportErrors); }
public List<ExportError> ExportMultipleConversations(IEnumerable<IConversation> conversations, IDisplayOptionsReadOnly displayOptions, string exportPath, IProgressCallback progressCallback) { List<ExportError> exportErrors = new List<ExportError>(); string createdFolderPath = FileCreator.CreateNewDirectoryWithRenameAttempts(exportPath, _exportFileSystem, MaxRenameAttempts); ExportedFilenameGenerator filenameGenerator = new ExportedFilenameGenerator(); foreach (IConversation conversation in conversations) { CheckForCancel(progressCallback); // // Don't export empty conversations // if (conversation.MessageCount == 0) { IncrementProgress(progressCallback); continue; } try { string filename = filenameGenerator.CreateExportFilenameSuggestion(conversation) + "." + GetExportFileExtension(); string exportFilename = Path.Combine(createdFolderPath, filename); List<ExportError> currentErrors = Export(conversation, displayOptions, exportFilename); exportErrors.AddRange(currentErrors); } catch (Exception ex) { exportErrors.Add(new ExportError(conversation, ex)); } IncrementProgress(progressCallback); } return exportErrors; }
protected abstract IConversationRenderer GetRenderer(IConversation conversation, IDisplayOptionsReadOnly displayOptions, IAttachmentExportLocator attachmentExportLocator);
public List <ExportError> ExportMultipleConversations(IEnumerable <IConversation> conversations, IDisplayOptionsReadOnly displayOptions, string exportPath, IProgressCallback progressCallback) { List <ExportError> exportErrors = new List <ExportError>(); string createdFolderPath = FileCreator.CreateNewDirectoryWithRenameAttempts(exportPath, _exportFileSystem, MaxRenameAttempts); ExportedFilenameGenerator filenameGenerator = new ExportedFilenameGenerator(); foreach (IConversation conversation in conversations) { CheckForCancel(progressCallback); // // Don't export empty conversations // if (conversation.MessageCount == 0) { IncrementProgress(progressCallback); continue; } try { string filename = filenameGenerator.CreateExportFilenameSuggestion(conversation) + "." + GetExportFileExtension(); string exportFilename = Path.Combine(createdFolderPath, filename); List <ExportError> currentErrors = Export(conversation, displayOptions, exportFilename); exportErrors.AddRange(currentErrors); } catch (Exception ex) { exportErrors.Add(new ExportError(conversation, ex)); } IncrementProgress(progressCallback); } return(exportErrors); }
protected void WriteConversationContents(StreamWriter writer, IConversation conversation, IDisplayOptionsReadOnly displayOptions, IAttachmentExportLocator attachmentExportLocator) { IConversationRenderer renderer = GetRenderer(conversation, displayOptions, attachmentExportLocator); while (renderer.HasUnprocessedMessages) { const int RenderBufferSize = 5000; string exportableString = renderer.RenderMessagesAsString(RenderBufferSize); writer.Write(exportableString); } }
private static bool IsOutOfDateWarningNeeded(DateTime currentDate, DateTime? lastSyncDate, IDisplayOptionsReadOnly displayOptions) { const int OldAgeTimeInDays = 30; DateTime oldAgeDate = currentDate.Subtract(new TimeSpan(OldAgeTimeInDays, 0, 0, 0)); if (lastSyncDate.HasValue && (lastSyncDate < oldAgeDate)) { return displayOptions.PromptForSyncTroubleshooting; } return false; }
private static bool IsOutOfDateWarningNeeded(DateTime currentDate, DateTime?lastSyncDate, IDisplayOptionsReadOnly displayOptions) { const int OldAgeTimeInDays = 30; DateTime oldAgeDate = currentDate.Subtract(new TimeSpan(OldAgeTimeInDays, 0, 0, 0)); if (lastSyncDate.HasValue && (lastSyncDate < oldAgeDate)) { return(displayOptions.PromptForSyncTroubleshooting); } return(false); }
public ConversationRendererPlaintext(IDisplayOptionsReadOnly displayOptions, IConversation conversation) : base(displayOptions, conversation) { ; }
protected override IConversationRenderer GetRenderer(IConversation conversation, IDisplayOptionsReadOnly displayOptions, IAttachmentExportLocator attachmentExportLocator) { return new ConversationRendererHtml(displayOptions, conversation, attachmentExportLocator); }
private List<ExportError> DoConversationTextExport(IConversation conversation, IDisplayOptionsReadOnly displayOptions, string exportFilename, IAttachmentExportLocator exportLocator) { List<ExportError> exportErrors = new List<ExportError>(); string finalExportFilename; try { using (Stream exportFileStream = FileCreator.CreateNewFileWithRenameAttempts(exportFilename, _exportFileSystem, MaxRenameAttempts, out finalExportFilename)) { using (StreamWriter exportStreamWriter = new StreamWriter(exportFileStream, Encoding.UTF8)) { WriteHeader(exportStreamWriter, conversation); WriteConversationContents(exportStreamWriter, conversation, displayOptions, exportLocator); WriteFooter(exportStreamWriter); } } } catch (Exception ex) { exportErrors.Add(new ExportError(conversation, ex)); } return exportErrors; }
private List<ExportError> DoAttachmentExport(IConversation conversation, IDisplayOptionsReadOnly displayOptions, string exportFilename, out IAttachmentExportLocator exportLocator) { List<ExportError> exportErrors; if (displayOptions.LoadMmsAttachments) { exportErrors = ExportConversationAttachments(conversation, exportFilename, out exportLocator); } else { exportErrors = new List<ExportError>(); exportLocator = new AttachmentExportLocator(null); } return exportErrors; }
private List <ExportError> DoConversationTextExport(IConversation conversation, IDisplayOptionsReadOnly displayOptions, string exportFilename, IAttachmentExportLocator exportLocator) { List <ExportError> exportErrors = new List <ExportError>(); string finalExportFilename; try { using (Stream exportFileStream = FileCreator.CreateNewFileWithRenameAttempts(exportFilename, _exportFileSystem, MaxRenameAttempts, out finalExportFilename)) { using (StreamWriter exportStreamWriter = new StreamWriter(exportFileStream, Encoding.UTF8)) { WriteHeader(exportStreamWriter, conversation); WriteConversationContents(exportStreamWriter, conversation, displayOptions, exportLocator); WriteFooter(exportStreamWriter); } } } catch (Exception ex) { exportErrors.Add(new ExportError(conversation, ex)); } return(exportErrors); }
public ConversationRendererHtml(IDisplayOptionsReadOnly displayOptions, IConversation conversation, IAttachmentExportLocator attachmentExportLocator) : base(displayOptions, conversation) { _attachmentExportLocator = attachmentExportLocator; }
protected override IConversationRenderer GetRenderer(IConversation conversation, IDisplayOptionsReadOnly displayOptions, IAttachmentExportLocator attachmentExportLocator) { return(new ConversationRendererHtml(displayOptions, conversation, attachmentExportLocator)); }