示例#1
0
        public void Execute(ScanShapefileArgs args)
        {
            using (var conn = this.connectionFactory())
                using (var session = SqlSession.Open(conn))
                {
                    var repo     = new SqlRepository(session);
                    var provider = new ShapefileFeatureCollectionProvider(args.PathToShapefile);
                    var cmd      = new ScanShapefileCommand(repo, provider.Get);
                    var req      = Mapper.Map <ScanShapefileRequest>(args);
                    var res      = cmd.Execute(req);

                    res.MatchSome(x =>
                    {
                        session.Commit();
                        var json = JsonConvert.SerializeObject(x);
                        Console.WriteLine(json);
                    });

                    res.MatchNone(x =>
                    {
                        session.Rollback();
                        Log.Error(x, "Could not scan shapefile {Shapefile}", req.PathToShapefile);
                    });
                }
        }
        public void Execute(ImportAttributeValuesArgs args)
        {
            using (var conn = this.connectionFactory())
                using (var session = SqlSession.Open(conn))
                {
                    var repo     = new SqlRepository(session);
                    var provider = new ShapefileFeatureCollectionProvider(args.PathToShapefile);
                    var cmd      = new ImportAttributeValuesCommand(repo, provider.Get);
                    var req      = Mapper.Map <ImportAttributeValuesRequest>(args);
                    var res      = cmd.Execute(req);

                    res.MatchSome(x =>
                    {
                        session.Commit();
                        Log.Information(
                            "Imported {RowCount} values from {Shapefile} into data set {DataSetId}",
                            x.RowCount,
                            args.PathToShapefile,
                            args.DataSetId);
                    });

                    res.MatchNone(x =>
                    {
                        session.Rollback();
                        Log.Error(
                            x,
                            "Failed to import attribute values from {Shapefile}",
                            args.PathToShapefile);
                    });
                }
        }
示例#3
0
        public void Execute(ImportFeatureTypeArgs args)
        {
            using (var conn = this.connectionFactory())
                using (var session = SqlSession.Open(conn))
                {
                    var repo     = new SqlRepository(session);
                    var provider = new ShapefileFeatureCollectionProvider(args.PathToShapefile);
                    var cmd      = new ImportFeatureTypeCommand(repo, provider.Get);
                    var req      = Mapper.Map <ImportFeatureTypeRequest>(args);
                    var res      = cmd.Execute(req);

                    res.MatchSome(x =>
                    {
                        session.Commit();
                        Log.Information(
                            "Imported feature type {FeatureTypeName} ({FeatureTypeId}) for tenant {TenantName} ({TenantId})",
                            x.FeatureType.Name,
                            x.FeatureType.Id,
                            x.Tenant.Name,
                            x.Tenant.Id);
                    });

                    res.MatchNone(x =>
                    {
                        session.Rollback();
                        Log.Error(
                            x,
                            "Failed to import feature type from shapefile {Shapefile}",
                            args.PathToShapefile);
                    });
                }
        }
示例#4
0
        public void Execute(ImportFeaturesArgs args)
        {
            using (var conn = this.connectionFactory())
                using (var session = SqlSession.Open(conn))
                {
                    var repo     = new SqlRepository(session);
                    var provider = new ShapefileFeatureCollectionProvider(args.PathToShapefile);
                    var cmd      = new ImportFeaturesCommand(repo, provider.Get);
                    var req      = Mapper.Map <ImportFeaturesRequest>(args);
                    var res      = cmd.Execute(req);

                    res.MatchSome(x =>
                    {
                        session.Commit();
                        Log.Information(
                            "Imported {FeatureCount} features from {Shapefile}",
                            x.RowCount,
                            args.PathToShapefile);
                    });

                    res.MatchNone(x =>
                    {
                        session.Rollback();
                        Log.Error(
                            x,
                            "Could not import features from shapefile {Shapefile}",
                            args.PathToShapefile);
                    });
                }
        }
示例#5
0
        public void Execute(NewPlotArgs args)
        {
            using (var conn = this.connectionFactory())
                using (var session = SqlSession.Open(conn))
                {
                    var repo     = new SqlRepository(session);
                    var provider = new ShapefileFeatureCollectionProvider(args.PathToShapefile);
                    var cmd      = new NewPlotCommand(repo, provider.Get);
                    var req      = Mapper.Map <NewPlotRequest>(args);
                    var res      = cmd.Execute(req);

                    res.MatchSome(x =>
                    {
                        session.Commit();
                        Log.Information(
                            "Created plot {PlotName} with id {PlotId}",
                            x.Plot.Name,
                            x.Plot.Id);
                    });

                    res.MatchNone(x =>
                    {
                        session.Rollback();
                        Log.Error(
                            x,
                            "Failed to create plot from shapefile {Shapefile}",
                            args.PathToShapefile);
                    });
                }
        }
