public static TM1ClientConfig Load(String configFilePath) { TM1ClientConfig config = null; if (String.IsNullOrEmpty(configFilePath)) { throw new ArgumentNullException(nameof(configFilePath)); } if (!File.Exists(configFilePath)) { String configDirPath = Path.GetDirectoryName(configFilePath); if (!Directory.Exists(configDirPath)) { Directory.CreateDirectory(configDirPath); } using (StreamWriter stream = File.CreateText(configFilePath)) { config = TM1ClientConfig.GetDefault(); JsonSerializer serializer = JsonSerializer.Create(new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore }); serializer.Serialize(stream, config); } } using (StreamReader file = File.OpenText(configFilePath)) { JsonSerializer serializer = new JsonSerializer(); config = (TM1ClientConfig)serializer.Deserialize(file, typeof(TM1ClientConfig)); } return(config); }
private HttpClient GetConfiguredTM1Client(TM1ClientConfig config) { HttpClientHandler httpClientHandler = new HttpClientHandler(); httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return(true); }; // HttpClient httpClient = new HttpClient(httpClientHandler); httpClient.BaseAddress = config.ServiceBaseAddress; httpClient.DefaultRequestHeaders.Accept.Clear(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); httpClient.DefaultRequestHeaders.Add("Authorization", $"CAMNamespace {ToBase64($"{config.UserName}:{config.UserPassword}:{config.Domain}")}"); // return(httpClient); // String ToBase64(String value) { var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(value); return(System.Convert.ToBase64String(plainTextBytes)); } }
internal void OnDeserialized(StreamingContext context) { TM1ClientConfig = TM1ClientConfig.Load(TM1ConfigFilePath); }
public TM1Client(TM1ClientConfig config) { Config = config; HttpClient = GetConfiguredTM1Client(Config); }