public GroupMessageEntity GetGroupMessage(Guid id) { GroupMessageEntity groupMessage = new GroupMessageEntity(); groupMessage.Id = id; if (_dataBase.Fill <GroupMessageEntity>(groupMessage)) { if (groupMessage.GroupId.HasValue) { groupMessage.FilterOption = "分组:"; MemberGroupEntity memberGroup = _memberGroupManager.GetMemberGroup(groupMessage.Domain, groupMessage.AppId, groupMessage.GroupId.Value); if (memberGroup != null) { groupMessage.FilterOption += memberGroup.Name; } } else { groupMessage.FilterOption = "全部"; } return(groupMessage); } else { return(null); } }
public static GroupMessage ToContract(this GroupMessageEntity groupMessageEntity) { return(new GroupMessage { Id = groupMessageEntity.Id, GroupId = groupMessageEntity.GroupId, Message = groupMessageEntity.Message, SendDate = groupMessageEntity.SendDate }); }
public async Task <GroupMessage> CreateMessageInGroup(int groupId, int userId, [FromBody] GroupMessage message) { GroupUserEntity userGroup = await DbContext.GroupsUsersRepo.GetByUserIdAndGroupId(userId, groupId); if (userGroup == null) { ThrowHttpResponseException(System.Net.HttpStatusCode.Unauthorized, "Access is denied."); } ValidateUserAsAuthenticated(userId); GroupEntity group = await DbContext.GroupsRepo.GetSingleOrDefaultAsync(groupId); if (group == null) { ThrowHttpResponseException(System.Net.HttpStatusCode.NotFound, string.Format("Group with id {0} was not found.", groupId)); } GroupMessageEntity entity = await DbContext.GroupMessagesRepo.CreateAsync(message.ToEntity()); return(entity.ToContract()); }
public string SendGroupMessage(DomainContext domainContext, SendGroupMessageArgs args) { if (args == null) { return("参数错误。"); } GroupMessageEntity groupMessage = new GroupMessageEntity(); groupMessage.AppId = domainContext.AppId; if (args.GroupId >= 0) { groupMessage.IsToAll = false; groupMessage.GroupId = args.GroupId; } else { groupMessage.IsToAll = true; } groupMessage.Type = args.Type; groupMessage.Content = args.Content; groupMessage.Url = args.Url; groupMessage.Name = args.Name; groupMessage.MediaId = args.MediaId; groupMessage.ArticleId = args.ArticleId; WeixinGroupMessageSendAllArgs apiArgs = null; switch (groupMessage.Type) { case EnumGroupMessageType.Text: WeixinGroupMessageSendAllArgs_Text textMsg = new WeixinGroupMessageSendAllArgs_Text(); textMsg.Content.Content = groupMessage.Content; apiArgs = textMsg; break; case EnumGroupMessageType.Image: WeixinGroupMessageSendAllArgs_Image imageMsg = new WeixinGroupMessageSendAllArgs_Image(); imageMsg.Image.MediaId = groupMessage.MediaId; apiArgs = imageMsg; break; case EnumGroupMessageType.Article: string mediaId = _materialManager.GetArticleMaterialMediaId(args.ArticleId.Value); if (String.IsNullOrEmpty(mediaId) == false) { WeixinGroupMessageSendAllArgs_Mpnews articleMsg = new WeixinGroupMessageSendAllArgs_Mpnews(); articleMsg.Mpnews.MediaId = mediaId; apiArgs = articleMsg; } break; default: break; } if (apiArgs == null) { return("参数错误。"); } //先往微信后台添加,成功后写数据库 apiArgs.Filter.IsToAll = groupMessage.IsToAll; if (groupMessage.GroupId.HasValue && groupMessage.GroupId >= 0) { apiArgs.Filter.GroupId = groupMessage.GroupId.ToString(); } // apiArgs.MsgType RequestApiResult <WeixinGroupMessageSendAllResult> sendAllResult = GroupMessageApiWrapper.SendAll(domainContext, apiArgs); if (sendAllResult.Success == false) { return(sendAllResult.Message); } groupMessage.MsgId = sendAllResult.ApiResult.MsgId; groupMessage.MsgDataId = sendAllResult.ApiResult.MsgDataId; groupMessage.Domain = domainContext.Domain.Id; _dataBase.Insert(groupMessage); return(null); }