示例#6
0
        public void Execute(GetStatisticsArgs args)
        {
            var provider = new ShapefileFeatureCollectionProvider(args.PathToShapefile);
            var cmd      = new GetStatisticsCommand(provider.Get);
            var req      = Mapper.Map <GetStatisticsRequest>(args);
            var res      = cmd.Execute(req);

            res.MatchSome(x =>
            {
                var json = JsonConvert.SerializeObject(x);
                Console.WriteLine(json);
            });

            res.MatchNone(x =>
            {
                Log.Error(
                    x,
                    "Could not get statistics for shapefile {Shapefile}",
                    args.PathToShapefile);
            });
        }
示例#7
0
        public void Execute(GetCategoriesArgs args)
        {
            var classifier = new CategorizingClassifier();
            var provider   = new ShapefileFeatureCollectionProvider(args.PathToShapefile);
            var cmd        = new GetCategoriesCommand(classifier, provider.Get);
            var req        = Mapper.Map <GetCategoriesRequest>(args);
            var res        = cmd.Execute(req);

            res.MatchSome(x =>
            {
                var json = JsonConvert.SerializeObject(x.Result);
                Console.WriteLine(json);
            });

            res.MatchNone(x =>
            {
                Log.Error(
                    x,
                    "Failed to categorize data set from shapefile {Shapefile",
                    args.PathToShapefile);
            });
        }
示例#8
0
        public void Execute(GetClassesArgs args)
        {
            var classifier = new NestedMeansClassifier(args.Depth);
            var provider   = new ShapefileFeatureCollectionProvider(args.PathToShapefile);
            var cmd        = new GetClassesCommand <double>(classifier, provider.Get);
            var req        = Mapper.Map <GetClassesRequest>(args);
            var res        = cmd.Execute(req);

            res.MatchSome(x =>
            {
                var json = JsonConvert.SerializeObject(x);
                Console.WriteLine(json);
            });

            res.MatchNone(x =>
            {
                Log.Error(
                    x,
                    "Failed to quantify data set from shapefile {Shapefile}",
                    args.PathToShapefile);
            });
        }
示例#9
0
        public void Execute(ImportStyleArgs args)
        {
            using (var conn = this.connectionFactory())
                using (var session = SqlSession.Open(conn))
                {
                    var repo     = new SqlRepository(session);
                    var provider = new ShapefileFeatureCollectionProvider(args.PathToShapefile);
                    var cmd      = new ImportStyleCommand(repo, provider.Get);
                    var req      = Mapper.Map <ImportStyleRequest>(args);
                    var res      = cmd.Execute(req);

                    res.MatchSome(x =>
                    {
                        session.Commit();
                    });

                    res.MatchNone(x =>
                    {
                        session.Rollback();
                    });
                }
        }
示例#10
0
        public void Execute(ImportDataSetArgs args)
        {
            args.Name = string.IsNullOrWhiteSpace(args.Name)
                ? Path.GetFileNameWithoutExtension(args.PathToShapefile)
                : args.Name;

            using (var conn = this.connectionFactory())
                using (var session = SqlSession.Open(conn))
                {
                    var repo     = new SqlRepository(session);
                    var provider = new ShapefileFeatureCollectionProvider(args.PathToShapefile);
                    var cmd      = new ImportDataSetCommand(repo, provider.Get);
                    var req      = Mapper.Map <ImportDataSetRequest>(args);
                    var res      = cmd.Execute(req);

                    res.MatchSome(x =>
                    {
                        session.Commit();
                        Log.Information(
                            "Imported {DataSetName} ({DataSetId}) for plot {PlotName} ({PlotId})",
                            x.DataSet.Name,
                            x.DataSet.Id,
                            x.Plot.Name,
                            x.Plot.Id);
                    });

                    res.MatchNone(x =>
                    {
                        session.Rollback();
                        Log.Error(
                            x,
                            "Failed to import data set from shapefile {Shapefile}",
                            args.PathToShapefile);
                    });
                }
        }