Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

SPMeeting.Add - Méthode (String, String, Int16, Int32, String, String[])

Ajoute une instance de réunion représentée dans le format de calendrier Internet (iCalendar) sur le site d'espace de travail de réunion en cours.

Espace de noms :  Microsoft.SharePoint.Meetings
Assembly :  Microsoft.SharePoint (dans Microsoft.SharePoint.dll)

public int Add(
	string icalText,
	string organizer,
	out short nMeetingCount,
	out int attendeeUpdateStatus,
	out string attendeeUpdateMessage,
	out string[] AttendeeEmailsUnresolved
)

Paramètres

icalText
Type : System.String

string qui contient la représentation sous forme de iCalendar d'une réunion.

organizer
Type : System.String

string qui contient l'adresse de messagerie de l'organisateur de la réunion, spécifiée en tant que email_address@domain.ext. Ce paramètre est utilisé dans les scénarios de délégué. Si l'organisateur de la réunion n'est pas un délégué, vous pouvez passer une chaîne vide. Dans ce cas, l'utilisateur qui exécute l'application est considéré comme l'organisateur de la réunion.

nMeetingCount
Type : System.Int16

Une référence vers une variable qui reçoit le nombre total d'instances de réunion qui sont associés à l'espace de travail de réunion en cours ou, dans le cas d'une réunion périodique, une valeur qui est égale à la constante MeetingCountRecurring .

attendeeUpdateStatus
Type : System.Int32

Une référence à une variable qui doit recevoir la mise à jour de l'état des participants. Les valeurs possibles sont répertoriés dans le tableau suivant.

Valeur

Description

0

Aucune erreur ne s'est produite.

-2130575232

Certains participants n'a pas peuvent être accordés autorisé à accéder à l'espace de travail.

-2130575231

Certains participants n'ont pas été ajoutées en raison de la limite de quota de l'utilisateur.

attendeeUpdateMessage
Type : System.String

Une référence à une variable qui recevra le message de mise à jour du participant.

AttendeeEmailsUnresolved
Type : []

Une référence à une variable tableau qui recevra les adresses de messagerie qui ne parviennent pas à être résolu en tant qu'utilisateurs de SharePoint Foundation.

Valeur renvoyée

Type : System.Int32
L'ID d'instance de la réunion. Si la chaîne iCalendar représente une réunion périodique, la valeur de retour est 0. Dans le cas contraire, la valeur de retour est supérieure à 0.

Cette surcharge de la méthode Add accepte les données d'événement dans le format défini par RFC 2445, « Calendrier Internet et spécification d'objet noyau planification (iCalendar) ». De nombreuses applications de planification peuvent exporter des données d'événement au format iCalendar , y compris le calendrier de Windows de Microsoft.

La méthode Add crée une nouvelle instance de la réunion dans le site espace de travail de réunion. Un rendez-vous n'est pas ajouté au calendrier SharePoint Foundation .

L'exemple suivant est une application console qui lit le texte à partir d'un fichier iCalendar dans une variable string et transmet ensuite la variable à la méthode Add .

Avant d'exécuter l'application console, enregistrer le texte suivant dans un fichier nommé Test Sharepoint.ics, puis le placez dans le répertoire bin\Debug de l'application.

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Microsoft Corporation//Windows Calendar 1.0//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VTIMEZONE
TZID:Pacific Time (US & Canada)
BEGIN:STANDARD
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
TZNAME:Pacific Standard Time
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
TZNAME:Pacific Daylight Time
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20090224T222033Z
DTSTART;TZID=Pacific Time (US & Canada):20100301T130000
DTEND;TZID=Pacific Time (US & Canada):20100301T133000
RRULE:FREQ=WEEKLY;COUNT=5;BYDAY=MO,TU,WE,TH,FR
SUMMARY:Test Sharepoint
UID:0EE4D0CD-305A-4ED3-B530-0350A89CC324
END:VEVENT
END:VCALENDAR
using System;
using System.IO;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Meetings;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         using (SPSite site = new SPSite("http://localhost"))
         {
            using (SPWeb web = site.OpenWeb())
            {
               string fileName = "Test Sharepoint.ics";
               string workspaceName = fileName.Substring(0, fileName.Length - 4);

               // Create a Meeting Workspace site.
               SPWeb mwsWeb = CreateWorkspace(web, 0, workspaceName, workspaceName, "This is a test workspace.");

               // Get the meeting information for the workspace.
               SPMeeting meeting = SPMeeting.GetMeetingInformation(mwsWeb);

               // Get an iCalendar event.
               string icalText = ReadICal(fileName);

               if (!String.IsNullOrEmpty(icalText))
               {
                  // Create output parameters.
                  short meetingCount;
                  int attendeeUpdateStatus;
                  string attendeeUpdateMessage;
                  string[] attendeeEmailsUnresolved;

                  // Add the meeting.
                  try
                  {
                     int instanceID = meeting.Add(icalText,
                                                  String.Empty,
                                                  out meetingCount,
                                                  out attendeeUpdateStatus,
                                                  out attendeeUpdateMessage,
                                                  out attendeeEmailsUnresolved);

                     // Interpret the attendeeUpdateStatus output.
                     string updateStatus;
                     switch (attendeeUpdateStatus)
                     {
                        case -2130575232:
                           updateStatus =
                              "Some attendees could not be granted permission to access the workspace.";
                           break;
                        case -2130575231:
                           updateStatus = "Some attendees were not added due to user quota limit.";
                           break;
                        default:
                           updateStatus = "No errors.";
                           break;
                     }
                     // Print the URL and number of meetings.
                     string mswUrl = mwsWeb.Url + "/default.aspx?InstanceID=" + instanceID.ToString();
                     Console.WriteLine(mswUrl);
                     Console.WriteLine("Meeting count: {0} | Update status: {1}", meetingCount, updateStatus);
                  }
                  catch (Exception ex)
                  {
                     Console.WriteLine(ex.Message);
                  }
               }
               // Clean up
               mwsWeb.Dispose();
            }
         }
         Console.Write("\nPress ENTER to continue...");
         Console.ReadLine();
      }

      static SPWeb CreateWorkspace(SPWeb parentWeb, uint templateNumber, string internalName, string title, string description)
      {
         if (5 <= templateNumber)
            throw new ArgumentException("The templateNumber argument must be less than 5.");

         string templateName = SPWebTemplate.WebTemplateMWS + "#" + templateNumber.ToString();

         if (String.IsNullOrEmpty(title))
            title = "Untitled";

         string mwsName = MakeUniqueName(parentWeb.Webs.Names, internalName);

         uint language = (uint)parentWeb.Locale.LCID;

         return parentWeb.Webs.Add(mwsName, title, description, language, templateName, false, false);
      }

      static string MakeUniqueName(string[] names, string name)
      {
         string newName = name.Replace(";", "").Replace("'", "");
         string baseName = name;
         int n = 0;

         int pos = name.LastIndexOf('(');
         if (pos > -1 & name.EndsWith(")"))
         {
            baseName = name.Substring(0, pos);
            string ext = name.Substring(baseName.Length + 1).Replace(")", "");
            bool IsNumber = int.TryParse(ext, out n);
            if (IsNumber) n++;
         }

         int i = Array.IndexOf(names, name);
         if (i >= 0)
         {
            baseName = baseName + "(" + n.ToString() + ")";
            newName = MakeUniqueName(names, baseName);
         }
         return newName;
      }

      static string ReadICal(string fileName)
      {
         StringBuilder sb = new StringBuilder();
         if (!File.Exists(fileName))
         {
            Console.WriteLine("{0} does not exist.", fileName);
            return sb.ToString();
         }
         using (StreamReader sr = File.OpenText(fileName))
         {
            String input;
            while ((input = sr.ReadLine()) != null)
            {
               sb.AppendLine(input);
            }
            sr.Close();
         }
         return sb.ToString();
      }
   }
}

Afficher: