Example #1
0
        public void ExportMessageToCrm(int id_message, IEnumerable <CrmContactEntity> crm_contact_ids)
        {
            if (id_message < 0)
            {
                throw new ArgumentException(@"Invalid message id", "id_message");
            }
            if (crm_contact_ids == null)
            {
                throw new ArgumentException(@"Invalid contact ids list", "crm_contact_ids");
            }

            var messageItem = MailBoxManager.GetMailInfo(TenantId, Username, id_message, new MailMessage.Options
            {
                LoadImages    = true,
                LoadBody      = true,
                NeedProxyHttp = false
            });

            messageItem.LinkedCrmEntityIds = crm_contact_ids.ToList();

            var scheme = HttpContext.Current == null ? Uri.UriSchemeHttp : HttpContext.Current.Request.GetUrlRewriter().Scheme;

            var crmDal = new CrmHistoryDal(TenantId, Username, scheme);

            crmDal.AddRelationshipEvents(messageItem);
        }
Example #2
0
        private void AddChainMailsToCrmHistory(DbManager db, ChainInfo chainInfo, int tenant, string user,
                                               List <CrmContactEntity> contactIds)
        {
            var searchFolders = new List <int> {
                MailFolder.Ids.inbox, MailFolder.Ids.sent
            };
            var selectChainedMails = GetQueryForChainMessagesSelection(chainInfo.mailbox, chainInfo.id, searchFolders);
            var crmDal             = new CrmHistoryDal(tenant, user);
            var linkingMessages    = db.ExecuteList(selectChainedMails)
                                     .ConvertAll(record =>
            {
                var item = GetMailInfo(db, tenant, user, Convert.ToInt32(record[0]), true, true);
                item.LinkedCrmEntityIds = contactIds;
                return(item);
            });

            foreach (var message in linkingMessages)
            {
                try
                {
                    crmDal.AddRelationshipEvents(message);
                }
                catch (ApiHelperException ex)
                {
                    if (!ex.Message.Equals("Already exists"))
                    {
                        throw;
                    }
                }
            }
        }
        private void AddChainMailsToCrmHistory(DbManager db, ChainInfo chainInfo, int tenant, string user, List <CrmContactEntity> contactIds)
        {
            var searchFolders = new List <int> {
                MailFolder.Ids.inbox, MailFolder.Ids.sent
            };
            var selectChainedMails = GetQueryForChainMessagesSelection(chainInfo.mailbox, chainInfo.id, searchFolders);
            var crmDal             = new CrmHistoryDal(tenant, user);

            db.ExecuteList(selectChainedMails)
            .ConvertAll(record =>
            {
                var item = GetMailInfo(db, tenant, user, Convert.ToInt32(record[0]), true, true);
                item.LinkedCrmEntityIds = contactIds;
                return(item);
            })
            .ForEach(crmDal.AddRelationshipEvents);
        }
        public void ExportMessageToCrm(int id_message, IEnumerable <CrmContactEntity> crm_contact_ids)
        {
            if (id_message < 0)
            {
                throw new ArgumentException(@"Invalid message id", "id_message");
            }
            if (crm_contact_ids == null)
            {
                throw new ArgumentException(@"Invalid contact ids list", "crm_contact_ids");
            }

            var messageItem = MailBoxManager.GetMailInfo(TenantId, Username, id_message, true, true);

            messageItem.LinkedCrmEntityIds = crm_contact_ids.ToList();

            var crmDal = new CrmHistoryDal(TenantId, Username);

            crmDal.AddRelationshipEvents(messageItem);
        }