Пример #1
0
        public List <TraTravelInfoModel> DoQueryTrain()
        {
            //1.访问接口获取Json字符串
            string getStr = DoPostRequest();

            TraQueryTrainResponseModel trainResponseModel = new TraQueryTrainResponseModel();
            BaseOutputModel            model = new BaseOutputModel();

            //2.转换成对象
            try
            {
                model = JsonHelper.DeserializeJsonToObject <BaseOutputModel>(getStr);
                trainResponseModel = JsonHelper.DeserializeJsonToObject <TraQueryTrainResponseModel>(getStr);
            }
            catch (Exception)
            {
                throw new Exception("查询未成功,原因是: " + model.msg);
            }

            if (trainResponseModel.code == 200)
            {
                List <TraTravelInfoModel> resultList = new List <TraTravelInfoModel>();

                #region 对象转换


                if (trainResponseModel.code == 200)
                {
                    foreach (var m in trainResponseModel.data)
                    {
                        TraTravelInfoModel infoModel = new TraTravelInfoModel();
                        infoModel = AutoMapperHelper.DoMap <TraQueryTrainResponseDateModel, TraTravelInfoModel>(m);

                        resultList.Add(infoModel);
                        infoModel.DetailList = new List <TraTravelInfoDetailModel>();
                        //F
                        if (m.dw_num != "--" && m.dw_num != "*" && !string.IsNullOrEmpty(m.dw_price) && m.dw_price.Trim() != "")
                        {
                            var exa = TrainTypeEnum.DW;
                            exa.SeatPrice = m.dwx_price;
                            exa.SeatCount = m.dw_num;
                            infoModel.DetailList.Add(exa);
                        }
                        //9
                        if (m.swz_num != "--" && m.swz_num != "*" && !string.IsNullOrEmpty(m.swz_price) && m.swz_price.Trim() != "")
                        {
                            var exa = TrainTypeEnum.SWZ;
                            exa.SeatPrice = m.swz_price;
                            exa.SeatCount = m.swz_num;
                            infoModel.DetailList.Add(exa);
                        }
                        //P
                        if (m.tdz_num != "--" && m.tdz_num != "*" && !string.IsNullOrEmpty(m.tdz_price) && m.tdz_price.Trim() != "")
                        {
                            var exa = TrainTypeEnum.TDZ;
                            exa.SeatPrice = m.tdz_price;
                            exa.SeatCount = m.tdz_num;
                            infoModel.DetailList.Add(exa);
                        }

                        //M
                        if (m.ydz_num != "--" && m.ydz_num != "*" && !string.IsNullOrEmpty(m.ydz_price) && m.ydz_price.Trim() != "")
                        {
                            var exa = TrainTypeEnum.YDZ;
                            exa.SeatPrice = m.ydz_price;
                            exa.SeatCount = m.ydz_num;
                            infoModel.DetailList.Add(exa);
                        }
                        //O
                        if (m.edz_num != "--" && m.edz_num != "*" && !string.IsNullOrEmpty(m.edz_price) && m.edz_price.Trim() != "")
                        {
                            var exa = TrainTypeEnum.EDZ;
                            exa.SeatPrice = m.edz_price;
                            exa.SeatCount = m.edz_num;
                            infoModel.DetailList.Add(exa);
                        }

                        //6
                        if (m.gjrw_num != "--" && m.gjrw_num != "*" && !string.IsNullOrEmpty(m.gjrw_price) && m.gjrw_price.Trim() != "")
                        {
                            var exa = TrainTypeEnum.GJRW;
                            exa.SeatPrice = m.gjrw_price;
                            exa.SeatCount = m.gjrw_num;
                            infoModel.DetailList.Add(exa);
                        }

                        //4
                        if (m.rw_num != "--" && m.rw_num != "*" && !string.IsNullOrEmpty(m.rw_price) && m.rw_price.Trim() != "")
                        {
                            var exa = TrainTypeEnum.RW;
                            exa.SeatPrice = m.rwx_price;
                            exa.SeatCount = m.rw_num;
                            infoModel.DetailList.Add(exa);
                        }

                        //3
                        if (m.yw_num != "--" && m.yw_num != "*" && !string.IsNullOrEmpty(m.yw_price) && m.yw_price.Trim() != "")
                        {
                            var exa = TrainTypeEnum.YW;
                            exa.SeatPrice = m.ywx_price;
                            exa.SeatCount = m.yw_num;
                            infoModel.DetailList.Add(exa);
                        }



                        //2
                        if (m.rz_num != "--" && m.rz_num != "*" && !string.IsNullOrEmpty(m.rz_price) && m.rz_price.Trim() != "")
                        {
                            var exa = TrainTypeEnum.RZ;
                            exa.SeatPrice = m.rz_price;
                            exa.SeatCount = m.rz_num;
                            infoModel.DetailList.Add(exa);
                        }


                        //1
                        if (m.yz_num != "--" && m.yz_num != "*" && !string.IsNullOrEmpty(m.yz_price) && m.yz_price.Trim() != "")
                        {
                            var exa = TrainTypeEnum.YZ;
                            exa.SeatPrice = m.yz_price;
                            exa.SeatCount = m.yz_num;
                            infoModel.DetailList.Add(exa);
                        }



                        //暂无
                        if (m.qtxb_num != "--" && m.qtxb_num != "*" && !string.IsNullOrEmpty(m.qtxb_price) && m.qtxb_price.Trim() != "")
                        {
                            var exa = TrainTypeEnum.QTXB;
                            exa.SeatPrice = m.qtxb_price;
                            exa.SeatCount = m.qtxb_num;
                            infoModel.DetailList.Add(exa);
                        }

                        //无座
                        if (m.wz_num != "--" && m.wz_num != "*" && !string.IsNullOrEmpty(m.wz_price) && m.wz_price.Trim() != "")
                        {
                            var exa = TrainTypeEnum.WZ;
                            exa.SeatPrice = m.wz_price;
                            exa.SeatCount = m.wz_num;
                            infoModel.DetailList.Add(exa);
                        }
                        infoModel.DetailList.OrderBy(a => a.SeatIndex);
                        if (infoModel.DetailList.Count == 0)
                        {
                            resultList.Remove(infoModel);
                        }
                    }
                    return(resultList);
                }
                else
                {
                    throw new Exception();
                }
                #endregion
            }
            else
            {
                throw new Exception("查询未成功,原因是: " + model.msg);
            }
        }
