SPMeeting.LinkWithEvent method
Links de um site de espaço de trabalho de reunião com um item definidos em uma lista de eventos de calendário em um site Microsoft SharePoint Foundation.
Namespace: Microsoft.SharePoint.Meetings
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaração
Public Function LinkWithEvent ( _
eventWeb As SPWeb, _
strEventListId As String, _
eventItemId As Integer, _
strEventWorkspaceLinkField As String, _
strEventWorkspaceLinkURLField As String _
) As String
'Uso
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
)
Parâmetros
eventWeb
Type: Microsoft.SharePoint.SPWebUm objeto que representa o site que tenha uma lista que contém o item de evento.
strEventListId
Type: System.StringUm string que identifica o componente de calendário. Você pode obter esse valor, executando uma conversão de cadeia de caracteres no valor da propriedade SPList.ID da lista de eventos.
eventItemId
Type: System.Int32Um valor que identifica o item de lista de eventos. Você pode obter esse valor da propriedade SPListItem.ID do item da lista de eventos.
strEventWorkspaceLinkField
Type: System.StringO nome interno do campo no item de lista de eventos que recebe o link. Para um item que tenha o tipo de conteúdo Event , este campo é identificado pelo identificador (ID) do campo de SPBuiltInFieldId.WorkspaceLink e tem o nome interno "WorkspaceLink".
strEventWorkspaceLinkURLField
Type: System.StringO nome interno do campo no item de lista de eventos que exibe o nome do espaço de trabalho. Para um item que tenha o tipo de conteúdo Event , este campo é identificado pela ID de campo SPBuiltInFieldId.Workspace e tem o nome interno "Espaço de trabalho".
Valor retornado
Type: System.String
A URL para o site de espaço de trabalho de reunião.
Comentários
O método LinkWithEvent vincula um item em uma lista de eventos, como a lista de Calendar padrão, a um site de espaço de trabalho de reunião. Uma lista de eventos é qualquer lista que possua um valor da propriedade BaseTemplate igual a SPListTemplateType.Events. Um site de espaço de trabalho de reunião é um site da Web para o qual o método IsMeetingWorkspaceWeb(SPWeb) retorna true.
O método LinkWithEvent cria uma nova instância de reunião no espaço de trabalho de reunião. Em seguida, o método coloca a URL para a instância de reunião no campo de item que é especificado no quarto parâmetro, strEventWorkspaceLinkFielde ele coloca o nome do site do espaço de trabalho de reunião no campo especificado no parâmetro quinto, strEventWorkspaceLinkURLFieldde eventos. (Os nomes de parâmetro são a causa certa confusão. Não se esqueça passar a URL para o link, em seguida, o texto de exibição para o link.) Quando o item de lista será exibido em um formulário, a URL para a instância de reunião é processada como um link e o nome do espaço de trabalho é processado como texto do link. O vínculo permite que o usuário navegue do item na lista de eventos no espaço de trabalho e do espaço de trabalho de volta para o item de lista.
Examples
O aplicativo de console a seguir mostra como adicionar um item à lista de eventos Calendar , crie um site de espaço de trabalho e, em seguida, vincular o espaço de trabalho para o item de evento chamando o método 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;
}
}
}
Ver também
Referência
Microsoft.SharePoint.Meetings namespace