private List <Row> selectRegions(int datasetId, Tuple <int, int> from, Tuple <int, int> to, int zoomLevel) { CassandraQueryBuilder queryBuilder = new CassandraQueryBuilder() { QueryType = CassandraQueryBuilder.QueryTypes.Select }; queryBuilder.TableName = "points_region_zoom_" + zoomLevel; queryBuilder.SelectColumnNames = new List <string>() { "row", "column", "points" }; queryBuilder.ClausesList.Add(new BuilderTuple("datasetId", "dataset_id", CassandraQueryBuilder.Clauses.Equals)); queryBuilder.ClausesList.Add(new BuilderTuple("fromRow", "row", CassandraQueryBuilder.Clauses.GreaterOrEqual)); queryBuilder.ClausesList.Add(new BuilderTuple("fromColumn", "column", CassandraQueryBuilder.Clauses.GreaterOrEqual)); queryBuilder.ClausesList.Add(new BuilderTuple("toRow", "row", CassandraQueryBuilder.Clauses.LessOrEqual)); queryBuilder.ClausesList.Add(new BuilderTuple("toColumn", "column", CassandraQueryBuilder.Clauses.LessOrEqual)); executionInstance.PrepareQuery(queryBuilder); return(executionInstance.ExecuteQuery(new { datasetId, fromRow = from.Item1, fromColumn = from.Item2, toRow = to.Item1, toColumn = to.Item2 }).Result); }
private List <Row> selectPointDetails(int dataSetID, PointBase basicPoint) { CassandraQueryBuilder queryBuilder = new CassandraQueryBuilder() { QueryType = CassandraQueryBuilder.QueryTypes.Select }; //update: do not use latitude and longitude to search for points details queryBuilder.TableName = "points_by_dataset"; queryBuilder.ClausesList.Add(new BuilderTuple("dataSetID", "dataset_id", CassandraQueryBuilder.Clauses.Equals)); queryBuilder.ClausesList.Add(new BuilderTuple("number", "number", CassandraQueryBuilder.Clauses.Equals)); executionInstance.UserDefinedTypeMappings.Define(UdtMap.For <PointDisplacementType>("points_displacements")); var preparedStatement = executionInstance.GetPreparedStatement("points_by_dataset", queryBuilder); var result = executionInstance.ExecuteQuery(new { dataSetID, number = basicPoint.Number }, preparedStatement).Result; return(result); }
private async Task <bool> insertRegion(PointsRegionsLevel regionLevel, int datasetId) { IEnumerable <SectionedPointsRegionType> regionTypes = PointsRegionType.GetRegions(regionLevel, datasetId); CassandraQueryBuilder queryBuilder = new CassandraQueryBuilder(); queryBuilder.TableName = "points_region_zoom_" + regionLevel.ZoomLevel; queryBuilder.Type = typeof(SectionedPointsRegionType); queryBuilder.QueryType = CassandraQueryBuilder.QueryTypes.InsertFromType; this.executionInstance.PrepareQuery(queryBuilder); try { ConcurrentQueue <Exception> exceptions = new ConcurrentQueue <Exception>(); await regionTypes.ParallelForEachAsync(async regionType => { try { await executionInstance.ExecuteNonQuery(new { regionType.dataset_id, regionType.column, regionType.row, regionType.points, regionType.section }); } catch (Exception exception) { exceptions.Enqueue(exception); } }); if (exceptions.Count > 0) { throw new Exception("Exceptions catched in tasks", exceptions.First()); } } catch (Exception exception) { CoreContainers.LogsRepository.LogError(exception, Core.Database.Logs.LogTrigger.DataAccess); return(false); } return(true); }
private async Task <bool> insertPointsDataset(PointsDataSet pointsDataset) { IEnumerable <PointType> pointTypes = PointType.GetPoints(pointsDataset); CassandraQueryBuilder queryBuilder = new CassandraQueryBuilder(); queryBuilder.TableName = "points_by_dataset"; queryBuilder.Type = typeof(PointType); queryBuilder.QueryType = CassandraQueryBuilder.QueryTypes.InsertFromType; // if (pointsDataset.ZoomLevel != 0) queryBuilder.IgnoredColumnNames = new List<string>() { "displacements" }; this.executionInstance.PrepareQuery(queryBuilder); try { await pointTypes.ParallelForEachAsync(async pointType => { await executionInstance.ExecuteNonQuery(new { pointType.dataset_id, number = pointType.point_number, pointType.longitude, pointType.latitude, pointType.height, pointType.deformation_rate, pointType.standard_deviation, pointType.estimated_height, pointType.estimated_deformation_rate, pointType.observations, pointType.displacements }); }); } catch (Exception exception) { CoreContainers.LogsRepository.LogError(exception, Core.Database.Logs.LogTrigger.DataAccess); } return(true); }
private List <Row> selectBasicPointsDataset(int dataSetID, Tuple <decimal, decimal> from, Tuple <decimal, decimal> to) { CassandraQueryBuilder queryBuilder = new CassandraQueryBuilder() { QueryType = CassandraQueryBuilder.QueryTypes.Select }; queryBuilder.TableName = "points_by_dataset"; queryBuilder.SelectColumnNames = new List <string>() { "latitude", "longitude", "number", "height", "deformation_rate", "standard_deviation", "estimated_height", "estimated_deformation_rate" }; queryBuilder.ClausesList.Add(new BuilderTuple("dataSetID", "dataset_id", CassandraQueryBuilder.Clauses.Equals)); queryBuilder.ClausesList.Add(new BuilderTuple("leftLatitude", "latitude", CassandraQueryBuilder.Clauses.GreaterOrEqual)); queryBuilder.ClausesList.Add(new BuilderTuple("leftLongitude", "longitude", CassandraQueryBuilder.Clauses.GreaterOrEqual)); queryBuilder.ClausesList.Add(new BuilderTuple("rightLatitude", "latitude", CassandraQueryBuilder.Clauses.LessOrEqual)); queryBuilder.ClausesList.Add(new BuilderTuple("rightLongitude", "longitude", CassandraQueryBuilder.Clauses.LessOrEqual)); executionInstance.PrepareQuery(queryBuilder); return(executionInstance.ExecuteQuery(new { dataSetID, leftLatitude = from.Item1, leftLongitude = from.Item2, rightLatitude = to.Item1, rightLongitude = to.Item2 }).Result); }
private List <Row> selectRegion(int datasetId, int row, int column, int zoomLevel) { var preparedStatement = executionInstance.GetPreparedStatement("points_region_zoom_" + zoomLevel); if (preparedStatement == null) { CassandraQueryBuilder queryBuilder = new CassandraQueryBuilder() { QueryType = CassandraQueryBuilder.QueryTypes.Select }; queryBuilder.TableName = "points_region_zoom_" + zoomLevel; queryBuilder.SelectColumnNames = new List <string>() { "row", "column", "points" }; queryBuilder.ClausesList.Add(new BuilderTuple("datasetId", "dataset_id", CassandraQueryBuilder.Clauses.Equals)); queryBuilder.ClausesList.Add(new BuilderTuple("row", "row", CassandraQueryBuilder.Clauses.Equals)); queryBuilder.ClausesList.Add(new BuilderTuple("column", "column", CassandraQueryBuilder.Clauses.Equals)); preparedStatement = executionInstance.GetPreparedStatement("points_region_zoom_" + zoomLevel, queryBuilder); } var result = executionInstance.ExecuteQuery(new { datasetId, row, column }, preparedStatement).Result; return(result); }