private UpdateReport <int> RemoveFromMailrelayGroup(UpdateReport <int> report, List <getSubscribersReply> subscribersToRemoveFromMailrelay, Subscriber subscriber, int groupInCrm) { foreach (getSubscribersReply reply in subscribersToRemoveFromMailrelay) { reply.groups.RemoveAll(groupString => groupString == groupInCrm.ToString()); if (reply.groups.Any() == false) { reply.groups.Add("1"); } MailrelayBoolReply updateReply = subscriber.UpdateFromReply(reply); if (updateReply.status == 0) { report.CollectUpdate(UpdateResultEnum.Failed, int.Parse(reply.id)); } else { report.CollectUpdate(UpdateResultEnum.Updated, int.Parse(reply.id)); } } return(report); }
private void UpdateIfNeeded(DynamicsCrmConnection dynamicsCrmConnection, MailrelayInformation information, UpdateReport <int> report) { bool needsUpdate = information.RecalculateContactCheck(); int id = information.new_mailrelaysubscriberid.Value; if (needsUpdate == false) { report.CollectUpdate(UpdateResultEnum.AlreadyUpToDate, id); return; } information.UpdateContactMailrelaycheck(dynamicsCrmConnection); Subscriber subscriber = new Subscriber(_mailrelayConnection); UpdateResultEnum result = subscriber.UpdateIfNeeded(id, information.fullname, information.emailaddress1, information.GetCustomFields()); report.CollectUpdate(result, id); }
private void AddToMailrelayGroup(DynamicsCrmConnection dynamicsCrmConnection, UpdateReport <int> report, Subscriber subscriber, List <KeyValueEntity <Guid, int?> > crmIdsAndSubscriberIds, int groupInCrm) { foreach (KeyValueEntity <Guid, int?> idPair in crmIdsAndSubscriberIds) { MailrelayInformation mailrelayInformation = MailrelayInformation.GetMailrelayFromContact(dynamicsCrmConnection, Config.GetResourcePath, new PagingInformation(), 1, idPair.key).Single(); UpdateResultEnum result = subscriber.UpdateIfNeeded(idPair.value.Value, mailrelayInformation.fullname, mailrelayInformation.emailaddress1, mailrelayInformation.GetCustomFields(), groupInCrm); report.CollectUpdate(result, idPair.value.Value); } }
private UpdateReport <Guid> ExportMailrelayContactFromList(DynamicsCrmConnection dynamicsCrmConnection, MarketingList marketingList) { if (marketingList.new_mailrelaygroupid.HasValue == false) { marketingList.new_mailrelaygroupid = Subscriber.CreateGroup(_mailrelayConnection, $"crm_{marketingList.listname}", "crm kontrolleret gruppe"); marketingList.UpdateMailrelaygroupid(dynamicsCrmConnection); } IEnumerable <Guid> contactIdsToUpdate = marketingList.ContentIdsForNonMailrelaySubscribers; UpdateReport <Guid> updateReport = new UpdateReport <Guid>(); foreach (Guid contactId in contactIdsToUpdate) { MailrelayInformation mailrelayInformation = MailrelayInformation.GetInformationNotInMailrelayFromContact(dynamicsCrmConnection, Config.GetResourcePath, contactId); UpdateResultEnum result = AddToMailrelay(dynamicsCrmConnection, mailrelayInformation, marketingList.new_mailrelaygroupid.Value); updateReport.CollectUpdate(result, contactId); } return(null); }