示例#1
0
        public string GetPreviewUrl(QMailer.EmailConfig config)
        {
            if (config.Model == null)
            {
                return(null);
            }

            config.AssemblyQualifiedTypeNameModel = config.Model.GetType().AssemblyQualifiedName;

            var result = ExecuteRetry <Newtonsoft.Json.Linq.JObject>(client =>
            {
                return(client.PostAsJsonAsync($"api/qmailer/previewkey", config).Result);
            }, true);
            var key = result["messageId"];

            //var key = result.GetType().GetProperty("messageId", System.Reflection.BindingFlags.GetProperty | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance).GetValue(result, null);
            string url = null;

            if (GlobalConfiguration.Configuration.ApiUrl.StartsWith("http"))
            {
                url = $"{GlobalConfiguration.Configuration.ApiUrl}/qmailer/preview/{key}";
            }
            else
            {
                url = $"http://{GlobalConfiguration.Configuration.ApiUrl}/qmailer/preview/{key}";
            }

            return(url);
        }
示例#2
0
        public string GetPreviewUrl(QMailer.EmailConfig config)
        {
            if (config.Model == null)
            {
                return(null);
            }

            config.AssemblyQualifiedTypeNameModel = config.Model.GetType().AssemblyQualifiedName;

            var httpClient = new RestSharpClient();
            var r          = httpClient.CreateRequest("api/qmailer/previewkey", RestSharp.Method.POST);

            r.AddBody(config);
            var result = httpClient.Execute <Newtonsoft.Json.Linq.JObject>(r);
            var key    = result["messageId"];

            //var key = result.GetType().GetProperty("messageId", System.Reflection.BindingFlags.GetProperty | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance).GetValue(result, null);
            return(string.Format("http://{0}/qmailer/preview/{1}", GlobalConfiguration.Configuration.ApiUrl.TrimEnd('/'), key));
        }