creation de tache outlook

creation de tache outlook - C#/.NET managed - Programmation

Marsh Posté le 06-03-2007 à 17:05:34    

Bonjour, j'ai créé un Webservice me permettant d'interagir avec une base Exchange via CDO, hors si mon webservice un fois renseigné m'écris bien dans le bon calendrier, je m'aperçois que le format qu'il vient d'envoyer n'est pas le bon et que le fichier n'est donc pas pris correctement.  
Je ne connais pas exactement le format de donnée utilisé pour les taches, j'ai fait la même pour des rendez vous qui marche a peu près correctement, mais les taches restent un mystère.
quelqu'un pourrait il m'aguiller sur le manière donc je devrai ou encore me renseigner sur le schema dav exact d'une tache (outlook task), le site de la msdn est pour le moins évasif a ce sujet.
 
Merci d'avance
 

Code :
  1. public string AddTache (string destinataire,string dtstart, string dtend, string dtdue, string sujetTache, string descriptionTache)
  2.  {
  3.   string result = String.Empty;
  4.    // Core Task Properties
  5.   string cdoTaskStartDate = "{00062003-0000-0000-C000-000000000046}/0x00008104" ;
  6.   string cdoTaskDueDate = "{00062003-0000-0000-C000-000000000046}/0x00008105";
  7.   string cdoTaskPercentComplete = "{00062003-0000-0000-C000-000000000046}/0x00008102";
  8.   string cdoTaskComplete = "{00062003-0000-0000-C000-000000000046}/0x0000811c";
  9.   string cdoTaskDateCompleted = "{00062003-0000-0000-C000-000000000046}/0x0000810f";
  10.   string cdoTaskStatus = "{00062003-0000-0000-C000-000000000046}/0x00008101";
  11.   string cdoTaskState = "{00062003-0000-0000-C000-000000000046}/0x00008113";
  12.   string cdoTaskActualEffort = "{00062003-0000-0000-C000-000000000046}/0x00008110";
  13.   string cdoTaskEstimatedEffort = "{00062003-0000-0000-C000-000000000046}/0x00008111";
  14.   string cdoTaskMode = "{00062003-0000-0000-C000-000000000046}/0x00008518";
  15.   //Common Props
  16.   string cdoBillingInformation = "{00062008-0000-0000-C000-000000000046}/0x00008535";
  17.   string cdoCompanies ="{00062008-0000-0000-C000-000000000046}/0x00008539";
  18.   string cdoMileage = "{00062008-0000-0000-C000-000000000046}/0x00008534";
  19.   // Reminder Props
  20.   string cdoReminderDelta = "{00062008-0000-0000-C000-000000000046}/0x00008501";
  21.   string cdoReminderNextTime = "{00062008-0000-0000-C000-000000000046}/0x00008560";
  22.   string cdoReminderTime = "{00062008-0000-0000-C000-000000000046}/0x00008502";
  23.   string cdoReminderSet = "{00062008-0000-0000-C000-000000000046}/0x00008502";
  24.   string sURL = string.Empty;
  25.   try
  26.   {
  27.     sURL = ConfigurationSettings.AppSettings["serveur"] + destinataire + "/t%C3%A2ches/" + Guid.NewGuid().ToString() + sujetTache +".eml";
  28.    ADODB.Connection oCn = new ADODB.Connection();
  29.    ADODB.Record oRc = new ADODB.Record();
  30.    ADODB.Fields oFields;
  31.    oCn.Provider = "exoledb.datasource";
  32.    oCn.Open(sURL, "", "", 0); 
  33.    if(oCn.State == 1)
  34.    {
  35.     result = result + "Connection Successful";
  36.    }
  37.    else
  38.    {
  39.     result = result + "Connection Unsuccessful";
  40.     return result;
  41.    }
  42.    oRc.Open(sURL, oCn,
  43.     ADODB.ConnectModeEnum.adModeReadWrite,
  44.     ADODB.RecordCreateOptionsEnum.adCreateOverwrite,
  45.     ADODB.RecordOpenOptionsEnum.adOpenSource,
  46.     "",
  47.     ""
  48.     );
  49.    oFields = oRc.Fields;
  50.    oFields["DAV:contentclass"].Value = "urn:content-classes:task";
  51.    oFields["http://schemas.microsoft.com/exchange/outlookmessageclass"].Value = "IPM.Task";
  52.    oFields["urn:schemas:httpmail:subject"].Value = sujetTache;
  53.    oFields["urn:schemas:httpmail:htmldescription"].Value = "MACH 4 CRM : " + descriptionTache + "<br/><a href='" + ConfigurationSettings.AppSettings["MACH4CRM_path"] + "'>"+ sURL + "</a><br/>Outlook Web Access :<a href='"+sURL+"?cmd=open' >" + sujetTache + "</a>";
  54.    oFields["urn:schemas:httpmail:textdescription"].Value = descriptionTache;
  55.    oFields[cdoTaskStartDate].Value = DateTime.Parse(dtstart);
  56.    oFields[cdoTaskDueDate].Value = DateTime.Parse(dtdue);
  57.    oFields[cdoTaskActualEffort].Value = 36000; // Minutes. This prop is really funky.
  58.    oFields[cdoTaskEstimatedEffort].Value = 72000; // Minutes This prop is also funky.
  59.    oFields[cdoReminderSet].Value = true;
  60.    oFields[cdoReminderDelta].Value = 1500; // 15 minutes.
  61.    oFields[cdoReminderNextTime].Value = DateTime.Parse(dtend);
  62.    //oFields.Update();
  63.    //oFields["urn:schemas-microsoft-comfficeffice#Keywords"].Value = Array("Mango", "Kiwi" );
  64.    oFields[cdoBillingInformation].Value = "MACH4";
  65.    //oFields[cdoCompanies].Value = {"MACH4"};
  66.    //oFields[cdoMileage].Value = "120";
  67.    //oFields.Append(cdoTaskStatus,ADODB.DataTypeEnum.adInteger,0 ,0 , 0);
  68.    //oFields.Append(cdoTaskPercentComplete, ADODB.DataTypeEnum.adDouble,0 ,0 , "0.0" );
  69.    oFields.Update();
  70.    oRc.Close();
  71.    oRc = null;
  72.    oFields = null;
  73.    oCn.Close();
  74.    oCn = null;
  75.   }
  76.   catch (Exception e)
  77.   {
  78.    return sURL + e.Message.ToString() + "<br/>" + e.Source.ToString() + e.HelpLink +e.InnerException;
  79.   }
  80.   return result;
  81.  }

Reply

Marsh Posté le 06-03-2007 à 17:05:34   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed