IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[EWS] Update contact [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Par défaut [EWS] Update contact
    Bonjour à tous,

    J'essaye de modifier un contact se trouvant dans exchange via une application C# en passant par exchange web services. A l'exécution une exception est levée et son contenu est le suivant :

    L'identificateur EWS est au format EwsLegacyId, lequel n'est pas pris en charge par la version Exchange indiquée par votre demande. Veuillez utiliser la méthode ConvertId pour convertir le format EwsLegacyId en EwsId.

    J'ai essayé différentes méthodes pour convertir EwsLegacyId en EwsId sans succès.

    Merci d'avance pour votre réponse et voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    ExchangeService _service = new ExchangeService(ExchangeVersion.Exchange2010);
                _service.Credentials = new WebCredentials("user", "password");
                _service.Url = new Uri("https://mail.domain.com/ews/exchange.asmx");
     
                Contact contact = Contact.Bind(_service, labelId.Content.ToString());
     
     
                // Update the contact's surname and company name.
                contact.Surname = textBoxNom.Text;
                contact.GivenName = textBoxPrenom.Text;
     
                // Update the contact's phone number.
                contact.PhoneNumbers[PhoneNumberKey.BusinessPhone] = textBoxNumTelEntreprise.Text;
                contact.PhoneNumbers[PhoneNumberKey.HomePhone] = textBoxNumTelPrive.Text;
                contact.PhoneNumbers[PhoneNumberKey.MobilePhone] = textBoxNumTelMobile.Text;
                contact.PhoneNumbers[PhoneNumberKey.BusinessPhone2] = textBoxNumTelEntrepriseMobile.Text;
     
                // Update the contact'semail address.
                contact.EmailAddresses[EmailAddressKey.EmailAddress2] = new Microsoft.Exchange.WebServices.Data.EmailAddress(textBoxMailFirst.Text);
                contact.EmailAddresses[EmailAddressKey.EmailAddress2] = new Microsoft.Exchange.WebServices.Data.EmailAddress(textBoxMailSec.Text);
     
                // Update the contact's business address.
                // Specify the home address.
                PhysicalAddressEntry paEntry1 = new PhysicalAddressEntry();
                paEntry1.Street = textBoxRuePerso.Text;
                paEntry1.City = textBoxVillePerso.Text;
                paEntry1.State = "";
                paEntry1.PostalCode = textBoxCpPerso.Text;
                paEntry1.CountryOrRegion = textBoxPaysPerso.Text;
                contact.PhysicalAddresses[PhysicalAddressKey.Home] = paEntry1;
     
                // Specify the business address.
                PhysicalAddressEntry paEntry2 = new PhysicalAddressEntry();
                paEntry2.Street = textBoxRuePro.Text;
                paEntry2.City = textBoxVillePro.Text;
                paEntry2.State = "";
                paEntry2.PostalCode = textBoxCpPro.Text;
                paEntry2.CountryOrRegion = textBoxPaysPro.Text;
                contact.PhysicalAddresses[PhysicalAddressKey.Business] = paEntry2;
     
                // Save the contact.
                contact.Update(ConflictResolutionMode.AlwaysOverwrite);

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Bonjour,

    peut-être une piste de ce côté mais c'est clair qu'on ne trouve pas beaucoup d'info sur le sujet...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    Bonjour,

    peut-être une piste de ce côté mais c'est clair qu'on ne trouve pas beaucoup d'info sur le sujet...
    Merci mais rien de concluant

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Par défaut
    Voici la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    ExchangeServiceBinding esb = new ExchangeServiceBinding();
                esb.Credentials = new NetworkCredential("user", "password", "DOMAIN");
                esb.RequestServerVersionValue = new RequestServerVersion();
                esb.RequestServerVersionValue.Version = ExchangeVersionType.Exchange2010_SP2;
                esb.Url = @"https://mail.domain.com/EWS/Exchange.asmx";
     
    //Je récupère l'id qui est au format Legacy
                ItemId itemId = textBoxId.Text;
     
                // Create a request to convert identifiers.
                ConvertIdType request = new ConvertIdType();
                request.SourceIds = new AlternateIdType[1];
                request.SourceIds[0] = new AlternateIdType();
     
                // Convert EwsLegacyId to EwsId.
                request.SourceIds[0].Format = IdFormatType.EwsLegacyId;
                (request.SourceIds[0] as AlternateIdType).Id = itemId.ToString();
                (request.SourceIds[0] as AlternateIdType).Mailbox = "mail@domain.com";
                request.DestinationFormat = IdFormatType.EwsId;
     
     
                    // Send the request and get the response.
                    ConvertIdResponseType response = esb.ConvertId(request);
     
                    ResponseMessageType[] rmta = response.ResponseMessages.Items;
     
                    foreach (ResponseMessageType rmt in rmta)
                    {
                        ConvertIdResponseMessageType cirmt = (rmt as ConvertIdResponseMessageType);
                        AlternateIdType myId = (cirmt.AlternateId as AlternateIdType);
                        if (myId != null)
                        {
                            string format = myId.Format.ToString();
                            string identifier = myId.Id;
                            textBoxId.Text = identifier;
                            string mailbox = myId.Mailbox;
                        }
                    }
                    string id = textBoxId.Text;
                Contact contact = Contact.Bind(_service, id);
     
     
     
     
                // Update the contact's surname and company name.
                contact.Surname = textBoxNom.Text;
                contact.GivenName = textBoxPrenom.Text;
     
                // Update the contact's business phone number.
                contact.PhoneNumbers[PhoneNumberKey.BusinessPhone] = textBoxNumTelEntreprise.Text;
                contact.PhoneNumbers[PhoneNumberKey.HomePhone] = textBoxNumTelPrive.Text;
                contact.PhoneNumbers[PhoneNumberKey.MobilePhone] = textBoxNumTelMobile.Text;
                contact.PhoneNumbers[PhoneNumberKey.BusinessPhone2] = textBoxNumTelEntrepriseMobile.Text;
     
                // Update the contact's second email address.
                contact.EmailAddresses[EmailAddressKey.EmailAddress1] = new Microsoft.Exchange.WebServices.Data.EmailAddress(textBoxMailFirst.Text);
                contact.EmailAddresses[EmailAddressKey.EmailAddress2] = new Microsoft.Exchange.WebServices.Data.EmailAddress(textBoxMailSec.Text);
     
                PhysicalAddressEntry paEntryHome = null;
                PhysicalAddressEntry paEntryBusiness = null;
     
                paEntryHome = contact.PhysicalAddresses[PhysicalAddressKey.Home];
     
                paEntryBusiness = contact.PhysicalAddresses[PhysicalAddressKey.Business];
     
                //Specifi the home address
                paEntryHome.Street = textBoxRuePerso.Text;
                paEntryHome.City = textBoxVillePerso.Text;
                paEntryHome.State = "";
                paEntryHome.PostalCode = textBoxCpPerso.Text;
                paEntryHome.CountryOrRegion = textBoxPaysPerso.Text;
     
                // Specify the business address.
                paEntryBusiness.Street = textBoxRuePro.Text;
                paEntryBusiness.City = textBoxVillePro.Text;
                paEntryBusiness.State = "";
                paEntryBusiness.PostalCode = textBoxCpPro.Text;
                paEntryBusiness.CountryOrRegion = textBoxPaysPro.Text;
     
                // Save the contact.
                try
                {
                    contact.Update(ConflictResolutionMode.AlwaysOverwrite);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête update à partir d'une autre table
    Par amiral thrawn dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/02/2024, 11h40
  2. Réponses: 1
    Dernier message: 27/02/2014, 23h10
  3. [dBase]il y a mieux que la commande sql UPDATE ?
    Par sana72 dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 12/12/2002, 11h59
  4. Réponses: 3
    Dernier message: 10/11/2002, 11h03
  5. update et virgule
    Par Delph dans le forum Bases de données
    Réponses: 8
    Dernier message: 27/08/2002, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo