Пример #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="content"></param>
        /// <param name="tenantId"></param>
        public static void SendMobileMessage(string content, int tenantId)
        {
            var userDeviceTokenList = GetUserDeviceTokenListByTenantId(tenantId);

            if (userDeviceTokenList.Any())
            {
                //Dictionary<int, Dictionary<string, int>> allUserDeviceToken = new Dictionary<int, Dictionary<string, int>>();
                //var userIds = userDeviceTokenList.Select(p => p.UserId).Distinct();
                //foreach (var uid in userIds)
                //{
                //    Dictionary<string, int> kv = new Dictionary<string, int>();
                //    var tmp = userDeviceTokenList.Where(p => p.UserId == uid);
                //    foreach (var item in tmp)
                //    {
                //        kv.Add(item.DeviceToken, item.Device);
                //    }
                //    allUserDeviceToken.Add(uid, kv);
                //}
                //MobileMessageInformation messageInfo = new MobileMessageInformation
                //{
                //    SendStatus = 0,
                //    AllMessageContent = content,
                //    AllUserDeviceToken = allUserDeviceToken
                //};
                //new RabbitMQHelper(Rabbit_MobileMessageAddress, Rabbit_userName, Rabbit_password, Rabbit_SendMobileMessage,
                //                   Rabbit_MobileMessagequeue).SendMessage(messageInfo);


                var list    = new List <MobileMessage>();
                var userIds = userDeviceTokenList.Select(p => p.UserId).Distinct();
                foreach (var uid in userIds)
                {
                    var userDeviceToken = new Dictionary <string, int[]>();
                    var tmp             = userDeviceTokenList.Where(p => p.UserId == uid);
                    foreach (var item in tmp)
                    {
                        userDeviceToken.Add(item.DeviceToken, new int[] { item.Device, item.NotSeeMessageCount + 1 });
                    }
                    list.Add(new MobileMessage
                    {
                        Content         = content,
                        UserDeviceToken = userDeviceToken,
                        UserId          = uid
                    });
                }

                _dataAccess.UpdateFieldCalc("Sys_UserDeviceToken", "NotSeeMessageCount", "NotSeeMessageCount + 1", "where RecordId in (" + userDeviceTokenList.Select(p => p.RecordId).GetString() + ")");

                MobileMessageInformation messageInfo = new MobileMessageInformation
                {
                    SendStatus = 1,
                    SendList   = list
                };

                RibbitMQProvider.SendMessage(messageInfo, "sendMobileMessage");
            }
        }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="content"></param>
        /// <param name="userCustomItems"></param>
        public static void SendMobileMessage(string content, Dictionary <int, Dictionary <string, object[]> > userCustomItems)
        {
            var userId = userCustomItems.Keys;
            //ios
            var userDeviceTokenList = GetUserDeviceTokenListByUserIds(userId);

            if (userDeviceTokenList.Count() > 0)
            {
                var list    = new List <MobileMessage>();
                var userIds = userDeviceTokenList.Select(p => p.UserId).Distinct();
                foreach (var uid in userIds)
                {
                    var userDeviceToken = new Dictionary <string, int[]>();
                    var tmp             = userDeviceTokenList.Where(p => p.UserId == uid);
                    foreach (var item in tmp)
                    {
                        userDeviceToken.Add(item.DeviceToken, new int[] { item.Device, item.NotSeeMessageCount + 1 });
                    }
                    list.Add(new MobileMessage
                    {
                        Content         = content,
                        CustomItems     = userCustomItems[uid],
                        UserDeviceToken = userDeviceToken,
                        UserId          = uid
                    });
                }

                _dataAccess.UpdateFieldCalc("Sys_UserDeviceToken", "NotSeeMessageCount", "NotSeeMessageCount + 1", "where RecordId in (" + userDeviceTokenList.Select(p => p.RecordId).GetString() + ")");

                MobileMessageInformation messageInfo = new MobileMessageInformation
                {
                    SendStatus = 1,
                    SendList   = list
                };
                RibbitMQProvider.SendMessage(messageInfo, "sendMobileMessage");
            }
            //Android
            var mobilemessagelist = new List <RetechWing.Models.Mobile.Sys_MobileMessage>();

            foreach (var item in userCustomItems)
            {
                mobilemessagelist.Add(new RetechWing.Models.Mobile.Sys_MobileMessage
                {
                    Content  = content,
                    UserId   = item.Key,
                    SendTime = DateTime.Now,
                    Status   = 0
                });
            }
            if (mobilemessagelist.Count > 0)
            {
                _dataAccess.AddEntities(mobilemessagelist);
            }
        }
Пример #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="deviceToken"></param>
        /// <param name="content"></param>
        public static void SendMobileMessage(string content, int tenantId)
        {
            var userDeviceTokenList = GetUserDeviceTokenListByTenantId(tenantId);

            if (userDeviceTokenList.Count() > 0)
            {
                var list = new List <KeyValuePair <string, string> >();
                foreach (var item in userDeviceTokenList)
                {
                    list.Add(new KeyValuePair <string, string>(item.Realname, item.DeviceToken));
                }
                MobileMessageInformation messageInfo = new MobileMessageInformation
                {
                    DeviceToken    = list,
                    MessageContent = content
                };
                new RabbitMQHelper(Rabbit_MobileMessageAddress, Rabbit_userName, Rabbit_password, Rabbit_SendMobileMessage,
                                   Rabbit_MobileMessagequeue).SendMessage(messageInfo);
            }
        }