Example #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                var fact = new MgdServiceFactory();
                MgFeatureService featSvc = (MgdFeatureService)fact.CreateService(MgServiceType.FeatureService);
                MgFeatureQueryOptions query = new MgFeatureQueryOptions();
                string[] propNames = txtProps.Text.Split(',');
                foreach (var p in propNames)
                {
                    if (string.IsNullOrEmpty(p))
                        continue;

                    query.AddFeatureProperty(p);
                }

                foreach (Pair p in lstComputed.Items)
                {
                    query.AddComputedProperty(p.Name, p.Expr);
                }

                if (!string.IsNullOrEmpty(txtFilter.Text.Trim()))
                    query.SetFilter(txtFilter.Text.Trim());

                MgResourceIdentifier fsId = new MgResourceIdentifier(txtFeatureSource.Text);

                MgFeatureReader reader = featSvc.SelectFeatures(fsId, txtClass.Text, query);
                new ReaderResponseDialog(reader).ShowDialog();
            }
            catch (MgException ex)
            {
                MessageBox.Show(ex.ToString(), "Error from MapGuide");
            }
        }
Example #2
0
        public override TestResult Execute(int paramSetId)
        {
            try
            {
                NameValueCollection param = new NameValueCollection();
                _unitTestVm.ReadParameterValue(paramSetId, "RESOURCEID", param);
                _unitTestVm.ReadParameterValue(paramSetId, "CLASSNAME", param);
                _unitTestVm.ReadParameterValue(paramSetId, "PROPERTIES", param);
                _unitTestVm.ReadParameterValue(paramSetId, "FILTER", param);

                MgResourceIdentifier resId = null;
                if (param["RESOURCEID"] != null)
                {
                    resId = new MgResourceIdentifier(param["RESOURCEID"]);
                }

                MgFeatureQueryOptions query = new MgFeatureQueryOptions();
                //TODO: Set query options
                if (param["FILTER"] != null)
                {
                    query.SetFilter(param["FILTER"]);
                }

                //PROPERTIES should be stored in the database as comma separated string without spaces
                if (param["PROPERTIES"] != null)
                {
                    string [] props = param["PROPERTIES"].Split(',');
                    foreach (var p in props)
                    {
                        query.AddFeatureProperty(p);
                    }
                }

                MgFeatureReader reader     = _featureService.SelectFeatures(resId, param["CLASSNAME"], query);
                MgByteReader    byteReader = reader.ToXml();
                reader.Close();
                return(TestResult.FromByteReader(byteReader));
            }
            catch (MgException ex)
            {
                return(TestResult.FromMgException(ex));
            }
            catch (Exception ex)
            {
                return(TestResult.FromException(ex));
            }
        }
Example #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                var fact = new MgdServiceFactory();
                MgFeatureService      featSvc = (MgdFeatureService)fact.CreateService(MgServiceType.FeatureService);
                MgFeatureQueryOptions query   = new MgFeatureQueryOptions();
                string[] propNames            = txtProps.Text.Split(',');
                foreach (var p in propNames)
                {
                    if (string.IsNullOrEmpty(p))
                    {
                        continue;
                    }

                    query.AddFeatureProperty(p);
                }

                foreach (Pair p in lstComputed.Items)
                {
                    query.AddComputedProperty(p.Name, p.Expr);
                }

                if (!string.IsNullOrEmpty(txtFilter.Text.Trim()))
                {
                    query.SetFilter(txtFilter.Text.Trim());
                }

                MgResourceIdentifier fsId = new MgResourceIdentifier(txtFeatureSource.Text);

                MgFeatureReader reader = featSvc.SelectFeatures(fsId, txtClass.Text, query);
                new ReaderResponseDialog(reader).ShowDialog();
            }
            catch (MgException ex)
            {
                MessageBox.Show(ex.ToString(), "Error from MapGuide");
            }
        }
Example #4
0
        private void SetPropertyMinMaxCount(MgLayerBase layer, MgDataPropertyDefinition prop)
        {
            var provider = _viewer.GetProvider();

            var featureService = (MgFeatureService)provider.CreateService(MgServiceType.FeatureService);
            MgResourceIdentifier resId = new MgResourceIdentifier(layer.GetFeatureSourceId());

            String minValue = null;
            String maxValue = null;
            int count = 0;

            MgFeatureQueryOptions queryOptions = new MgFeatureQueryOptions();
            queryOptions.AddFeatureProperty(prop.Name);

            MgFeatureReader featureReader = featureService.SelectFeatures(resId, layer.GetFeatureClassName(), queryOptions);
            Dictionary<string, string> bucket = new Dictionary<string, string>();
            while (featureReader.ReadNext())
            {
                String value = Util.GetFeaturePropertyValue(featureReader, prop.Name);
                bucket[value] = value;
                int propertyType = featureReader.GetPropertyType(prop.Name);
                if (count == 0)
                {
                    maxValue = value;
                    minValue = value;
                }
                switch (propertyType)
                {
                    case MgPropertyType.String:
                        if (value.Length > 0)
                        {
                            if (value.CompareTo(maxValue) > 0)
                                maxValue = value;
                            if (value.CompareTo(minValue) < 0)
                                minValue = value;
                        }
                        break;
                    case MgPropertyType.Byte:
                    case MgPropertyType.Int16:
                    case MgPropertyType.Int32:
                    case MgPropertyType.Int64:
                        if (value.Length > 0)
                        {
                            if (Int64.Parse(value) > Int64.Parse(maxValue))
                                maxValue = value;
                            if (Int64.Parse(value) < Int64.Parse(minValue))
                                minValue = value;
                        }
                        break;
                    case MgPropertyType.Single:
                    case MgPropertyType.Double:
                        if (value != null)
                        {
                            if (Double.Parse(value) > Double.Parse(maxValue))
                                maxValue = value;
                            if (Double.Parse(value) < Double.Parse(minValue))
                                minValue = value;
                        }
                        count++;
                        break;
                    case MgPropertyType.Boolean:
                    case MgPropertyType.DateTime:
                    case MgPropertyType.Null:
                    case MgPropertyType.Blob:
                    case MgPropertyType.Clob:
                    case MgPropertyType.Feature:
                    case MgPropertyType.Geometry:
                        break;
                }
                count++;
            }
            featureReader.Close();

            txtMin.Text = minValue;
            txtMax.Text = maxValue;
            if (THEME_INDIVIDUAL == cmbDistribution.SelectedValue.ToString())
                count = bucket.Count;
            numRules.Value = featureCount = count;
        }
