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); }
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)); }