Пример #2
0
        public List <TraTravelInfoModel> SearchTrain(TraQueryTrainModel model)
        {
            RequestInterfaceHelper <TraQueryTrainModel> .SupplementInPutModel(model, "train_query");

            string   jsonstr = "jsonStr=" + JsonHelper.SerializeObject(model);
            DateTime date    = DateTime.Now;

            LogHelper.WriteLog("行程查询接口:" + date + "||||||" + jsonstr, "SearchTrain");
            string post = PostHelper.PostUrl(postUrl, jsonstr, Encoding.UTF8);

            LogHelper.WriteLog("行程查询接口返回:" + date + "||||||" + post, "SearchTrain");


            TraQueryTrainResponseModel trainResponseModel =
                JsonHelper.DeserializeJsonToObject <TraQueryTrainResponseModel>(post);

            if (trainResponseModel.code == 200)
            {
                List <TraTravelInfoModel> resultList = new List <TraTravelInfoModel>();

                #region 对象转换

                if (trainResponseModel.code == 200)
                {
                    foreach (var m in trainResponseModel.data)
                    {
                        TraTravelInfoModel infoModel =
                            AutoMapperHelper.DoMap <TraQueryTrainResponseDateModel, TraTravelInfoModel>(m);

                        resultList.Add(infoModel);
                        infoModel.DetailList = new List <TraTravelInfoDetailModel>();
                        //F
                        if (m.dw_num != "--" && m.dw_num != "*" && !string.IsNullOrEmpty(m.dw_price) &&
                            m.dw_price.Trim() != "" && m.dw_price.Trim() != "0")
                        {
                            var exa = TrainTypeEnum.DW;
                            exa.SeatPrice = m.dwx_price;
                            exa.SeatCount = m.dw_num;
                            infoModel.DetailList.Add(exa);
                        }
                        //9
                        if (m.swz_num != "--" && m.swz_num != "*" && !string.IsNullOrEmpty(m.swz_price) &&
                            m.swz_price.Trim() != "" && m.swz_price.Trim() != "0")
                        {
                            var exa = TrainTypeEnum.SWZ;
                            exa.SeatPrice = m.swz_price;
                            exa.SeatCount = m.swz_num;
                            infoModel.DetailList.Add(exa);
                        }
                        //P
                        if (m.tdz_num != "--" && m.tdz_num != "*" && !string.IsNullOrEmpty(m.tdz_price) &&
                            m.tdz_price.Trim() != "" && m.tdz_price.Trim() != "0")
                        {
                            var exa = TrainTypeEnum.TDZ;
                            exa.SeatPrice = m.tdz_price;
                            exa.SeatCount = m.tdz_num;
                            infoModel.DetailList.Add(exa);
                        }

                        //M
                        if (m.ydz_num != "--" && m.ydz_num != "*" && !string.IsNullOrEmpty(m.ydz_price) &&
                            m.ydz_price.Trim() != "" && m.ydz_price.Trim() != "0")
                        {
                            var exa = TrainTypeEnum.YDZ;
                            exa.SeatPrice = m.ydz_price;
                            exa.SeatCount = m.ydz_num;
                            infoModel.DetailList.Add(exa);
                        }
                        //O
                        if (m.edz_num != "--" && m.edz_num != "*" && !string.IsNullOrEmpty(m.edz_price) &&
                            m.edz_price.Trim() != "" && m.edz_price.Trim() != "0")
                        {
                            var exa = TrainTypeEnum.EDZ;
                            exa.SeatPrice = m.edz_price;
                            exa.SeatCount = m.edz_num;
                            infoModel.DetailList.Add(exa);
                        }

                        //6
                        if (m.gjrw_num != "--" && m.gjrw_num != "*" && !string.IsNullOrEmpty(m.gjrw_price) &&
                            m.gjrw_price.Trim() != "" && m.gjrw_price.Trim() != "0")
                        {
                            var exa = TrainTypeEnum.GJRW;
                            exa.SeatPrice = m.gjrw_price;
                            exa.SeatCount = m.gjrw_num;
                            infoModel.DetailList.Add(exa);
                        }

                        //4
                        if (m.rw_num != "--" && m.rw_num != "*" && !string.IsNullOrEmpty(m.rw_price) &&
                            m.rw_price.Trim() != "" && m.rw_price.Trim() != "0")
                        {
                            var exa = TrainTypeEnum.RW;
                            exa.SeatPrice = m.rwx_price;
                            exa.SeatCount = m.rw_num;
                            infoModel.DetailList.Add(exa);
                        }

                        //3
                        if (m.yw_num != "--" && m.yw_num != "*" && !string.IsNullOrEmpty(m.yw_price) &&
                            m.yw_price.Trim() != "" && m.yw_price.Trim() != "0")
                        {
                            var exa = TrainTypeEnum.YW;
                            exa.SeatPrice = m.ywx_price;
                            exa.SeatCount = m.yw_num;
                            infoModel.DetailList.Add(exa);
                        }



                        //2
                        if (m.rz_num != "--" && m.rz_num != "*" && !string.IsNullOrEmpty(m.rz_price) &&
                            m.rz_price.Trim() != "" && m.rz_price.Trim() != "0")
                        {
                            var exa = TrainTypeEnum.RZ;
                            exa.SeatPrice = m.rz_price;
                            exa.SeatCount = m.rz_num;
                            infoModel.DetailList.Add(exa);
                        }


                        //1
                        if (m.yz_num != "--" && m.yz_num != "*" && !string.IsNullOrEmpty(m.yz_price) &&
                            m.yz_price.Trim() != "" && m.yz_price.Trim() != "0")
                        {
                            var exa = TrainTypeEnum.YZ;
                            exa.SeatPrice = m.yz_price;
                            exa.SeatCount = m.yz_num;
                            infoModel.DetailList.Add(exa);
                        }



                        //暂无
                        if (m.qtxb_num != "--" && m.qtxb_num != "*" && !string.IsNullOrEmpty(m.qtxb_price) &&
                            m.qtxb_price.Trim() != "" && m.qtxb_price.Trim() != "0")
                        {
                            var exa = TrainTypeEnum.QTXB;
                            exa.SeatPrice = m.qtxb_price;
                            exa.SeatCount = m.qtxb_num;
                            infoModel.DetailList.Add(exa);
                        }

                        //无座
                        if (m.wz_num != "--" && m.wz_num != "*" && !string.IsNullOrEmpty(m.wz_price) &&
                            m.wz_price.Trim() != "" && m.wz_price.Trim() != "0")
                        {
                            var exa = TrainTypeEnum.WZ;
                            exa.SeatPrice = m.wz_price;
                            exa.SeatCount = m.wz_num;
                            infoModel.DetailList.Add(exa);
                        }

                        if (infoModel.DetailList.Count == 0)
                        {
                            resultList.Remove(infoModel);
                        }
                        else
                        {
                            infoModel.DetailList = infoModel.DetailList.OrderBy(a => a.SeatIndex).ToList();
                        }
                    }
                    return(resultList);
                }

                #endregion
            }


            throw new Exception("查询未成功,原因是: " + trainResponseModel.msg);
        }