Example #5
0
        private void SetPropertyMinMaxCount(MgLayerBase layer, MgDataPropertyDefinition prop)
        {
            var provider = _viewer.GetProvider();

            var featureService         = (MgFeatureService)provider.CreateService(MgServiceType.FeatureService);
            MgResourceIdentifier resId = new MgResourceIdentifier(layer.GetFeatureSourceId());

            String minValue = null;
            String maxValue = null;
            int    count    = 0;

            MgFeatureQueryOptions queryOptions = new MgFeatureQueryOptions();

            queryOptions.AddFeatureProperty(prop.Name);

            MgFeatureReader             featureReader = featureService.SelectFeatures(resId, layer.GetFeatureClassName(), queryOptions);
            Dictionary <string, string> bucket        = new Dictionary <string, string>();

            while (featureReader.ReadNext())
            {
                String value = Util.GetFeaturePropertyValue(featureReader, prop.Name);
                bucket[value] = value;
                int propertyType = featureReader.GetPropertyType(prop.Name);
                if (count == 0)
                {
                    maxValue = value;
                    minValue = value;
                }
                switch (propertyType)
                {
                case MgPropertyType.String:
                    if (value.Length > 0)
                    {
                        if (value.CompareTo(maxValue) > 0)
                        {
                            maxValue = value;
                        }
                        if (value.CompareTo(minValue) < 0)
                        {
                            minValue = value;
                        }
                    }
                    break;

                case MgPropertyType.Byte:
                case MgPropertyType.Int16:
                case MgPropertyType.Int32:
                case MgPropertyType.Int64:
                    if (value.Length > 0)
                    {
                        if (Int64.Parse(value) > Int64.Parse(maxValue))
                        {
                            maxValue = value;
                        }
                        if (Int64.Parse(value) < Int64.Parse(minValue))
                        {
                            minValue = value;
                        }
                    }
                    break;

                case MgPropertyType.Single:
                case MgPropertyType.Double:
                    if (value != null)
                    {
                        if (Double.Parse(value) > Double.Parse(maxValue))
                        {
                            maxValue = value;
                        }
                        if (Double.Parse(value) < Double.Parse(minValue))
                        {
                            minValue = value;
                        }
                    }
                    count++;
                    break;

                case MgPropertyType.Boolean:
                case MgPropertyType.DateTime:
                case MgPropertyType.Null:
                case MgPropertyType.Blob:
                case MgPropertyType.Clob:
                case MgPropertyType.Feature:
                case MgPropertyType.Geometry:
                    break;
                }
                count++;
            }
            featureReader.Close();

            txtMin.Text = minValue;
            txtMax.Text = maxValue;
            if (THEME_INDIVIDUAL == cmbDistribution.SelectedValue.ToString())
            {
                count = bucket.Count;
            }
            numRules.Value = featureCount = count;
        }
Example #6
0
        public IFeatureReader QueryFeatureSource(string resourceID, string schema, string query, string[] columns, System.Collections.Specialized.NameValueCollection computedProperties)
        {
            MgFeatureService fes = this.Connection.CreateService(MgServiceType.FeatureService) as MgFeatureService;
            MgFeatureQueryOptions mgf = new MgFeatureQueryOptions();
            if (query != null)
                mgf.SetFilter(query);

            if (columns != null && columns.Length != 0)
                foreach(string s in columns)
                    mgf.AddFeatureProperty(s);

            if (computedProperties != null && computedProperties.Count > 0)
                foreach (string s in computedProperties.Keys)
                    mgf.AddComputedProperty(s, computedProperties[s]);

            MgFeatureReader mr = fes.SelectFeatures(new MgResourceIdentifier(resourceID), schema, mgf);

            LogMethodCall("MgFeatureService::SelectFeatures", true, resourceID, schema, "MgFeatureQueryOptions");

               			return new LocalNativeFeatureReader(mr);
        }
Example #7
0
        public IFeatureReader QueryFeatureSource(string resourceID, string schema, string query, string[] columns, NameValueCollection computedProperties)
        {
            var fes = GetFeatureService();
            MgFeatureQueryOptions mgf = new MgFeatureQueryOptions();
            if (query != null)
                mgf.SetFilter(query);

            if (columns != null && columns.Length != 0)
                foreach (string s in columns)
                    mgf.AddFeatureProperty(s);

            if (computedProperties != null && computedProperties.Count > 0)
                foreach (string s in computedProperties.Keys)
                    mgf.AddComputedProperty(s, computedProperties[s]);

            var fsId = new MgResourceIdentifier(resourceID);
            MgFeatureReader mr = fes.SelectFeatures(fsId, schema, mgf);

            LogMethodCall("MgFeatureService::SelectFeatures", true, resourceID, schema, "MgFeatureQueryOptions");

            return new LocalNativeFeatureReader(mr);
        }