EventContext context = properties.Context;
http://code.lamsfoundation.org/fisheye/browse/~raw,r=1.1/lams/LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSLessonListEventHandler.cs
/****************************************************************
* Copyright (C) 2008 LAMS Foundation (http://lamsfoundation.org)
* =============================================================
* License Information: http://lamsfoundation.org/licensing/lams/2.0/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2.0
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
* USA
*
* http://www.gnu.org/licenses/gpl.txt
* ****************************************************************
*/
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
namespace LamsSharePointIntegration
{
/// <summary>
/// This class handles events to do with the site's LAMS lesson table
/// </summary>
class LAMSLessonListEventHandler : SPItemEventReceiver
{
private string FormatCompanyName(string value)
{
return value.ToUpper();
}
public override void ItemAdding(SPItemEventProperties properties)
{
// Validation handled by SharePoint
}
/// <summary>
/// Handles the event when a new lesson is added to the LAMS lesson table for the site
/// </summary>
/// <param name="properties">Properties of the item to be added</param>
public override void ItemAdded(SPItemEventProperties properties)
{
// Get the site context information
SPEventContext context = properties.Context;
SPSite site = new SPSite(properties.SiteId);
SPWeb siteWeb = site.OpenWeb(properties.RelativeWebUrl);
SPUser user = siteWeb.CurrentUser;
DisableEventFiring();
// Get the title for the lesson, not null
string title = properties.ListItem["Title"].ToString();
// Get the description for the leson
string description = "";
if (properties.ListItem["Description"] != null)
{
description = properties.ListItem["Description"].ToString();
}
// Get the sequence id for the lesson, not null
string sequenceId = properties.ListItem["SequenceID"].ToString();
// The lesson id of the started lesson, if successful
string lessonId;
try
{
lessonId = LAMSSecurityUtil.startLesson(user, siteWeb, sequenceId, title, description, "start");
}
catch (System.Net.WebException e)
{
properties.ErrorMessage = "Request to LAMS server to start lesson failed. Please Contact System Administrator";
properties.Cancel = true;
properties.Status = SPEventReceiverStatus.CancelWithError;
properties.ListItem.Delete();
return;
}
// Set the LessonID param for the item and the start and end date to null
properties.ListItem["LessonID"] = lessonId;
properties.ListItem["Start Date"] = null;
properties.ListItem["End Date"] = null;
properties.ListItem.Update();
EnableEventFiring();
}
}
}
댓글 없음:
댓글 쓰기