コード例 #1
0
ファイル: View.aspx.cs プロジェクト: simoncwu/CAccess
        /// <summary>
        /// Retrieves a message from the current mailbox.
        /// </summary>
        /// <param name="UniqueID">The unique message ID of the message to retrieve.</param>
        /// <returns>A <see cref="CmoMessage"/> representing the requested message if found; otherwise, null.</returns>
        /// <remarks>Retrieving the message will initiate a fetch of the mailbox message contents as well as attempt to populate the previous message ID, next message ID, and current message index properties.</remarks>
        private CmoMessage GetMessage(string UniqueID)
        {
            _mailbox.GetMessages();
            CmoMessage message = _mailbox.OpenMessage(UniqueID, out _previousId, out _nextId, out _messageIndex);

            if (message == null)
            {
                message = _mailbox.OpenMessage(UniqueID);
            }
            return(message);
        }
コード例 #2
0
        public static MessageViewModel MessageFrom(string id, CmoMailbox mailbox)
        {
            if (string.IsNullOrWhiteSpace(id) || mailbox == null)
            {
                return(new MessageViewModel());
            }
            string previousId, nextId;
            int    messageIndex;
            var    source = mailbox.OpenMessage(id, out previousId, out nextId, out messageIndex);

            if (source == null)
            {
                mailbox.View = CmoMailboxView.All;
                source       = mailbox.OpenMessage(id);
            }
            return(source == null || !source.IsPosted ? new MessageViewModel() : new MessageViewModel
            {
                ID = source.UniqueID,
                ElectionCycle = source.ElectionCycle,
                Title = source.Title,
                Flagged = source.NeedsFollowUp,
                HasAttachments = source.HasAttachment,
                OpenedDate = source.OpenDate,
                Posted = source.PostDate.Value,
                ArchivedDate = source.ArchiveDate,
                ArchiveUser = source.Archiver,
                FlagDate = source.FollowUpDate,
                FlagUser = source.FollowUpFlagger,
                OpenUser = source.Opener,
                Body = source.Body,
                CurrentView = mailbox.View,
                CurrentIndex = messageIndex + 1,
                MailboxViewCount = mailbox.Messages.Count,
                NextID = nextId,
                PreviousID = previousId,
                Attachments = source.Attachments.Values.Select(a => a.ID)
            });
        }