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-

  1. 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);

  2. 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

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -