SPMeeting.LinkWithEvent - Méthode
Liens un site espace de travail de réunion à un élément défini sur une liste d'événements de calendrier dans un site Web de Microsoft SharePoint Foundation .
Espace de noms : Microsoft.SharePoint.Meetings
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
Public Function LinkWithEvent ( _
eventWeb As SPWeb, _
strEventListId As String, _
eventItemId As Integer, _
strEventWorkspaceLinkField As String, _
strEventWorkspaceLinkURLField As String _
) As String
'Utilisation
Dim instance As SPMeeting
Dim eventWeb As SPWeb
Dim strEventListId As String
Dim eventItemId As Integer
Dim strEventWorkspaceLinkField As String
Dim strEventWorkspaceLinkURLField As String
Dim returnValue As String
returnValue = instance.LinkWithEvent(eventWeb, _
strEventListId, eventItemId, strEventWorkspaceLinkField, _
strEventWorkspaceLinkURLField)
public string LinkWithEvent(
SPWeb eventWeb,
string strEventListId,
int eventItemId,
string strEventWorkspaceLinkField,
string strEventWorkspaceLinkURLField
)
Paramètres
eventWeb
Type : Microsoft.SharePoint.SPWebUn objet qui représente le site Web qui contient une liste qui contient l'élément d'événement.
strEventListId
Type : System.Stringstring qui identifie le composant de calendrier. Vous pouvez obtenir cette valeur en effectuant une conversion de chaîne de la valeur de la propriété SPList.ID de la liste d'événements.
eventItemId
Type : System.Int32Une valeur qui identifie l'élément de liste d'événements. Vous pouvez obtenir cette valeur de la propriété SPListItem.ID de l'élément de liste d'événements.
strEventWorkspaceLinkField
Type : System.StringLe nom interne du champ de l'élément de liste d'événements qui reçoit le lien. Pour un élément qui a le type de contenu Event , ce champ est identifié par l'identificateur de champ SPBuiltInFieldId.WorkspaceLink (ID) et a le nom interne « WorkspaceLink ».
strEventWorkspaceLinkURLField
Type : System.StringLe nom interne du champ de l'élément de liste d'événements qui affiche le nom de l'espace de travail. Pour un élément qui a le type de contenu Event , ce champ est identifié par l'ID de champ SPBuiltInFieldId.Workspace et porte le nom interne « Espace de travail ».
Valeur renvoyée
Type : System.String
L'URL pour le site d'espace de travail de réunion.
Remarques
La méthode LinkWithEvent renvoie un élément dans une liste d'événements, telles que la liste de Calendar par défaut, à un site espace de travail de réunion. Une liste d'événements est une liste qui a une valeur de propriété BaseTemplate égale à SPListTemplateType.Events. Un site espace de travail de réunion est un site Web pour lequel la méthode IsMeetingWorkspaceWeb(SPWeb) retourne true.
La méthode LinkWithEvent crée une nouvelle instance de la réunion dans le site espace de travail de réunion. La méthode place l'URL de l'instance de réunion dans le champ d'élément qui est spécifié dans le quatrième paramètre, strEventWorkspaceLinkFieldet place le nom de l'espace de travail de réunion dans le champ spécifié dans le cinquième paramètre, strEventWorkspaceLinkURLFieldd'événements. (Les noms de paramètres sont quelque peu trompeurs. N'oubliez pas de passer de l'URL pour le lien, puis le texte à afficher pour le lien.) Lorsque l'élément de liste est affiché sur un formulaire, l'URL de l'instance de réunion est affiché comme un lien et le nom de l'espace de travail est rendu en tant que texte du lien. Le lien permet à un utilisateur de naviguer à partir de l'élément dans la liste d'événements à l'espace de travail et de l'espace de travail à un élément de la liste.
Exemples
L'application console suivante montre comment ajouter un élément à la liste d'événements Calendar , créer un site espace de travail et puis de lier l'espace de travail pour l'élément de l'événement en appelant la méthode LinkWithEvent .
Imports System
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.Meetings
Module ConsoleApp
Sub Main()
Using siteCollection As SPSite = New SPSite("https://localhost")
Using webSite As SPWeb = siteCollection.OpenWeb()
' Get the calendar event list.
Dim lists As SPListCollection = webSite.Lists
Dim eventList As SPList = Nothing
Dim list As SPList
For Each list In lists
If list.BaseTemplate = SPListTemplateType.Events Then
eventList = list
Exit For
End If
Next
If eventList IsNot Nothing Then
' Add a new event to the calendar.
Dim eventTitle As String = "Test"
Dim eventLocation As String = "Your office"
Dim eventStart As DateTime = DateTime.Now.AddDays(7)
Dim eventDuration As Double = 0.5
Dim calendarEvent As SPListItem = AddEventToCalendar(eventList, eventTitle, _
eventLocation, eventStart, eventDuration)
' Create a meeting workspace Web site.
Dim mwsWeb As SPWeb = CreateMWSWeb(webSite, calendarEvent)
If mwsWeb IsNot Nothing Then
' Link the calendar event to the workspace.
Dim listId As String = eventList.ID.ToString("B")
Dim eventId As Integer = calendarEvent.ID
Dim meetingInfo As SPMeeting = SPMeeting.GetMeetingInformation(mwsWeb)
Dim mtgUrl As String = meetingInfo.LinkWithEvent(webSite, listId, eventId, _
"WorkspaceLink", "Workspace")
' Print the workspace URL to the console.
Console.WriteLine(mtgUrl)
' Clean up
mwsWeb.Dispose()
End If
End If
End Using
End Using
Console.Write(vbCrLf + "Press ENTER to continue...")
Console.ReadLine()
End Sub
Function AddEventToCalendar(ByRef calendar As SPList, ByVal title As String, ByVal location As String, _
ByVal start As DateTime, ByVal duration As Double) As SPListItem
Dim item As SPListItem = Nothing
' Test the list to be sure it is an events list .
If Nothing Is calendar Or calendar.BaseTemplate <> SPListTemplateType.Events Then
Return item
End If
' Add the new item to the events list .
item = calendar.Items.Add()
item(SPBuiltInFieldId.UID) = Guid.NewGuid()
item(SPBuiltInFieldId.Title) = title
item(SPBuiltInFieldId.Location) = location
item(SPBuiltInFieldId.StartDate) = start
item(SPBuiltInFieldId.EndDate) = start.AddHours(duration)
item(SPBuiltInFieldId.TimeZone) = calendar.ParentWeb.RegionalSettings.TimeZone.ID
item.Update()
Return item
End Function
Function CreateMWSWeb(ByRef webSite As SPWeb, ByVal calendarEvent As SPListItem) As SPWeb
Dim path As String = calendarEvent.Title
Dim workspaceTitle As String = calendarEvent.Title + " Workspace"
Dim description As String = "Meeting workspace"
Dim mwsWeb As SPWeb = Nothing
Try
mwsWeb = webSite.Webs.Add(path, workspaceTitle, _
description, 1033, "MPS#0", _
False, False)
Catch ex As SPException 'A site of that name already exists.
If SPMeeting.IsMeetingWorkspaceWeb(webSite.Webs(path)) Then
mwsWeb = webSite.Webs(path)
End If
End Try
Return mwsWeb
End Function
End Module
using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Meetings;
namespace Test
{
class ConsoleApp
{
static void Main(string[] args)
{
using (SPSite siteCollection = new SPSite("https://localhost"))
{
using (SPWeb webSite = siteCollection.OpenWeb())
{
// Get the calendar event list.
SPListCollection lists = webSite.Lists;
SPList eventList = null;
foreach (SPList list in lists)
{
if (list.BaseTemplate == SPListTemplateType.Events)
{
eventList = list;
break;
}
}
if (null != eventList)
{
// Add a new event to the calendar.
string eventTitle = "Test";
string eventLocation = "Your office";
DateTime eventStart = DateTime.Now.AddDays(7);
double eventDuration = 0.5;
SPListItem calendarEvent = AddEventToCalendar(eventList, eventTitle,
eventLocation, eventStart, eventDuration);
// Create a meeting workspace Web site.
SPWeb mwsWeb = CreateMWSWeb(webSite, calendarEvent);
if (null != mwsWeb)
{
// Link the calendar event to the workspace.
string listId = eventList.ID.ToString("B");
int eventId = calendarEvent.ID;
SPMeeting meetingInfo = SPMeeting.GetMeetingInformation(mwsWeb);
string mtgUrl = meetingInfo.LinkWithEvent(webSite, listId, eventId,
"WorkspaceLink", "Workspace");
// Print the workspace URL to the console.
Console.WriteLine(mtgUrl);
// Clean up
mwsWeb.Dispose();
}
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
static SPListItem AddEventToCalendar(SPList calendar, string title, string location,
DateTime start, Double duration)
{
SPListItem item = null;
// Test the list to be sure it is an events list .
if (null == calendar || calendar.BaseTemplate != SPListTemplateType.Events)
return item;
// Add the new item to the events list .
item = calendar.Items.Add();
item[SPBuiltInFieldId.UID] = Guid.NewGuid();
item[SPBuiltInFieldId.Title] = title;
item[SPBuiltInFieldId.Location] = location;
item[SPBuiltInFieldId.StartDate] = start;
item[SPBuiltInFieldId.EndDate] = start.AddHours(duration);
item[SPBuiltInFieldId.TimeZone] = calendar.ParentWeb.RegionalSettings.TimeZone.ID;
item.Update();
return item;
}
static SPWeb CreateMWSWeb(SPWeb webSite, SPListItem calendarEvent)
{
string path = calendarEvent.Title;
string workspaceTitle = calendarEvent.Title + " Workspace";
string description = "Meeting workspace";
SPWeb mwsWeb = null;
try
{
mwsWeb = webSite.Webs.Add(path, workspaceTitle,
description, 1033, "MPS#0",
false, false);
}
catch (SPException) // A site of that name already exists.
{
if (SPMeeting.IsMeetingWorkspaceWeb(webSite.Webs[path]))
mwsWeb = webSite.Webs[path];
}
return mwsWeb;
}
}
}
Voir aussi
Référence
Microsoft.SharePoint.Meetings - Espace de noms