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);
        }
예제 #2
0
 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;
 }
예제 #3
0
        /// <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);
        }
예제 #6
0
 /// <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);
     }
 }