Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }