Bonjour à tous,
je suis en train de réaliser un programme d'export des Contacts + Distributions Lists de Outlook et les stocker dans une BD Oracle.
J'exporte dans un premier temps les contacts
http://morpheus.developpez.com/vsto2/#LVI-B
avec le filtre suivant:
mapiFolder.Items.Restrict([MessageClass] = \"IPM.Contact\);
une fois cela fait, j'aimerais maintenant exporter mes "Distribution Lists".
je fais cela avec le filtre suivant:
mapiFolder.Items.Restrict("[MessageClass] = \"IPM.DistList\"");
je parse mes distribution list et les stocke avec l'aide de la librairie Redemption comme cela:
1 2 3 4 5 6 7 8
| foreach (DistListItem distributionListItem in distributionListItems)
{
//use of Redemption to avoid a security message when accessing to contacts list
var safeList = new SafeDistList();
safeList.Item = distributionListItem;
var safeDistListExtended = new SafeDistListExtended(safeList, distributionListItem.DLName); |
Une fois que j'ai "lu" toutes mes distributions lists, il est maintenant temps de passer à l'insert en BD.
1ère chose, vérifier ce que contient chaque distribution List, c'est à dire des contacts ou/et des distribution lists qui elle mêmes peuvent contenir des contacts/distribution lists, etc...
1 2 3 4 5 6 7 8 9 10 11 12 13
| var recipients = new List<SafeRecipient>();
for (int counterMember = 1; counterMember <= pSafeDistListExtended.DistList.MemberCount; counterMember++)
{
SafeRecipient safeRecipient = pSafeDistListExtended.DistList.GetMember(counterMember);
safeRecipient.Resolve();
if (safeRecipient.Resolved)
{
recipients.Add(safeRecipient);
}
} |
mon problème est là, j'arrive à récupérer les contactItems inclus dans ma distribution List, mais je n'arrive à récupérer des distributions list incluses uniquement le nom.
Ce que j'aimerais c'est que lorsque je parse ma boucle GetMember, je "caste" en un type "Distribution List" si effectivement c'est le cas et je pourrais ensuite travailler sur cette "Distribution List" incluse.
Car là, je vois uniquement tout ce qui est inclus dans une distribution list comme un objet du même type.
Quelqu'un aurait-il une idée/recommendation pour faire cela ??
A signaler que la façon de reprendre les Contacts avec une boucle sur puis est vraiment mal faite alors qu'on pourrait s'attendre à une hiérarchie d'objets. Une Distribution List contenant des Contact Items +/ou Distribution Lists et ainsi de suite.
Merci d'avane pour votre aide.
Partager