public SPListItem CreateReply(SPListItem relatedItem, SEMessage m_message) { var reply = SPUtility.CreateNewDiscussionReply(relatedItem); reply[SPBuiltInFieldId.Body] = m_message.PlainBody; reply[SPBuiltInFieldId.Title] = m_message.PlainBody; return(reply); }
public IncomingDiscussionBoardProcessor(SPList list, SEMessage message, ILogger logger, IThreadStrategy threadStrategy, ITextParserStrategy textStrategy) { this.m_list = list; this.m_message = message; this.m_Logger = logger; this.m_threadStarategy = threadStrategy; this.m_TextStartegy = textStrategy; }
/// <summary> /// On alert notification /// </summary> /// <param name="web">current web</param> /// <param name="eventArgs">params of alert and event</param> /// <returns>Generated cutom message</returns> public SEMessage OnNotification(SPWeb web, SPAlertHandlerParams eventArgs) { SPList list = null; var eventID = Guid.NewGuid(); if (eventArgs.a != null) { if (eventArgs.eventData.Length == 1) { GeneratedMessage message = null; var receiverEmail = eventArgs.headers["to"]; var ed = eventArgs.eventData[0]; list = web.Lists[eventArgs.a.ListID]; try { message = GetMessageForItem(eventID, list, ed.itemId, (SPEventType)ed.eventType, ed.eventXml, ed.modifiedBy, receiverEmail, eventArgs.a.UserId); } catch (SeTemplateNotFound ex) { Application.Current.Logger.WriteTrace("TEMPLATE NOT FOUND", ex, SharePointEmails.Logging.SeverityEnum.Verbose); } catch (Exception ex) { Application.Current.Logger.WriteTrace("ERROR DURING GETTING MESSAGE", SharePointEmails.Logging.SeverityEnum.Verbose); throw; } if (message != null) { var mail = SEMessage.Create(eventID, message, eventArgs.headers, eventArgs.body); Application.Current.Logger.WriteTrace("Message will be sent sent", SharePointEmails.Logging.SeverityEnum.Verbose); var processor = ProcessorsManager.Instance.CreateOutcomingProcessor(list); if (processor != null) { processor.Precess(mail, ed); } LogMessage(message, mail.headers); return(mail); } else { Application.Current.Logger.WriteTrace("Message not generated", SharePointEmails.Logging.SeverityEnum.Verbose); } } else { Application.Current.Logger.WriteTrace("OnNotification - More then 1 eventdata. currently not supported", SharePointEmails.Logging.SeverityEnum.Warning); } } return(null); }
internal DocumentLibraryIncomingProcessor(SPDocumentLibrary library, SEMessage message, ConfigProvider config) { }
public Microsoft.SharePoint.SPListItem CreateDiscussion(Microsoft.SharePoint.SPList m_list, SEMessage m_message) { var item = SPUtility.CreateNewDiscussion(m_list, m_message[SEMessage.SUBJECT]); item[SPBuiltInFieldId.Body] = m_message.PlainBody; return(item); }
/// <summary> /// On Incoming message /// </summary> /// <param name="list">list wich received the message</param> /// <param name="emailMessage">received message</param> public void OnIncomingMail(SPList list, Microsoft.SharePoint.Utilities.SPEmailMessage emailMessage) { try { Logger.WriteTrace("List " + list.Title + " received mail from " + emailMessage.EnvelopeSender, SeverityEnum.Trace); var config = new ConfigProvider(); var sender = list.ParentWeb.GetUserByEmail(emailMessage.Sender); Action <SPList> action = (impersonatedList) => { try { var processor = ProcessorsManager.Instance.CreateIncomingProcessor(impersonatedList, SEMessage.Create(emailMessage)); if (processor != null) { Logger.WriteTrace(processor.GetType().FullName + " was found as incoming processor for list " + impersonatedList.Title, SeverityEnum.Trace); try { processor.Process(); } catch (Exception ex) { Logger.WriteTrace("Error during processing of message", ex, SeverityEnum.CriticalError); } } else { Logger.WriteTrace("No incoming processor found for list " + impersonatedList.Title, SeverityEnum.Trace, Category.IncomingMessages); } } catch (Exception ex) { Logger.WriteTrace("Error in the handler", ex, SeverityEnum.CriticalError); throw; } }; if (sender != null) { Logger.WriteTrace("User has been found. User="******"Anonyms are not allowed", SeverityEnum.Trace); } } } catch (Exception ex) { Logger.WriteTrace(ex, SeverityEnum.Trace, Category.IncomingMessages); } }