Esempio n. 1
0
        /// <summary>
        /// 更新单个推送实体
        /// </summary>
        /// <param name="obj">更新对象</param>
        /// <param name="updateColumn">更新字段</param>
        /// <returns></returns>
        internal async static Task <int> Update(PushMessageDTO obj, string updateColumn)
        {
            using var context = new Context.DataContext();
            //TODO Update

            await context.SaveChangesAsync();

            return(-1);
        }
Esempio n. 2
0
        /// <summary>
        /// 添加并推送站内信
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task AddAsync(MessageDTO dto)
        {
            var now = DateTime.Now;

            if (dto is null)
            {
                return;
            }

            var log = new Message
            {
                Id         = ObjectId.GenerateNewId(now),
                CreateTime = now,
                Name       = dto.Name,
                Detail     = dto.Detail,
                ToUser     = dto.ToUser,
                Type       = dto.Type
            };

            var push = new PushMessageDTO
            {
                Id         = log.Id,
                Name       = log.Name,
                Detail     = log.Detail,
                Type       = log.Type,
                ToUser     = log.ToUser,
                CreateTime = now
            };

            await DB.Core.EF.Util.DataRepo.Repository.Insert(log).ConfigureAwait(false);

            //推送站内信
            await _messageHub.Clients.Groups(dto.ToUser).SendAsync("newmsg", push).ConfigureAwait(false);

            //推送未读条数
            await SendUnreadCountAsync(dto.ToUser).ConfigureAwait(false);

            if (dto.PushCorpWeixin)
            {
                const string content = @"<font color='blue'>{0}</font>
<font color='comment'>{1}</font>
系统:**CMS**
站内信ID:<font color='info'>{2}</font>
详情:<font color='comment'>{3}</font>";

                //把站内信推送到企业微信
                await _uidClient.SendMarkdown(new CorpSendTextDTO
                {
                    touser  = dto.ToUser,
                    content = string.Format(content, dto.Name, now, log.Id, dto.Detail)
                }).ConfigureAwait(false);
            }
        }