Hi Guys,
Here is my secnaio like.
I am try to get the last record of my custom list using event recevier while updating the same custom list item status.
Event Receiver: ItemUpdating
Code snippet is:
DateTime newFinalDueDate = new DateTime();
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite elevatedSite = new SPSite(properties.Web.Site.ID))
{
using (SPWeb elevatedWeb = elevatedSite.OpenWeb())
{
SPUser approver = GetUser(properties.ListItem, properties.ListItem.Fields["Approver"]);
SPList list = elevatedWeb.Lists.TryGetList(properties.List.Title);
SPListItem objItem = null;
SPQuery oQuery = new SPQuery();
oQuery.RowLimit = 1;
oQuery.Query = @String.Format("<Where><And><Eq><FieldRef Name='Approver'/><Value Type='User'>{0}</Value></Eq><Neq><FieldRef
Name='ID' /><Value Type='Counter'>{1}</Value></Neq></And></Where><OrderBy><FieldRef Name='ID' Ascending='False' /></OrderBy>", approver.Name, properties.ListItemId);
string errorInfo1 = string.Empty;
try
{
objItem = list.GetItems(oQuery).Cast<SPListItem>().FirstOrDefault();
}
catch (Exception err)
{
errorInfo1 = err.Message;
}
if (!string.IsNullOrEmpty(errorInfo1))
{
SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("AutoSite", TraceSeverity.Unexpected,
EventSeverity.Error), TraceSeverity.Unexpected, "Error while caling Last record info : " + errorInfo1, null);
}
if (objItem != null)
{
// Last record task due date
DateTime lastRecordDate = Convert.ToDateTime(objItem["CurrentTaskDueDate"].ToString());
if (newDueDate.Date.Equals(lastRecordDate.Date))
newFinalDueDate = lastRecordDate.AddMinutes(20);
else if (newDueDate.Date < lastRecordDate.Date)
newFinalDueDate = lastRecordDate.AddMinutes(20);
else
newFinalDueDate = newDueDate;
}
else
{
newFinalDueDate = newDueDate;
}
}
}
});
But "list.GetItems(oQuery).Cast<SPListItem>().FirstOrDefault();" this line of code is throwing error like "Object reference not set to an instance of an object.". It is working fine in my local site. But in Dev server it is throwing error.
Appriciate your suggestions.
thanks alots...
Thanks,
Santhosh G