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); } }
/// <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); }
/// <summary> /// 将消息推送给消息中心 /// </summary> /// <param name="model"></param> private void PushMessageToMessageCenter(SendMsgRequest sendMsgRequest) { PushMessageDomainModel pushMessageDomainModel = _mapper.Map <PushMessageDomainModel>(sendMsgRequest); _eventNotification.Notify("AddMessageToMessageCenter", null, pushMessageDomainModel); }