Compartir a través de


del método SPMeeting.LinkWithEvent

Vínculos de un sitio de área de reuniones con un elemento definidos en una lista de eventos de calendario en un sitio Web de Microsoft SharePoint Foundation.

Espacio de nombres:  Microsoft.SharePoint.Meetings
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
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
    Tipo: Microsoft.SharePoint.SPWeb

    Un objeto que representa el sitio Web que tiene una lista que contiene el elemento de evento.

  • strEventListId
    Tipo: System.String

    string que identifica el componente de calendario. Puede obtener este valor mediante la realización de una conversión de cadena del valor de la propiedad SPList.ID de la lista de eventos.

  • eventItemId
    Tipo: System.Int32

    Un valor que identifica el elemento de lista de eventos. Puede obtener este valor de la propiedad SPListItem.ID del elemento de lista de eventos.

  • strEventWorkspaceLinkField
    Tipo: System.String

    El nombre interno del campo en el elemento de lista de eventos que recibe el vínculo. Para un elemento que tiene el tipo de contenido de Event , este campo se identifica mediante el identificador de campo SPBuiltInFieldId.WorkspaceLink (ID.) y tiene el nombre interno "WorkspaceLink".

  • strEventWorkspaceLinkURLField
    Tipo: System.String

    El nombre interno del campo en el elemento de lista de eventos que muestra el nombre del área de trabajo. Para un elemento que tiene el tipo de contenido de Event , este campo se identifica mediante el identificador de campo SPBuiltInFieldId.Workspace y tiene el nombre interno "Área de trabajo".

Valor devuelto

Tipo: System.String
La dirección URL para el sitio de área de reuniones.

Comentarios

El método LinkWithEvent vincula un elemento de una lista de eventos, como la lista de Calendar predeterminada, a un sitio de área de reuniones. Una lista de eventos es todas las listas que tiene un valor de propiedad de BaseTemplate igual a SPListTemplateType.Events. Un sitio de área de reuniones es un sitio Web para la que el método IsMeetingWorkspaceWeb(SPWeb) devuelve true.

El método LinkWithEvent crea una nueva instancia de reunión en el sitio de área de reuniones. El método coloca entonces la dirección URL a la instancia de reunión en el campo de elemento que se especifica en el cuarto parámetro, strEventWorkspaceLinkFieldy coloca el nombre del sitio de área de reuniones en el campo especificado en el quinto parámetro, strEventWorkspaceLinkURLFieldde eventos. (Los nombres de parámetro son ligeramente erróneas. Recuerde que se pase la dirección URL para el vínculo y, a continuación, el texto para mostrar para el vínculo.) Cuando se muestra el elemento de lista en un formulario, la dirección URL de la instancia de reunión se representa como un vínculo y el nombre del área de trabajo se representa como texto del vínculo. El vínculo permite a un usuario navegar desde el elemento de la lista de eventos para el área de trabajo y desde el área de trabajo en el elemento de lista.

Ejemplos

La aplicación de consola siguiente muestra cómo agregar un elemento a la lista de eventos de Calendar , cree un sitio Web de área de trabajo y, a continuación, vincular el área de trabajo para el elemento de evento llamando al 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;
      }
   }
}

Vea también

Referencia

clase SPMeeting

Miembros SPMeeting

Espacio de nombres Microsoft.SharePoint.Meetings

SPWebCollection.Add

Otros recursos

How to: Add a Recurring Event to Lists on Multiple Sites