예제 #1
0
        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;
        }
예제 #2
0
        /// <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);
            }
        }
예제 #3
0
        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);
        }