/// <summary> /// 根据条件获取当前用户能查看的所有车辆,参数的两个条件由 AND 组合 /// </summary> /// <param name="CompanyName">公司名称</param> /// <param name="PlateNumOrTerminalCode">车牌号或终端号</param> private StrucVehiclesListModel[] InternalGetVehiclesListByCurrentUserID(string CompanyName, string PlateNumOrTerminalCode) { int userid = GetUserSession().UserId; var map = new Dictionary <string, List <KeyValuePair <string, string> > >(); var dt = TerminalSettingsBLL.GetVehicleList(userid, CompanyName, PlateNumOrTerminalCode); foreach (DataRow dr in dt.Rows) { var vehicle = new KeyValuePair <string, string>((string)dr["PlateNum"], (string)dr["TerminalCode"]); string StrucName = (string)dr["StrucName"]; List <KeyValuePair <string, string> > vehiclesList; if (!map.ContainsKey(StrucName)) { vehiclesList = new List <KeyValuePair <string, string> >(); map.Add(StrucName, vehiclesList); } else { vehiclesList = map[StrucName]; } vehiclesList.Add(vehicle); } var ret = new StrucVehiclesListModel[map.Values.Count]; var Keys = map.Keys.ToArray(); for (int i = 0; i != Keys.Length; i++) { ret[i] = new StrucVehiclesListModel(); ret[i].CompanyName = Keys[i]; ret[i].Vehicles = map[Keys[i]].ToArray(); } return(ret); }