private Series GetSeries(QueryEnum queryEnum, IndexEnum index, Random random, int times, DataEnum dataEnum) { var data = new List <object>(); if (dataEnum == DataEnum.countries) { var speed = GetIndexSpeed(QueryFactory.Get(queryEnum, index, dataEnum, DataSizeEnum.None, random), times); data.Add(speed); } else { foreach (var value in Enum.GetValues(typeof(DataSizeEnum))) { if ((DataSizeEnum)value == DataSizeEnum.None) { continue; } var speed = GetIndexSpeed(QueryFactory.Get(queryEnum, index, dataEnum, (DataSizeEnum)value, random), times); if (speed.Equals(-1.0d)) { break; } data.Add(speed); } } return(new Series { Name = index.ToString(), Data = new Data(data.ToArray()) }); }
public void CreateIndex(IndexEnum index, DataSizeEnum dataSize, DataEnum data) { string indexName = data.ToString(); indexName += (dataSize == DataSizeEnum.None ? string.Empty : "_" + (int)dataSize); indexName += "_" + index + @"_idx"; if (data == DataEnum.countries) { if (index == IndexEnum.gist) indexName = "countries_geom_gist"; else return; } string createIndexCommandText = @"DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace WHERE c.relname = '" + indexName + @"' AND n.nspname = 'public' ) THEN CREATE INDEX " + indexName + @" ON random_points_" + (int)dataSize + @" USING " + index + @" (geom); END IF; END$$;"; using (var command = new NpgsqlCommand(createIndexCommandText, _conn)) command.ExecuteNonQuery(); }
public static Query Get(QueryEnum queryEnum, IndexEnum index, DataEnum data, DataSizeEnum size, Random random) { switch (queryEnum) { case QueryEnum.FindPointsNearRandomPoints: return new FindPointsNearRandomPointsQuery(index, data, size, random); case QueryEnum.FindNearestNeighbours: return new FindNearestNeighboursQuery(index, data, size, random); case QueryEnum.TouchesAllToAll: return new TouchesAllToAllQuery(index, data, size, random); } return null; }
public async Task <string> GetJsonViewData(IndexEnum index, string id) { using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = _authorizationHeader; var result = await client.GetAsync($"{_baseUrl}/view/{index}/{id}"); if (((int)result.StatusCode >= 200) && ((int)result.StatusCode <= 299)) { var jsonResult = await result.Content.ReadAsStringAsync(); return(jsonResult); } return(""); } }
public FindPointsNearRandomPointsQuery( IndexEnum index, DataEnum data, DataSizeEnum dataSize, Random random, int numberOfPoints = 1, double distance = 1, bool andOr = false ) : base(index, dataSize) { this._random = random; this._distance = distance; this._numberOfPoints = numberOfPoints; this._andOr = andOr; this._data = data; this._qgisPathPrefix = ConfigurationManager.AppSettings["QgisPathPrefix"]; }
public TouchesAllToAllQuery( IndexEnum index, DataEnum data, DataSizeEnum dataSize, Random random, int numberOfPoints = 1, double distance = 1, bool andOr = false, int nearestNeighboursCount = 5 ) : base(index, dataSize) { this._data = data; this._random = random; this._distance = distance; this._numberOfPoints = numberOfPoints; this._andOr = andOr; this._nearestNeighboursCount = nearestNeighboursCount; this._qgisPathPrefix = ConfigurationManager.AppSettings["QgisPathPrefix"]; }
public TouchesAllToAllQuery ( IndexEnum index, DataEnum data, DataSizeEnum dataSize, Random random, int numberOfPoints = 1, double distance = 1, bool andOr = false, int nearestNeighboursCount = 5 ) : base(index, dataSize) { this._data = data; this._random = random; this._distance = distance; this._numberOfPoints = numberOfPoints; this._andOr = andOr; this._nearestNeighboursCount = nearestNeighboursCount; this._qgisPathPrefix = ConfigurationManager.AppSettings["QgisPathPrefix"]; }
public async Task <CensysJsonResult> GetJsonSearchData(IndexEnum index, CensysSearchPost body) { using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = _authorizationHeader; var json = JsonConvert.SerializeObject(body); var data = new StringContent(json, Encoding.UTF8, "application/json"); var url = $"{_baseUrl}/search/{index}"; var response = await client.PostAsync(url, data); var message = $"Request Message Information:- \n\n{response?.RequestMessage}\n\n\n"; message += $"Response Message Header \n\n {response?.Content?.Headers}\n"; if (((int)response.StatusCode >= 200) && ((int)response.StatusCode <= 299)) { var jsonResult = await response.Content.ReadAsStringAsync(); return(new CensysJsonResult { IpRange = body.query, Json = jsonResult, ResponseMessage = message, ResponseStatusCode = response.StatusCode.ToString() }); } return(new CensysJsonResult { IpRange = body.query, ResponseMessage = message, ResponseStatusCode = response.StatusCode.ToString() }); } }
public void RemoveIndex(IndexEnum index, DataSizeEnum dataSize, DataEnum data) { string indexName = data.ToString(); indexName += (dataSize == DataSizeEnum.None ? string.Empty : "_" + (int)dataSize); indexName += "_" + index + @"_idx"; if (data == DataEnum.countries) { if (index == IndexEnum.gist) indexName = "countries_geom_gist"; else return; } string dropIndexCommandText = @"DROP INDEX IF EXISTS " + indexName; using (var command = new NpgsqlCommand(dropIndexCommandText, _conn)) command.ExecuteNonQuery(); }
public void EnableIndex(IndexEnum index, DataSizeEnum dataSize, DataEnum data) { string indexName = data.ToString(); indexName += (dataSize == DataSizeEnum.None ? string.Empty : "_" + (int)dataSize); indexName += "_" + index + @"_idx"; if (data == DataEnum.countries) { if (index == IndexEnum.gist) indexName = "countries_geom_gist"; else return; } string dropIndexCommandText = @"UPDATE pg_index SET indislive = true, indisvalid = true where indexrelid = '" + indexName + @"'::regclass;"; int rowsChanged; using (var command = new NpgsqlCommand(dropIndexCommandText, _conn)) rowsChanged = command.ExecuteNonQuery(); if (rowsChanged != 1) throw new Exception("Nieudana kwerenda - " + dropIndexCommandText); }
protected Query(IndexEnum index, DataSizeEnum dataSize) { this.Index = index; this._dataSize = dataSize; }
private Series GetSeries(QueryEnum queryEnum, IndexEnum index, Random random, int times, DataEnum dataEnum) { var data = new List<object>(); if (dataEnum == DataEnum.countries) { var speed = GetIndexSpeed(QueryFactory.Get(queryEnum, index, dataEnum, DataSizeEnum.None, random), times); data.Add(speed); } else { foreach (var value in Enum.GetValues(typeof(DataSizeEnum))) { if((DataSizeEnum)value == DataSizeEnum.None) continue; var speed = GetIndexSpeed(QueryFactory.Get(queryEnum, index, dataEnum, (DataSizeEnum)value, random), times); if (speed.Equals(-1.0d)) break; data.Add(speed); } } return new Series { Name = index.ToString(), Data = new Data(data.ToArray()) }; }