private void ProcessMemberQuery(Message message) { MemberQueryRequest request = SerializerUtil <MemberQueryRequest> .Deserialize(message.Content); //Filter HashSet <Membership> members = new HashSet <Membership>(); var linq = members.Where(q => { bool name = string.IsNullOrEmpty(request.Name) || q.Name.IndexOf(request.Name) > 0; bool nick = string.IsNullOrEmpty(request.NickName) || q.NickName.IndexOf(request.NickName) > 0; bool dept = request.Department == null || request.Department.Count == 0; bool _ept = true; if (!dept) { for (int i = 0; i < Math.Min(request.Department.Count, q.Department.Length); i++) { _ept = _ept && request.Department[i].IndexOf(q.Department[i]) >= 0; } } return(name && nick && (dept || _ept)); }).ToList(); Message Reply = MessageFactory.CreateMemberQueryRespMessage(message.To, message.From, linq); byte[] b = SerializerUtil <Message> .Serialize(Reply); responseMsg.InitPool(b.Length); responseMsg.Put(b, 0, b.Length); server.Send(ref responseMsg, false); }
public ContentResult listmember(MemberQueryRequest request) { var data = _memberService.List(request); var res = new ResultDto <MemberResponse> { page = request.PageIndex, total = request.Total, records = request.Records, rows = data }; return(Content(res.Serialize())); }