static void Test5()
        {
            string fileName = "20200729_B2B_Resp.txt";

            B2B.B2BRequest myReq = new B2BRequest("техническая жидкость");

            File.WriteAllText(fileName, myReq.GetResponse);

            //string testStr = myReq.GetResponse;

            B2BResponse myResp = new B2BResponse(myReq);
        }
Пример #2
0
        public void TestAuto()
        {
            //PnrAnalysis.PnrResource pnrs = new PnrResource();
            //CityInfo cinfo = pnrs.CityDictionary.CityList.Where(p => p.key == "HCJ").FirstOrDefault();
            //return;
            //PnrAnalysis.SendNewPID sendAuto = new PnrAnalysis.SendNewPID();
            //PnrAnalysis.Model.BSPParam bsp = new PnrAnalysis.Model.BSPParam();
            //bsp.CarrayCode = "3U";
            //bsp.Pnr = "HPJXX9";
            //bsp.CpPrice = 1150m;
            //bsp.PrintNo = "10";
            //bsp.Param.ServerIP = "10.11.5.251";
            //bsp.Param.ServerPort = 399;
            //bsp.Param.Office = "CTU186";
            //bsp.Param.WebUserName = "******";
            //PnrAnalysis.Model.BSPResponse response = sendAuto.BSPAutoIssue(bsp);

            AutoTicketService autoTicketService = new AutoTicketService();
            string            strData           = "<pnrinfo><code>1</code><pnr>MCLE2D</pnr><air>CA</air><pnrsrcid>05635108590040151070</pnrsrcid><message></message><tickets><ticket><passenger>%c2%de%cb%bc%bb%d5</passenger><tktno>999-2344273598</tktno></ticket></tickets></pnrinfo>";

            B2BResponse b2BResponse = autoTicketService.SyncTicketCall(strData);
            //DataSet ds = XmlToDataSet(strData);
        }
Пример #3
0
        public void Process(HttpRequest request, HttpResponse response)
        {
            StringBuilder sbLog  = new StringBuilder();
            string        result = "false";

            try
            {
                sbLog.Append("Start================自动出票通知=====================================================\r\n");
                sbLog.Append("时间:" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\r\n");
                sbLog.Append("内容:\r\n");
                NameValueCollection nv = new NameValueCollection();
                nv.Add(request.Form);
                nv.Add(request.QueryString);
                string ticketXML = string.Empty;
                string payXML    = string.Empty;
                foreach (string key in nv.Keys)
                {
                    sbLog.Append(key + "=" + nv[key] + "\r\n");
                    if (key == "ticketnoinfo")
                    {
                        ticketXML = nv[key];
                    }
                    else if (key == "paymentinfo")
                    {
                        payXML = nv[key];
                    }
                }
                if (!string.IsNullOrEmpty(ticketXML))
                {
                    #region  //B2B自动出票通知
                    B2BResponse           b2BResponse = autoTicketService.SyncTicketCall(ticketXML);
                    List <AutoTicketInfo> b2bList     = b2BResponse.TicketNofityInfo.AutoTicketList;
                    if (b2bList.Count > 0)
                    {
                        string orderId = b2BResponse.TicketNofityInfo.FlatformOrderId;
                        Order  order   = orderRepository.FindAll(p => p.OrderId == orderId).FirstOrDefault();
                        if (order != null && order.OrderStatus != EnumOrderStatus.IssueAndCompleted)
                        {
                            Dictionary <string, string> ticketDict = new Dictionary <string, string>();
                            foreach (AutoTicketInfo item in b2bList)
                            {
                                if (!ticketDict.ContainsKey(item.PassengerName))
                                {
                                    ticketDict.Add(item.PassengerName, item.TicketNumber);
                                }
                            }
                            var behavior = order.State.GetBehaviorByCode("TicketsIssue");
                            behavior.SetParame("ticketDict", ticketDict);
                            behavior.SetParame("operatorName", "系统");
                            behavior.SetParame("platformCode", "系统");
                            behavior.SetParame("opratorSource", "通知");
                            behavior.SetParame("remark", order.Policy.PolicyType + "自动出票");
                            behavior.Execute();
                            unitOfWorkRepository.PersistUpdateOf(order);
                            unitOfWork.Commit();
                            result = "true";
                            sbLog.Append("处理成功\r\n");
                            try
                            {
                                MessageQueueManager.SendMessage(orderId, 0);
                            }
                            catch (Exception e)
                            {
                                Logger.WriteLog(LogType.ERROR, string.Format("{0}:写入总表失败", order.OrderId), e);
                            }
                        }
                        else
                        {
                            sbLog.AppendFormat("未找到订单号:{0}\r\n", orderId);
                        }
                    }
                    else
                    {
                        sbLog.AppendFormat("{0}\r\n", b2BResponse.Remark);
                    }
                    #endregion
                }
                else if (!string.IsNullOrEmpty(payXML))
                {
                    //B2B自动支付通知
                    result = "true";
                }
            }
            catch (Exception e)
            {
                sbLog.Append("异常信息:" + e.Message + e.StackTrace + "\r\n");
            }
            finally
            {
                sbLog.Append("End=====================================================================\r\n\r\n");
                new CommLog().WriteLog("B2BNotify", sbLog.ToString());
                //回复数据 true false
                response.WriteLine(result);
            }
        }
Пример #4
0
        public override Task <bool> Event(Channel channel, object model, BasicDeliverEventArgs ea, InputVariables input, OutputVariables output)
        {
            var idString = Encoding.UTF8.GetString((byte[])ea.BasicProperties.Headers["id"]); // Вытаскиваем инфу в заголовках?
            var id       = Guid.Parse(idString);

            //logger.Error("Пишем лог логики модуля");
            //loggerResponse.Error("Пишем лог респонса");

            // loggerResponse.Error($"{JsonConvert.SerializeObject(input)}");


            var data = new Dictionary <string, string>
            {
                { StructureType.LoginId, input.LoginId },
                { StructureType.Password, input.Password },
                { StructureType.VIN, input.VIN }
            };

            var b2bParams = getB2bParameters(data);
            var request   = new B2BRequest()
            {
                parameter = b2bParams.ToArray()
            };

            B2BResponse response = null;

            try
            {
                response = audaHistoryServices.History(request);
            }
            catch (WebException we)
            {
                if (false) //TODO: Обработка ошибок (недостаточно данных для реализации)
                {
                    logger.Error($"Error");
                    return(Task.FromResult(true));
                }
                else
                {
                    throw we;
                }
            }

            if (response == null || response.text == null)
            {
                logger.Error($"{id} | Некорректный response. {JsonConvert.SerializeObject(response)}");
                return(Task.FromResult(true));
            }


            output.Response = response.message;

            // Если требуется повторить задание
            if (false)
            {
                return(Task.FromResult(false));
            }

            // Можно создать задачу для другого модуля
            if (false)
            {
                channel.Props.Add("id", Encoding.UTF8.GetBytes(Guid.NewGuid().ToString()));
                channel.Publish(Exchanges.TestExchange, RabbitSettings.TestExchange.Routing.Test);
            }

            return(Task.FromResult(true));
        }