/// <summary>
        ///
        /// </summary>
        /// <param name="toID"></param>
        /// <param name="fromID"></param>
        /// <param name="content"></param>
        public void EnqueMessageWorkItem(Guid toID, Guid fromID, string content)
        {
            var dto = new MessageAlertWorkItem()
            {
                ToID = toID, FromID = fromID, Content = content
            };

            if (Stgs.IsDevelopmentEnvironment)
            {
                ProcessMessageWorkItem(dto);
            }
            else
            {
                var queueMessage = new CloudQueueMessage(dto.ToJson());
                new QueueRepository().PutMessage(MessagesQueueName, queueMessage);
            }
        }
        /// <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);
            }
        }