public bool CreateIndex(IIndexCreateRequest request) { // TODO Validation if (request is null) { Logger.LogError("Definition is invalid"); throw new ArgumentException("Argument \"definition\" is null or not of type ElasticIndexDefinition"); } var node = new Uri(request.IndexerEndpoint); var fileText = System.IO.File.ReadAllText(request.IndexDefinitionFilePath); var settings = new ConnectionSettings(node); var postData = PostData.String(fileText); var client = new ElasticLowLevelClient(settings); var response = client.DoRequest <StringResponse>(HttpMethod.PUT, request.IndexName, postData); if (response.HttpStatusCode.HasValue) { // TODO Good or bad? Logger.LogInformation($"StatusCode {response.HttpStatusCode}"); } Logger.LogDebug(response.DebugInformation); Logger.LogInformation(response.Body); return(response.Success); }
public void SaveObject(Object obj) { Type typeObj = obj.GetType(); if (!System.Configuration.ConfigurationManager.AppSettings["StorageType"].Equals("SQL")) { var node = new Uri(blueChappieSetttings.BlueChappieElasticServer + "/" + typeObj.Name + "lib/"); var config = new ConnectionConfiguration(node); var client = new ElasticLowLevelClient(config); string imgInfo = Newtonsoft.Json.JsonConvert.SerializeObject(obj); PostData<object> postingData = imgInfo; dynamic result0 = client.DoRequest<object>(HttpMethod.PUT, typeObj.Name, postingData); } else { System.Data.DataSet dataSet = new System.Data.DataSet(); System.Data.SqlClient.SqlConnection sqlConnection = new System.Data.SqlClient.SqlConnection("Database=BlueChappie;Server=localhost;uid=ProTrack2;pwd=protrack123;Connect Timeout=30;Min Pool Size=5;Max Pool Size=900;"); System.Data.SqlClient.SqlDataAdapter sqlDataAdapter = new System.Data.SqlClient.SqlDataAdapter(); sqlDataAdapter.SelectCommand = new System.Data.SqlClient.SqlCommand("SELECT TOP 0 * FROM " + typeObj.Name + "lib with (nolock)", sqlConnection); sqlDataAdapter.Fill(dataSet, typeObj.Name + "lib"); System.Data.DataTable tbl = dataSet.Tables[0]; System.Data.DataRow newRow = tbl.Rows.Add(); foreach (System.Data.DataColumn fld in tbl.Columns) { foreach (PropertyInfo imgFields in typeObj.GetProperties()) { if (imgFields.Name.Equals(fld.ColumnName)) { if (!fld.ReadOnly) { newRow.SetField(fld.ColumnName.ToString(), imgFields.GetValue(obj)); } } } } System.Data.DataRow dsRow = dataSet.Tables[typeObj.Name + "lib"].NewRow(); dsRow = newRow; new SqlCommandBuilder(sqlDataAdapter); int result = sqlDataAdapter.Update(dataSet, typeObj.Name + "lib"); } }