public Models.MessageSummary ToMessageSummary(Core.MessageSummary messageSummary) { if (messageSummary == null) { return(null); } var result = new Models.MessageSummary { From = messageSummary.MailFrom, Id = messageSummary.Id, MessageId = this._dataEncryptor.EncryptMessageId(messageSummary.Id), Subject = messageSummary.Subject, TimeStamp = messageSummary.ReceiveAt, To = messageSummary.MailTo }; return(result); }
public ActionResult MessageList(String type) { var viewModel = new MessageListSummary(); using (var client = new ImapClient()) { client.Connect("imap.gmail.com", 993, true); var user = (Models.User)Session["User"]; client.Login(user.Email, user.Password); client.Behavior.MessageFetchMode = MessageFetchMode.Tiny; client.Behavior.AutoPopulateFolderMessages = true; // The Inbox folder is always available on all IMAP servers... Folder folder = client.Folders.Inbox; switch (type) { case "Inbox": folder = client.Folders.Inbox; break; case "Sent": folder = client.Folders.Sent; break; } // Retrieve storage account from connection string. var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]); // Create the blob client. var blobClient = storageAccount.CreateCloudBlobClient(); // Retrieve reference to a previously created container. var container = blobClient.GetContainerReference("inbox"); // Retrieve reference to a blob named "myblob". var blockBlob = container.GetBlockBlobReference(user.Email); using (var memory = new MemoryStream()) // Create or overwrite the "myblob" blob with contents from a local file. using (var writer = new StreamWriter(memory)) { writer.Write(folder); writer.Flush(); memory.Seek(0, SeekOrigin.Begin); blockBlob.UploadFromStream(memory); } viewModel.Total = folder.Messages.Count(); var messageSummaries = new List <Models.MessageSummary>(); for (var i = 0; i < viewModel.Total; i++) { var message = folder.Messages[i]; var messageSummary = new Models.MessageSummary() { Title = message.Subject, From = message.From.DisplayName, Read = message.Seen }; messageSummaries.Add(messageSummary); } messageSummaries.Reverse(); // Most recent first. viewModel.MessageSummaries = messageSummaries; client.Disconnect(); } ViewBag.Message = " - " + type; return(View("MessageList", viewModel)); }