Пример #1
0
    public void MessageAnalysis(string message)
    {
        #region Commented Old Version
        //string responseXml = "";
        // pass it to some service
        //var client=new HttpClient();
        //string url = ConfigurationManager.AppSettings["ServiceUrl"].ToString(CultureInfo.InvariantCulture);
        //client.BaseAddress = new Uri(url);
        //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));



        //var irequest = new UssdRequestMessage() { TransactionId = "53635424", MSISDN = "911734365", TransactionTime = DateTime.UtcNow.ToString("o"), response = false, USSDServiceCode = "809", USSDRequestString = "*809#" };
        ////HttpResponseMessage response = client.GetAsync("api/Communication/GetResponse?request=" + message).Result;
        //HttpResponseMessage iresponse = client.PostAsJsonAsync("api/communication/GetResponse", irequest).Result;
        //var cont = iresponse.Content.ReadAsAsync<UssdResponseMessage>();

        ////HttpResponseMessage response = client.GetAsync("api/Communication/GetResponse?request=" + message).Result;
        ////HttpResponseMessage response = client.PostAsJsonAsync("api/communication/GetResponse", message).Result;
        //if (iresponse.IsSuccessStatusCode)
        //{
        //    var content = iresponse.Content.ReadAsAsync<UssdResponseMessage>();
        //    responseXml = new USSDXMLWriter(content.Result).GenerateXml();
        //}
        //else
        //{
        //    var request = new USSDXMLReader(message).GenerateMessageObject();
        //    var fault = new FaultResponse() {TransactionId = request.TransactionId,FaultCode = "303",FaultString = "Error occured processing the request",TransactionTime = DateTime.UtcNow};
        //    responseXml = new USSDXMLWriter(fault).GenerateXml();
        //}
        //var request = new USSDXMLReader(message).GenerateMessageObject();
        //var response = new Gate().GetResponse(request);
        //responseXml = new USSDXMLWriter(response).GenerateXml();
        #endregion
        var    client = new HttpClient();
        string url    = ConfigurationManager.AppSettings["ServiceUrl"].ToString(CultureInfo.InvariantCulture);
        client.BaseAddress = new Uri(url);
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        string transactionId = "";
        Random random        = new Random();
        var    trId          = random.Next(0, 99999999);
        transactionId = trId.ToString("0000000#");
        //var request = new UssdRequestMessage() { TransactionId = transactionId, MSISDN = "251911734365", TransactionTime = DateTime.UtcNow.ToString("o"), response = false, USSDServiceCode = "809", USSDRequestString = "*809#" };
        var request    = new USSDXMLReader(message).GenerateMessageObject();
        var serializer = new JavaScriptSerializer();
        var requestCsv = serializer.Serialize(request); //new CsvHelper().WriteObjectToCsv(request);
        HttpResponseMessage response = client.PostAsJsonAsync("service/api/communication/GetResponse", requestCsv).Result;
        var cont = response.Content.ReadAsStringAsync();

        new UssdSender().XmlRpcCall(cont.Result); //.SendUssdResponse(cont.Result);
    }
Пример #2
0
    private UssdResponse GetResponse(object[] parameters)
    {
        var    client = new HttpClient();
        string url    = ConfigurationManager.AppSettings["ServiceUrl"].ToString(CultureInfo.InvariantCulture);

        client.BaseAddress = new Uri(url);
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        var request    = new USSDXMLReader().GetUssdRequest(parameters);
        var serializer = new JavaScriptSerializer();
        var requestCsv = serializer.Serialize(request);//new CsvHelper().WriteObjectToCsv(request);
        HttpResponseMessage response = client.PostAsJsonAsync("service/api/communication/GetResponse", requestCsv).Result;
        var cont  = response.Content.ReadAsAsync <object[]>();
        var resul = (object[])cont.Result;

        return(new UssdResponse()
        {
            TransactionId = resul[0].ToString(), TransactionTime = Convert.ToDateTime(resul[1].ToString()), USSDResponseString = resul[2].ToString().Replace("©", "\n"), action = resul[3].ToString(), ResponseCode = Convert.ToInt32(resul[4])
        });

        //return new UssdResponse() { TransactionId = "123456", TransactionTime = DateTime.Now, USSDResponseString = "Hello Geez " + rpcStruct["MSISDN"].ToString(), action = "end", ResponseCode = 0 };
    }