casting objects in c# (Exchange Web Services Item to Email) -
i cannot work out how can need do.
i have method called 'markasread' takes itemid , should mark mail item read.
but seems item doesn't have 'isread' proeprty, email does, need cast exchange webservices mail item email message.
here code:
try {
system.diagnostics.debugger.break(); //creates object represent desired mailbox mailbox mb = new mailbox(common.strinboxurl); //creates folder object point inbox fold folderid fid = new folderid(wellknownfoldername.inbox, mb); //this bind mailbox you're looking using service instance microsoft.exchange.webservices.data.folder inbox = microsoft.exchange.webservices.data.folder.bind(service, fid); //// if property not loaded yet, first load //mail.load(propertyset(basepropertyset.idonly, emailmessageschema.isread)); //if (!mail.isread) // check don't update , create unneeded traffic //{ // mail.isread = true; // mark read // mail.update(conflictresolutionmode.autoresolve); // persist changes //} // best practice, limit properties returned required. propertyset propset = new propertyset(basepropertyset.idonly, itemschema.subject); // bind existing item using itemid. // method call results in getitem call ews. item item = item.bind(service, itemid, propset); emailmessage mail = item.bind(service, itemid, propset); item.load(new propertyset(basepropertyset.idonly,emailmessageschema.isread)); item.isread = true; item.update(conflictresolutionmode.alwaysoverwrite); return true; }
i trying this:
// if property not loaded yet, first load mail.load(propertyset(basepropertyset.idonly, emailmessageschema.isread)); if (!mail.isread) // check don't update , create unneeded traffic { mail.isread = true; // mark read mail.update(conflictresolutionmode.autoresolve); // persist changes }
unfortunately need able unique email message item.
how can please?
philip-
you can add emailmessageschema.isread property set, can in bind call, , don't have call load @ all.
propertyset propset = new propertyset(basepropertyset.idonly, itemschema.subject, emailmessageschema.isread);
the emailclass derives item class, bind works on both. can following:
emailmessage mail = emailmessage.bind(service, itemid, propset);
put , you've got this:
propertyset propset = new propertyset(basepropertyset.idonly, itemschema.subject, emailmessageschema.isread); emailmessage mail = emailmessage.bind(service, itemid, propset); if (!mail.isread) // check don't update , create unneeded traffic { mail.isread = true; // mark read mail.update(conflictresolutionmode.autoresolve); // persist changes }
Comments
Post a Comment