/// <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); } }