public static bool ProcessOneMessage(IbaCmsDbContext cmsDb, P2PMessage msg) { var senderId = msg.SenderId; var idToSendTo = msg.Thread.InitialRecipientId == senderId ? msg.Thread.InitialSenderId : msg.Thread.InitialRecipientId; var deviceOwners = cmsDb.DeviceOwners.Where(r => r.IbaId == idToSendTo); var count = 0; foreach (var owner in deviceOwners) { var appuserMessage = new AppP2PMessage { Created = DateTime.UtcNow, DeviceOwner = owner, Message = msg }; foreach (var device in owner.Devices.Where(d => !d.PushToken.IsNullOrWhiteSpace())) { //var push = new PushMessageQueue //{ // Created = DateTime.UtcNow, // Device = device, // AppP2PMessage = appuserMessage //}; //appuserMessage.Queued.Add(push); } count++; cmsDb.AppP2PMessages.Add(appuserMessage); SendPushMessage(appuserMessage); } msg.DeliveredTime = DateTime.UtcNow; return(count > 0); }
public static MessagePush MessageData(AppP2PMessage p2pMessage) { return(new MessagePush() { PushType = PushTypeEnum.NewMessageNotification, Id = p2pMessage.Message.SenderId, Title = p2pMessage.Message.GetPushTitleForMessage(), Type = "P2P_MESSAGE" }); }
public static void SendPushMessage(AppP2PMessage item) { Push.Instance.Send(item.DeviceOwner.NamedUserId, MessagePush.MessageData(item), item.Id); }