Пример #1
0
        private bool IsMessageAlreadyDownloaded(string email, MimeMessage message)
        {
            var info = NewTimestampText.GetValueOrDefault(email);

            if (info == null || info.Timestamp.UnixTimeStampToDateTime() < message.Date)
            {
                return(false);
            }

            if (info.Timestamp.UnixTimeStampToDateTime() == message.Date)
            {
                if (info.MessageIds.Contains(message.MessageId))
                {
                    return(true);
                }
                return(false);
            }

            return(false);
        }
Пример #2
0
        private async Task SaveTimeStamp(string email, MimeMessage message = null)
        {
            var info = NewTimestampText.GetValueOrDefault(email);

            if (message != null && (info == null || info.Timestamp != message.Date.ToUnixTimeMilliseconds()))
            {
                NewTimestampText[email] = new LastMessageDownload
                {
                    DownloadTimestamp = DownloadTimestamp,
                    MessageIds        = new List <string> {
                        message.MessageId
                    },
                    Timestamp = message.Date.ToUnixTimeMilliseconds()
                };
            }
            else
            {
                if (message != null)
                {
                    info.MessageIds.Add(message.MessageId);
                }

                NewTimestampText[email] = new LastMessageDownload
                {
                    DownloadTimestamp = DownloadTimestamp,
                    MessageIds        = info.MessageIds,
                    Timestamp         = info.Timestamp
                };
            }

            await _alfrescoHttp.UpdateNode(EmailFolder.Entry.Id, new NodeBodyUpdate()
                                           .AddProperty(TimeStampProperty, JsonConvert.SerializeObject(NewTimestampText, new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            })));
        }