Beispiel #1
0
        public void SendMessage(ClimberProfile receiver, string subject, string message)
        {
            UserMessage msg = new UserMessageDA().Insert(
                new UserMessage
            {
                ID = Guid.NewGuid(),
                ReceivingUserID = receiver.ID,
                SendingUserID   = CurrentClimber.ID,
                Subject         = subject,
                SentDateTime    = DateTime.Now,
                Message         = message
            });

            MailMan.SendUserMessageEmail(CurrentClimber, receiver, subject, message, msg.ID);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="message"></param>
        public void ProcessMessageWorkItem(MessageAlertWorkItem message)
        {
            var settings = GetUserSiteSettings(message.ToID);

            if (settings.MessagesAlertFeed || settings.MessagesEmailRealTime || settings.MessagesMobileRealTime)
            {
                var excerpt = message.Content;
                if (excerpt.Length > 30)
                {
                    excerpt = excerpt.Substring(0, 30);
                }

                var from = CfPerfCache.GetClimber(message.FromID);
                var msg  = string.Format("<a href='/climber/{0}'>{1}</a> sent you a <a href='/message/{0}'>Message</a><i> \"{2}...\"</i></a>",
                                         from.ID, from.DisplayName, excerpt);

                //-- Not sure why PostID is neccessary.... hmmmmmm
                var a = new Alert()
                {
                    ID = Guid.NewGuid(), Utc = DateTime.UtcNow, TypeID = (byte)AlertType.Message, UserID = message.ToID, Message = msg
                };
                if (settings.MessagesAlertFeed)
                {
                    a.ByFeed = true;
                }
                if (settings.MessagesEmailRealTime)
                {
                    a.ByEmail = true; MailMan.SendUserMessageEmail(CfPerfCache.GetClimber(message.ToID), from, message.Content);
                }
                if (settings.MessagesMobileRealTime && !string.IsNullOrEmpty(settings.DeviceTypeRegistered))
                {
                    a.ByMobile = true;
                    MobilePush_MessageAlert(from.DisplayName, CfPerfCache.GetClimber(message.ToID).Email, settings.DeviceTypeRegistered);
                }
                new AlertRepository().Create(a);
            }
        }