static void ProcessSingleColumn(string data, QueryLeftTicketItem item, char code, Dictionary <char, LeftTicketData> dic) { var tag = ParseLeftTicketData(code, data); if (tag == null) { return; } //动卧,4->F if (!item.seat_types.IsNullOrEmpty() && item.seat_types.IndexOf(code) == -1) { var map = ParamData.GetSeatCompatibleMap(code); if (map != null) { var gcode = map.FirstOrDefault(s => item.seat_types.IndexOf(s) != -1); if (gcode != 0) { code = gcode; } } } dic[code] = tag; }
/// <summary> /// 检测车票状态 /// </summary> /// <param name="p"></param> public void CheckTicketStatus(QueryParam p) { foreach (var item in this) { //if (!item.IsAvailable) continue; //不可预订 //检测每个席别 item.TicketCount.ForEach(s => { var map = ParamData.GetSeatCompatibleMap(s.Key); s.Value.NotNeed = p.SelectedSeatClass.Count > 0 && !p.SelectedSeatClass.Contains(s.Key) && (map == null || !map.Any(p.SelectedSeatClass.Contains)); }); item.NoTicketNeeded = item.TicketCount.Values.All(s => s.NotNeed); } }
public LeftTicketData GetTicketData(char code, bool allowComatible = true) { var data = this.GetValue(code); if (data == null && allowComatible) { //switch (code) //{ // case 'M': // data = this.GetValue('7'); // break; // case 'P': // data = this.GetValue('E'); //特等软座->特等座 // break; // case 'O': // data = this.GetValue('8'); // break; // case '6': // data = this.GetValue('A'); // break; // case '4': // data = this.GetValue('F'); // break; // case '9': // data = this.GetValue('H'); //一人软包->商务座 // break; // case '3': // data = this.GetValue('5'); //包厢硬卧->硬卧 // break; //} var map = ParamData.GetSeatCompatibleMap(code); if (map != null) { data = map.Select(this.GetValue).FirstOrDefault(s => s != null); } } //if (code == '1' && data == null) // data = this.GetValue('B'); return(data); }