示例#1
0
 public async Task AddPushMessageAsync(object sender, object args)
 {
     using (var scope = SherlockEngine.Current.CreateScope())
     {
         PushMessageDomainModel pushMessageDomainModel = (PushMessageDomainModel)args;
         Guard.ArgumentNotNull(pushMessageDomainModel, nameof(pushMessageDomainModel));
         PushMessage entity = _mapper.Map <PushMessage>(pushMessageDomainModel);
         entity.Id       = _idGenerationService.GenerateId();
         entity.CreateAt = entity.UpdateAt = DateTimeHelper.GetNow();
         await _pushMessageRepository.InsertAsync(entity);
     }
 }
示例#2
0
        /// <summary>
        /// 获取消息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <PushMessageDomainModel> GetPushMessageAsync(long id, long userId, int appId)
        {
            Guard.ArgumentCondition(id > 0, $"{nameof(id)}参数不合法");
            Guard.ArgumentCondition(userId > 0, $"{nameof(userId)}参数不合法");
            Guard.ArgumentCondition(appId > 0, $"{nameof(appId)}参数不合法");
            SingleQueryFilter filter = new SingleQueryFilter();

            filter.AddEqual(nameof(PushMessage.Id), id);
            filter.AddEqual(nameof(PushMessage.UserId), userId);
            filter.AddEqual(nameof(PushMessage.AppId), appId);
            filter.AddNotEqual(nameof(PushMessage.State), (int)ReadState.Clear);
            PushMessage entity = await _pushMessageRepository.QueryFirstOrDefaultAsync(filter);

            PushMessageDomainModel model = _mapper.Map <PushMessageDomainModel>(entity);

            return(model);
        }
示例#3
0
        /// <summary>
        /// 将消息推送给消息中心
        /// </summary>
        /// <param name="model"></param>
        private void PushMessageToMessageCenter(SendMsgRequest sendMsgRequest)
        {
            PushMessageDomainModel pushMessageDomainModel = _mapper.Map <PushMessageDomainModel>(sendMsgRequest);

            _eventNotification.Notify("AddMessageToMessageCenter", null, pushMessageDomainModel);
        }