emailservices/nmclientapi/src/nmapitypesconverter.cpp
changeset 75 47d84de1c893
parent 54 997a02608b3a
child 74 6c59112cfd31
--- a/emailservices/nmclientapi/src/nmapitypesconverter.cpp	Fri Sep 17 08:27:21 2010 +0300
+++ b/emailservices/nmclientapi/src/nmapitypesconverter.cpp	Mon Oct 04 00:05:37 2010 +0300
@@ -60,11 +60,14 @@
     
     QList<NmAddress> to = envelope.toRecipients();
     QList<NmAddress> cc = envelope.ccRecipients();
+    QList<NmAddress> bcc = envelope.bccRecipients();
     QList<EmailClientApi::NmApiEmailAddress> to_api = NmAddress2QString(to);
     QList<EmailClientApi::NmApiEmailAddress> cc_api = NmAddress2QString(cc);
+    QList<EmailClientApi::NmApiEmailAddress> bcc_api = NmAddress2QString(bcc);
 
     api_env.setToRecipients(to_api);
     api_env.setCcRecipients(cc_api);
+    api_env.setBccRecipients(bcc_api);
 
     api_env.setHasAttachments(envelope.hasAttachments());
     api_env.setId(envelope.messageId().id());
@@ -76,6 +79,8 @@
     api_env.setSender(envelope.sender().address());
     api_env.setSentTime(envelope.sentTime());
     api_env.setSubject(envelope.subject());
+    api_env.setMailboxId(envelope.messageId().id());
+    api_env.setFlags(static_cast<EmailClientApi::NmApiMessageFlags>(static_cast<int>(envelope.flags())), true);
 
     return api_env;
 }
@@ -100,3 +105,55 @@
     return nmAddresses;
 }
 
+/*!
+   converts nmmessage to client api NmApiMessage
+ */
+EmailClientApi::NmApiMessage NmToApiConverter::NmMessage2NmApiMessage(NmMessage &message)
+{
+    NM_FUNCTION;
+    
+    EmailClientApi::NmApiMessage api_message;
+    QList<NmMessagePart*> attachments;
+    message.attachmentList(attachments);
+
+    if (attachments.size() > 0){
+        QList<EmailClientApi::NmApiAttachment> api_attachments; 
+        for (int i = 0; i < attachments.size(); i++){
+            NmMessagePart *part = attachments.at(i);
+            if (part->contentType().compare(EmailClientApi::NmApiContentTypeTextPlain) != 0 && 
+                part->contentType().compare(EmailClientApi::NmApiContentTypeTextHtml) != 0) {
+                EmailClientApi::NmApiAttachment api_attachment;
+                api_attachment.setFileName(part->attachmentName());
+                api_attachment.setId(part->partId().id());
+                api_attachment.setContentType(part->contentType());
+                api_attachment.setSize(part->size());
+                api_attachments.append(api_attachment);
+            }
+        }
+        api_message.setAttachments(api_attachments);
+    }
+    
+    EmailClientApi::NmApiMessageEnvelope api_envelope = NmMessageEnvelope2NmApiMessageEnvelope(message.envelope());
+    api_message.setEnvelope(api_envelope);
+    const NmMessagePart *plaintext = message.plainTextBodyPart();
+    if (plaintext) {
+        EmailClientApi::NmApiTextContent api_plaintext;
+        api_plaintext.setContent(plaintext->textContent());
+        api_plaintext.setId(plaintext->partId().id());
+        api_plaintext.setContentType(plaintext->contentType());
+        api_plaintext.setSize(plaintext->size());
+        api_message.setPlainTextContent(api_plaintext);
+    }
+    
+    const NmMessagePart *htmlcontent = message.htmlBodyPart();
+    if (htmlcontent) {
+        EmailClientApi::NmApiTextContent api_htmlcontent;
+        api_htmlcontent.setContent(htmlcontent->textContent());
+        api_htmlcontent.setId(htmlcontent->partId().id());
+        api_htmlcontent.setContentType(htmlcontent->contentType());
+        api_htmlcontent.setSize(htmlcontent->size());
+        api_message.setHtmlContent(api_htmlcontent);
+    }
+    
+    return api_message;
+}