public void AddRelationshipEvents(MailMessageItem item) { var factory = new DaoFactory(CoreContext.TenantManager.GetCurrentTenant().TenantId, CRMConstants.DatabaseId); foreach (var contactEntity in item.LinkedCrmEntityIds) { switch (contactEntity.Type) { case ChainXCrmContactEntity.EntityTypes.Contact: var crmContact = factory.GetContactDao().GetByID(contactEntity.Id); CRMSecurity.DemandAccessTo(crmContact); break; case ChainXCrmContactEntity.EntityTypes.Case: var crmCase = factory.GetCasesDao().GetByID(contactEntity.Id); CRMSecurity.DemandAccessTo(crmCase); break; case ChainXCrmContactEntity.EntityTypes.Opportunity: var crmOpportunity = factory.GetDealDao().GetByID(contactEntity.Id); CRMSecurity.DemandAccessTo(crmOpportunity); break; } var fileIds = new List<int>(); foreach (var attachment in item.Attachments.FindAll(attach => !attach.isEmbedded)) { using (var file = AttachmentManager.GetAttachmentStream(attachment)) { var uploadedFileId = ApiHelper.UploadToCrm(file.FileStream, file.FileName, attachment.contentType, contactEntity); if (uploadedFileId > 0) { fileIds.Add(uploadedFileId); } } } var contentString = GetHistoryContentJson(item); ApiHelper.AddToCrmHistory(item, contactEntity, contentString, fileIds); } }
public void LinkChainToCrm(int id_message, int id_tenant, string id_user, List<CrmContactEntity> contact_ids) { var factory = new DaoFactory(CoreContext.TenantManager.GetCurrentTenant().TenantId, CRMConstants.DatabaseId); foreach (var crm_contact_entity in contact_ids) { switch (crm_contact_entity.Type) { case ChainXCrmContactEntity.EntityTypes.Contact: var crm_contact = factory.GetContactDao().GetByID(crm_contact_entity.Id); CRMSecurity.DemandAccessTo(crm_contact); break; case ChainXCrmContactEntity.EntityTypes.Case: var crm_case = factory.GetCasesDao().GetByID(crm_contact_entity.Id); CRMSecurity.DemandAccessTo(crm_case); break; case ChainXCrmContactEntity.EntityTypes.Opportunity: var crm_opportunity = factory.GetDealDao().GetByID(crm_contact_entity.Id); CRMSecurity.DemandAccessTo(crm_opportunity); break; } } using (var db = GetDb()) { var chain_info = GetMessageChainInfo(db, id_tenant, id_user, id_message); MarkChainAsCrmLinked(db, chain_info.id, chain_info.mailbox, id_tenant, contact_ids); AddChainMailsToCrmHistory(db, chain_info, id_tenant, id_user, contact_ids); } }
public void AddRelationshipEvents(MailMessageItem item) { CoreContext.TenantManager.SetCurrentTenant(TenantId); var factory = new DaoFactory(CoreContext.TenantManager.GetCurrentTenant().TenantId, CRMConstants.DatabaseId); foreach (var contact_entity in item.LinkedCrmEntityIds) { switch (contact_entity.Type) { case ChainXCrmContactEntity.EntityTypes.Contact: var crm_contact = factory.GetContactDao().GetByID(contact_entity.Id); CRMSecurity.DemandAccessTo(crm_contact); break; case ChainXCrmContactEntity.EntityTypes.Case: var crm_case = factory.GetCasesDao().GetByID(contact_entity.Id); CRMSecurity.DemandAccessTo(crm_case); break; case ChainXCrmContactEntity.EntityTypes.Opportunity: var crm_opportunity = factory.GetDealDao().GetByID(contact_entity.Id); CRMSecurity.DemandAccessTo(crm_opportunity); break; } var file_ids = StoreAttachmentsToCrm(item, contact_entity); var content_string = GetHistoryContentJson(item); AddRelationshipEventWithCrmApi(item, contact_entity, content_string, file_ids); } }