private bool SentToHttp(HttpSendContent message, HttpNotifySetting setting)
        {
            var httpClient = new HttpClient();


            Task <HttpResponseMessage> responseTask = null;

            switch (setting.Method)
            {
            case HttpNotifyMessageMethod.GET:
                var queryString = message.MakeQueryString();
                responseTask = httpClient.GetAsync(message.Url + "?" + queryString);
                break;

            case HttpNotifyMessageMethod.POST:
                responseTask = httpClient.PostAsync(message.Url, message.MakeContent(setting.SendContentType));
                break;

            case HttpNotifyMessageMethod.PUT:
                responseTask = httpClient.PutAsync(message.Url, message.MakeContent(setting.SendContentType));
                break;
            }

            if (responseTask != null)
            {
                message.ResponseCode    = (int)responseTask.Result.StatusCode;
                message.ResponseContent = responseTask.Result.Content.ReadAsStringAsync().Result;
            }

            return(responseTask != null && responseTask.Result.IsSuccessStatusCode);
        }
Beispiel #2
0
 public HttpNotifySettingDetailViewModel(HttpNotifySetting setting) : base(setting)
 {
     if (setting == null)
     {
         throw new ArgumentNullException(nameof(setting));
     }
     Id                 = setting.Id;
     Url                = setting.Url;
     SendType           = setting.SendType;
     Method             = setting.Method;
     ContentType        = setting.SendContentType;
     SubmitDataTemplate = setting.SubmitDataTemplate;
     RawContentTemplate = setting.RawContentTemplate;
 }
Beispiel #3
0
        public void Test4_()
        {
            var sett = new HttpNotifySetting();

            sett.Url = "http://10.33.22.11/jkkks";
            var urlData = new Dictionary <string, string>();

            urlData.Add("code", "a4-123");
            urlData.Add("merchant", "merchantA-2");
            var actual = sett.FormatUrl(urlData);

            var url = sett.Url;

            Assert.Equal(url, actual);
        }
Beispiel #4
0
        public void Test1_URL()
        {
            var sett = new HttpNotifySetting();

            sett.Url = "http://10.33.22.11/{code}/{merchant}/jkkks";
            var urlData = new Dictionary <string, string>();

            urlData.Add("code", "a4-123");
            urlData.Add("merchant", "merchantA-2");
            var actual = sett.FormatUrl(urlData);

            var url = sett.Url;

            foreach (var key in urlData.Keys)
            {
                url = url.Replace("{" + key + "}", urlData[key]);
            }
            Assert.Equal(url, actual);
        }
 public bool Send(HttpSendContent message, HttpNotifySetting setting)
 {
     if (message == null)
     {
         throw new ArgumentNullException(nameof(message));
     }
     if (setting == null)
     {
         throw new ArgumentNullException(nameof(setting));
     }
     try
     {
         return(SentToHttp(message, setting));
     }
     catch (Exception ex)
     {
         message.ResponseContent  = ex.Message;
         message.ResponseContent += "\r\n" + ex.StackTrace;
         return(false);
     }
 }
        public void Test()
        {
            if (Directory.Exists("dbFolder"))
            {
                Directory.Delete("dbFolder", true
                                 );
            }
            var store  = new NotifySettingStore("dbFolder");
            var actual = new HttpNotifySetting
            {
                SendContentType = "test",
                MessageType     = "justTest",
            };

            store.SaveOrUpdate(actual);
            Assert.NotEqual(0, actual.Id);


            var target = store.GetBy <NotifySettingBase>(actual.MessageType);

            Assert.NotNull(target);
        }