public ValveViewModel GetList(SearchModel query)
        {
            var where = new StringBuilder();
            if (query != null)
            {
                where = GenerateQuerySQL.GenerateQuery(query, typeof(Valve).Name);
            }
            else
            {
                query = new SearchModel();
            }
            var v = _dal.GetList(where.ToString());

            v.List = v.List.Skip(query.PageIndex * query.PageSize).Take(query.PageSize).ToList();
            var ids = new StringBuilder();

            where.Clear();
            v.List.ForEach(item =>
            {
                ids.AppendFormat("{0},", item.ValveId);
            });
            if (ids.Length > 0)
            {
                where.AppendFormat(" where MeterId in ({0})", ids.ToString().TrimEnd(','));
                var att = new AttachmentManager().GetList(where.ToString());
                v.List.ForEach(item =>
                {
                    item.AttachmentList = att.FindAll(p => p.MeterId == item.ValveId);
                });
            }
            return(v);
        }