コード例 #1
0
ファイル: AppMessenger.cs プロジェクト: bofirial/JSSuite
        private void SendMessage(AppMessage appMessage, MessageTypeConfiguration messageConfiguration)
        {
            switch ((MessageHandlers)messageConfiguration.MessageHandlerId)
            {
            case MessageHandlers.Trace:

                //TODO: ENUM TO DESCRIPTION ((MessageTypes)messageConfiguration.MessageTypeId).ToString()
                AppTraceHelper.Current.TraceMessage(appMessage.TraceLevel, appMessage.Message, appMessage.Subject, EnumHelper.Current.GetName((MessageTypes)messageConfiguration.MessageTypeId), appMessage.StackTrace);
                break;

            case MessageHandlers.ApplicationLog:

                ApplicationLogBusinessManager.Current.Log(appMessage.TraceLevel, appMessage.Message, appMessage.Subject, (MessageTypes)messageConfiguration.MessageTypeId, appMessage.StackTrace);
                break;

            case MessageHandlers.Email:

                if (!String.IsNullOrEmpty(appMessage.StackTrace))
                {
                    appMessage.Message += String.Format("<h6>Stack Trace</h6><p>{0}</p>", appMessage.StackTrace);
                }

                EmailHelper.Current.Send(EmailTypes.AppMessage, appMessage, messageConfiguration.EmailAddresses);

                break;

            default:
                break;
            }
        }
コード例 #2
0
ファイル: AppMessenger.cs プロジェクト: bofirial/JSSuite
        private void BuildRollupAppMessageAndSend(object messageConfigurationObject)
        {
            MessageTypeConfiguration messageConfiguration = (MessageTypeConfiguration)messageConfigurationObject;

            //Sleep for the Rollup Period
            Thread.Sleep(new TimeSpan(0, messageConfiguration.RollupMessageDelayMinutes ?? 0, 0));

            //Build the Rollup Message
            List <AppMessage> messageParts = rollupMessageCache[messageConfiguration.MessageTypeConfigurationId];

            AppMessage rollupMessage = new AppMessage();

            rollupMessage.MessageType = (MessageTypes)messageConfiguration.MessageTypeId;

            rollupMessage.Subject = String.Format("({0}) {1}", messageParts.Count, messageParts.First().Subject);
            rollupMessage.Message = String.Join("", messageParts.Select(mp => mp.Message));

            //Send the Rollup Message
            SendMessage(rollupMessage, messageConfiguration);

            //Clear the Cache of the Sent Message
            rollupMessageCache.Remove(messageConfiguration.MessageTypeConfigurationId);
        }
コード例 #3
0
ファイル: AppMessenger.cs プロジェクト: bofirial/JSSuite
        private void AddMessageToMessageCache(AppMessage appMessage, MessageTypeConfiguration messageConfiguration)
        {
            if (rollupMessageCache == null)
            {
                rollupMessageCache = new Dictionary <int, List <AppMessage> >();
            }

            if (rollupMessageCache.ContainsKey(messageConfiguration.MessageTypeConfigurationId))
            {
                rollupMessageCache[messageConfiguration.MessageTypeConfigurationId].Add(appMessage);
            }
            else
            {
                rollupMessageCache.Add(messageConfiguration.MessageTypeConfigurationId, new List <AppMessage>()
                {
                    appMessage
                });

                Thread thread = new Thread(new ParameterizedThreadStart(BuildRollupAppMessageAndSend));

                thread.Start(messageConfiguration);
            }
        }
コード例 #4
0
        ///// <summary>
        ///// Update
        ///// </summary>
        ///// <param name="connectionInfo">The connection information.</param>
        ///// <param name="MessageTypeConfiguration">The entity.</param>
        ///// <returns></returns>
        //public IProcessResult Update(IConnectionInfo connectionInfo, MessageTypeConfiguration entity)
        //{
        //    return UpdateInternal(connectionInfo, entity).Result;
        //}

        /// <summary>
        /// Update Async.
        /// </summary>
        /// <param name="connectionInfo">The connection information.</param>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        public async Task <IProcessResult> UpdateAsync(IConnectionInfo connectionInfo, MessageTypeConfiguration entity)
        {
            return(await UpdateInternal(connectionInfo, entity));
        }
コード例 #5
0
        ///// <summary>
        ///// Select
        ///// </summary>
        ///// <param name="connectionInfo">The connection information.</param>
        ///// <param name="filter">The filter.</param>
        ///// <returns></returns>
        //public List<MessageTypeConfiguration> Select(IConnectionInfo connectionInfo, MessageTypeConfiguration filter)
        //{
        //    return SelectInternal(connectionInfo, filter).Result;
        //}

        /// <summary>
        /// Select Async
        /// </summary>
        /// <param name="connectionInfo">The connection information.</param>
        /// <param name="filter">The filter.</param>
        /// <returns></returns>
        public async Task <List <MessageTypeConfiguration> > SelectAsync(IConnectionInfo connectionInfo, MessageTypeConfiguration filter)
        {
            return(await SelectInternal(connectionInfo, filter));
        }
コード例 #6
0
        ///// <summary>
        ///// Update
        ///// </summary>
        ///// <param name="connectionInfo">The connection information.</param>
        ///// <param name="MessageTypeConfiguration">The entity.</param>
        ///// <returns></returns>
        //public IProcessResult Update(IConnectionInfo connectionInfo, MessageTypeConfiguration entity)
        //{
        //    return MessageTypeConfigurationManager.Current.Update(connectionInfo, entity);
        //}

        /// <summary>
        /// Update Async
        /// </summary>
        /// <param name="connectionInfo">The connection information.</param>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        public async Task <IProcessResult> UpdateAsync(IConnectionInfo connectionInfo, MessageTypeConfiguration entity)
        {
            return(await MessageTypeConfigurationManager.Current.UpdateAsync(connectionInfo, entity));
        }
コード例 #7
0
        ///// <summary>
        ///// Select
        ///// </summary>
        ///// <param name="connectionInfo">The connection information.</param>
        ///// <param name="filter">The filter.</param>
        ///// <returns></returns>
        //public List<MessageTypeConfiguration> Select(IConnectionInfo connectionInfo, MessageTypeConfiguration filter)
        //{
        //    return MessageTypeConfigurationManager.Current.Select(connectionInfo, filter);
        //}

        /// <summary>
        /// Select Async
        /// </summary>
        /// <param name="connectionInfo">The connection information.</param>
        /// <param name="filter">The filter.</param>
        /// <returns></returns>
        public async Task <List <MessageTypeConfiguration> > SelectAsync(IConnectionInfo connectionInfo, MessageTypeConfiguration filter)
        {
            return(await MessageTypeConfigurationManager.Current.SelectAsync(connectionInfo, filter));
        }