Example #1
0
        private void Serialize(FieldSelection field, StringBuilder builder)
        {
            if (field.Alias != null)
            {
                builder.Append(field.Alias);
                builder.Append(": ");
            }

            builder.Append(field.Name);

            if (field.Arguments?.Any() == true)
            {
                builder.Append('(');

                var first = true;
                foreach (var arg in field.Arguments)
                {
                    if (!first)
                    {
                        builder.Append(comma);
                    }
                    builder.Append(arg.Name).Append(colon).Append(SerializeValue(arg.Value));
                    first = false;
                }

                builder.Append(')');
            }

            if (field.Selections.Any() == true)
            {
                SerializeSelections(field, builder);
            }
        }
Example #2
0
        public override FieldSelection BeginVisitFieldSelection(
            FieldSelection selection)
        {
            Tracker.EnterFieldSelection?.Invoke(selection);

            return(base.BeginVisitFieldSelection(selection));
        }
Example #3
0
        public string Serialize(FieldSelection field)
        {
            StringBuilder builder = new StringBuilder();

            Serialize(field, builder);
            return(builder.ToString());
        }
Example #4
0
        public static IReadOnlyDictionary <string, object?> CoerceArgumentValues(
            ISchema schema,
            ObjectType objectType,
            FieldSelection field,
            IReadOnlyDictionary <string, object> coercedVariableValues)
        {
            var coercedValues = new Dictionary <string, object?>();

            var argumentValues      = field.Arguments ?? new List <Language.Nodes.Argument>();
            var fieldName           = field.Name;
            var argumentDefinitions = schema.GetField(objectType.Name, fieldName)
                                      .Arguments;

            if (argumentDefinitions == null)
            {
                return(coercedValues);
            }

            foreach (var argumentDefinitionPair in argumentDefinitions)
            {
                var  argumentDefinition = argumentDefinitionPair.Value;
                Name argumentName       = argumentDefinitionPair.Key;
                var  argument           = argumentValues.SingleOrDefault(a => a.Name == argumentName);
                coercedValues[argumentName] = CoerceArgumentValue(
                    schema,
                    coercedVariableValues,
                    argumentName,
                    argumentDefinition,
                    argument);
            }

            return(coercedValues);
        }
Example #5
0
        private FeatureData GetFeatureData(GetFeatures getFeatures, FieldSelection fieldSelection)
        {
            CheckIsFeatureLayer();

            Features features = (Features)_service.Send(getFeatures);

            FeatureData featureData = fieldSelection.CreateFeatureData();

            featureData.LayerName = Name;
            LoadFeatureData(features, featureData, fieldSelection);

            if (features.FeatureCount.HasMore)
            {
                getFeatures.BeginRecord = 1;

                do
                {
                    getFeatures.BeginRecord += features.FeatureCount.Count;
                    features = (Features)_service.Send(getFeatures);
                    LoadFeatureData(features, featureData, fieldSelection);
                }while (features.FeatureCount.HasMore);
            }

            return(featureData);
        }
Example #6
0
    public static IReadOnlyDictionary <string, object?> CoerceArgumentValues(
        ISchema schema,
        ObjectDefinition objectDefinition,
        FieldSelection field,
        IReadOnlyDictionary <string, object?> coercedVariableValues)
    {
        var coercedValues = new Dictionary <string, object?>();

        var argumentValues      = field.Arguments ?? Arguments.None;
        var fieldName           = field.Name;
        var argumentDefinitions = schema.GetRequiredField(objectDefinition.Name, fieldName)
                                  .Arguments;

        if (argumentDefinitions == null)
        {
            return(coercedValues);
        }

        foreach (var definition in argumentDefinitions)
        {
            var argumentDefinition = definition;
            var argumentName       = definition.Name;
            var argument           = argumentValues.SingleOrDefault(a => a.Name == argumentName);
            coercedValues[argumentName] = CoerceArgumentValue(
                schema,
                coercedVariableValues,
                argumentName,
                argumentDefinition,
                argument);
        }

        return(coercedValues);
    }
Example #7
0
    public static object?Handle(
        IExecutorContext context,
        ObjectDefinition objectDefinition,
        string fieldName,
        TypeBase fieldType,
        FieldSelection fieldSelection,
        object?completedValue,
        Exception error,
        NodePath path)
    {
        if (error is not QueryExecutionException)
        {
            error = new QueryExecutionException(
                "",
                error,
                path,
                fieldSelection);
        }

        if (fieldType is NonNullType)
        {
            throw error;
        }

        context.AddError(error);
        return(completedValue);
    }
Example #8
0
        private static FieldSelection PageInfoSelection()
        {
            var result = new FieldSelection("pageInfo", null);

            result.Selections.Add(new FieldSelection("hasNextPage", null));
            result.Selections.Add(new FieldSelection("endCursor", null));
            return(result);
        }
Example #9
0
        public override FieldSelection EndVisitFieldSelection(
            FieldSelection selection)
        {
            {
                Tracker.LeaveFieldSelection?.Invoke(selection);
            }

            return(base.EndVisitFieldSelection(selection));
        }
Example #10
0
        private void LoadFeatureTable(Features features, DataTable table, FieldSelection fieldSelection)
        {
            if (features.Count == 0)
            {
                return;
            }

            int[] fieldIndex = new int[fieldSelection.Fields.Count];
            var   select     = features[0].Fields.Select((field, index) => new { field, index });

            for (int i = 0; i < fieldSelection.Fields.Count; ++i)
            {
                var result = select.Where(x => String.Compare(x.field.Name, fieldSelection.Fields[i].Name, true) == 0).FirstOrDefault();
                fieldIndex[i] = result == null ? -1 : result.index;
            }

            foreach (Feature feature in features)
            {
                DataRow row = table.NewRow();

                for (int c = 0; c < fieldSelection.Fields.Count; ++c)
                {
                    if (fieldIndex[c] >= 0)
                    {
                        string value = feature.Fields[fieldIndex[c]].Value;

                        if (!String.IsNullOrEmpty(value) || feature.Shape != null)
                        {
                            switch (fieldSelection.Fields[c].Type)
                            {
                            case CommonFieldType.Geometry:
                                if (feature.Shape.OgcGeometryType == OgcGeometryType.MultiPoint && fieldSelection.Fields[c].GeometryType == OgcGeometryType.Point)
                                {
                                    row[c] = ((IMultiPoint)feature.Shape)[0];
                                }
                                else
                                {
                                    row[c] = feature.Shape;
                                }
                                break;

                            case CommonFieldType.Date:
                                row[c] = new DateTime((Convert.ToInt64(value) * 10000) + 621355968000000000);
                                break;

                            default:
                                row[c] = Convert.ChangeType(value, table.Columns[c].DataType);
                                break;
                            }
                        }
                    }
                }

                table.Rows.Add(row);
            }
        }
Example #11
0
        public string GetAllIUSByIC(ICType ICType, string ICNId, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            //  SELECT Clause
            sbQuery.Append("SELECT IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.SubgroupValNId);
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",I." + DIColumns.Indicator.IndicatorName + ",I." + DIColumns.Indicator.IndicatorGId + ",I." + DIColumns.Indicator.IndicatorGlobal);
                sbQuery.Append(",U." + DIColumns.Unit.UnitName + ",U." + DIColumns.Unit.UnitGId + ",U." + DIColumns.Unit.UnitGlobal);
                sbQuery.Append(",SGV." + DIColumns.SubgroupVals.SubgroupVal + ",SGV." + DIColumns.SubgroupVals.SubgroupValGId + ",SGV." + DIColumns.SubgroupVals.SubgroupValGlobal);
                sbQuery.Append(",ICIUS." + DIColumns.IndicatorClassifications.ICNId + ", ICIUS." + DIColumns.IndicatorClassificationsIUS.RecommendedSource);
                sbQuery.Append(",ICIUS." + DIColumns.IndicatorClassificationsIUS.ICIUSOrder);
            }
            if (fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",I." + DIColumns.Indicator.IndicatorInfo);
            }

            //  FROM Clause
            sbQuery.Append(" FROM " + this.TablesName.IndicatorUnitSubgroup + " AS IUS");
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append("," + this.TablesName.Indicator + " AS I");
                sbQuery.Append("," + this.TablesName.Unit + " AS U");
                sbQuery.Append("," + this.TablesName.SubgroupVals + " AS SGV");
            }
            sbQuery.Append("," + this.TablesName.IndicatorClassificationsIUS + " AS ICIUS");
            sbQuery.Append("," + this.TablesName.IndicatorClassifications + " AS IC");

            //  WHERE Clause
            sbQuery.Append(" WHERE 1=1 ");
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId + " = I." + DIColumns.Indicator.IndicatorNId);
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId + " = U." + DIColumns.Unit.UnitNId);
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.SubgroupValNId + " = SGV." + DIColumns.SubgroupVals.SubgroupValNId);
            }
            sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + " = ICIUS." + DIColumns.IndicatorClassificationsIUS.IUSNId);
            sbQuery.Append(" AND ICIUS." + DIColumns.IndicatorClassificationsIUS.ICNId + " = IC." + DIColumns.IndicatorClassifications.ICNId);
            sbQuery.Append(" AND IC." + DIColumns.IndicatorClassifications.ICType + " = " + DIQueries.ICTypeText[ICType]);
            if (ICNId.Length > 0)
            {
                sbQuery.Append(" AND IC." + DIColumns.IndicatorClassifications.ICNId + " IN (" + ICNId + ")");
            }

            //  ORDER BY Clause
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(" ORDER BY I." + DIColumns.Indicator.IndicatorName);
            }

            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #12
0
 public ResolverContextFacts()
 {
     _objectType  = "type Test";
     _objectValue = null;
     _field       = "test: ID";
     _selection   = new FieldSelection(null, "test", null, null, null);
     _schema      = new SchemaBuilder()
                    .Add("type Query")
                    .Build(new SchemaBuildOptions()).Result;
 }
Example #13
0
        public override DataTable GetFeatureTable(string fieldNames, string where)
        {
            CheckIsFeatureLayer();

            FieldSelection fieldSelection = new FieldSelection(this, fieldNames);
            QueryFilter    queryFilter    = new QueryFilter(fieldSelection.NamesToString(), where);
            RecordSet      recordSet      = _service.MapServer.QueryFeatureData(DataFrame.Name, _mapLayerInfo.LayerID, queryFilter);

            return(RecordSetToTable(recordSet, fieldSelection));
        }
 public ResolverContextFacts()
 {
     _objectType  = new ObjectType("Test");
     _objectValue = null;
     _field       = new Field(ScalarType.ID);
     _selection   = new FieldSelection(null, "test", null, null, null, null);
     _schema      = new SchemaBuilder()
                    .Query(out _)
                    .Build();
 }
        public void Generate()
        {
            _context.Register(_query);

            GenerateEnumTypes();

            var backlog = new Queue <FieldSelection>();

            foreach (var operation in
                     _document.Definitions.OfType <OperationDefinitionNode>())
            {
                Path root = Path.New(operation.Name !.Value);

                ObjectType operationType =
                    _schema.GetOperationType(operation.Operation);

                ICodeDescriptor resultType =
                    GenerateOperationSelectionSet(
                        operationType, operation, root, backlog);

                while (backlog.Any())
                {
                    FieldSelection current = backlog.Dequeue();
                    Path           path    = current.Path.Append(current.ResponseName);

                    if (!current.Field.Type.NamedType().IsLeafType())
                    {
                        GenerateFieldSelectionSet(
                            operation, current.Field.Type,
                            current.Selection, path, backlog);
                    }
                }

                GenerateResultParserDescriptor(operation, resultType);
            }

            var clientDescriptor = new ClientDescriptor(
                _context.ClientName,
                _namespace,
                _context.Descriptors.OfType <IOperationDescriptor>().ToList());

            var servicesDescriptor = new ServicesDescriptor(
                _context.ClientName + "ServiceCollectionExtensions",
                _context.Namespace,
                clientDescriptor,
                _context.Descriptors.OfType <IInputClassDescriptor>().ToList(),
                _context.Descriptors.OfType <IEnumDescriptor>().ToList(),
                _context.Descriptors.OfType <IResultParserDescriptor>().ToList());

            _context.Register(clientDescriptor);
            _context.Register(servicesDescriptor);

            FieldTypes  = _context.FieldTypes;
            Descriptors = _context.Descriptors;
        }
Example #16
0
        private ICollection <ISelectionNode> ResolveSelections(IEnumerable <ISelection> selections, Dictionary <string, IFragment> fragements)
        {
            var list = new List <ISelectionNode>();

            foreach (var selection in selections)
            {
                if (selection is InlineFragment inlineFragment)
                {
                    var graphType = _graphTypeProvider.GetGraphType(inlineFragment.Type.Name);
                    var fragment  = new Fragment(graphType);
                    foreach (var item in ResolveSelections(inlineFragment.SelectionSet.Selections, fragements))
                    {
                        fragment.AddSubSelection(item);
                    }
                    list.Add(fragment);
                }
                if (!(selection is Field field))
                {
                    continue;
                }
                var fieldSelection = new FieldSelection(field.Name)
                {
                    Alias = field.Alias
                };

                if (field.SelectionSet.Selections.FirstOrDefault() is FragmentSpread fragmentSpread)
                {
                    var fragmentType = fragements[fragmentSpread.Name];
                }

                foreach (var directiveDefinition in field.Directives)
                {
                    var directive = new Directive(directiveDefinition.Name);
                    foreach (var argument in directiveDefinition.Arguments)
                    {
                        directive.AddArgument(new NamedValueToken(argument.Name, argument.Value.Value, argument.Value is VariableReference));
                    }
                    fieldSelection.Directives.Add(directive);
                }

                foreach (var argument in field.Arguments)
                {
                    fieldSelection.AddArgument(new NamedValueToken(argument.Name, argument.Value.Value, argument.Value is VariableReference));
                }

                var subSelections = ResolveSelections(field.SelectionSet.Selections, fragements);
                foreach (var subSelection in subSelections)
                {
                    fieldSelection.AddSubSelection(subSelection);
                }
                list.Add(fieldSelection);
            }
            return(list);
        }
Example #17
0
        public string CheckDIUserExistence(FilterFieldType filterFieldType, string filterText, FieldSelection fieldSelection, bool editMode, int userNId, DIServerType serverType)
        {
            StringBuilder sbQuery = new StringBuilder();
            string RetVal = string.Empty;

            sbQuery.Append("SELECT " + DIUser.UserNId+ "," + DIUser.UserName + "," + DIUser.UserPWD + "," + DIUser.IsAdmin + "," + DIUser.ISloggedIn);

            //- Get User table Name for Servertype
            if (serverType == DIServerType.MySql)
                sbQuery.Append(" FROM " + TablesName.DIUser + " ");
            else
                sbQuery.Append(" FROM [" + TablesName.DIUser + "] ");

            //   WHERE Clause
            if (filterFieldType != FilterFieldType.None && filterText.Length > 0)
                sbQuery.Append(" WHERE ");

            if (filterText.Length > 0)
            {
                switch (filterFieldType)
                {
                    case FilterFieldType.None:
                        break;
                    case FilterFieldType.NId:
                        sbQuery.Append(DIUser.UserNId + " IN (" + filterText + ")");
                        break;
                    case FilterFieldType.ParentNId:
                        break;
                    case FilterFieldType.Name:
                        sbQuery.Append(DIUser.UserName + " = ('" + filterText + "')");
                        break;
                    case FilterFieldType.Search:
                        sbQuery.Append(filterText);
                        break;
                    case FilterFieldType.NIdNotIn:
                        sbQuery.Append(DIUser.UserNId + " NOT IN (" + filterText + ")");
                        break;
                    case FilterFieldType.NameNotIn:
                        sbQuery.Append(DIUser.UserName + " <> ('" + filterText + "')");
                        break;
                    default:
                        break;
                }

                if (editMode)
                    sbQuery.Append(" AND User_NId <> " + userNId);
            }

            RetVal = sbQuery.ToString();

            //--dispose
            sbQuery = null;
            return RetVal;
        }
 public SelectionVisitorContext(
     IResolverContext context,
     ITypeConversion conversion,
     FieldSelection fieldSelection,
     SelectionMiddlewareContext selectionMiddlewareContext)
 {
     Conversion       = conversion;
     FieldSelection   = fieldSelection;
     SelectionContext = selectionMiddlewareContext;
     _context         = context;
     _arguments       = fieldSelection.CoerceArguments(context.Variables, conversion);
 }
Example #19
0
        public override DataTable GetFeatureTable(string fieldNames, string where, IGeometry shape)
        {
            CheckIsFeatureLayer();

            FieldSelection fieldSelection = new FieldSelection(this, fieldNames);
            SpatialFilter  spatialFilter  = new SpatialFilter(shape, fieldSelection.NamesToString(), where);

            spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
            RecordSet recordSet = _service.MapServer.QueryFeatureData(DataFrame.Name, _mapLayerInfo.LayerID, spatialFilter);

            return(RecordSetToTable(recordSet, fieldSelection));
        }
Example #20
0
        public override DataTable GetFeatureTable(string fieldNames, string where, IGeometry shape)
        {
            FieldSelection fieldSelection = new FieldSelection(this, fieldNames);
            SpatialQuery   query          = new SpatialQuery(where, shape);

            query.Subfields = fieldSelection.NamesToString(" ");

            GetFeatures getFeatures = new GetFeatures(ID, query);

            getFeatures.DataFrame = DataFrame.Name;
            getFeatures.Geometry  = fieldSelection.Fields.Any(lyr => lyr.Type == CommonFieldType.Geometry);
            return(GetFeatureTable(getFeatures, fieldSelection));
        }
    private void VisitFieldSelection(FieldSelection node)
    {
        EnterNode(node);

        Visit(node.Arguments);
        Visit(node.Directives);

        if (node.SelectionSet != null)
        {
            Visit(node.SelectionSet);
        }

        ExitNode(node);
    }
Example #22
0
        private FeatureData RecordSetToFeatureData(RecordSet recordSet, FieldSelection fieldSelection)
        {
            int fieldCount = fieldSelection.Fields.Count;

            int[] fieldIndex = new int[fieldCount];
            var   select     = recordSet.Fields.FieldArray.Select((field, index) => new { field, index });

            for (int i = 0; i < fieldCount; ++i)
            {
                var result = select.Where(x => String.Compare(x.field.Name, fieldSelection.Fields[i].Name, true) == 0).FirstOrDefault();
                fieldIndex[i] = result == null ? -1 : result.index;
            }

            FeatureData featureData = fieldSelection.CreateFeatureData();

            featureData.LayerName = Name;
            featureData.Rows      = new FeatureRow[recordSet.Records.Length];

            for (int r = 0; r < recordSet.Records.Length; ++r)
            {
                FeatureRow featureRow = new FeatureRow();
                featureRow.Values = new object[fieldCount];

                for (int c = 0; c < fieldSelection.Fields.Count; ++c)
                {
                    if (fieldIndex[c] >= 0)
                    {
                        object value = recordSet.Records[r].Values[fieldIndex[c]];

                        if (value != null)
                        {
                            if (fieldSelection.Fields[c].Type == CommonFieldType.Geometry)
                            {
                                featureRow.Values[c] = ((AppGeo.Clients.Ags.Proxy.Geometry)value).ToCommon();
                            }
                            else
                            {
                                featureRow.Values[c] = value;
                            }
                        }
                    }
                }

                featureData.Rows[r] = featureRow;
            }

            return(featureData);
        }
Example #23
0
        private string PrintFieldSelection(FieldSelection node)
        {
            var alias = node.Alias != null?PrintName(node.Alias.Value): string.Empty;

            var name         = PrintName(node.Name);
            var args         = node.Arguments?.Select(PrintArgument) ?? Array.Empty <string>();
            var directives   = node.Directives?.Select(PrintDirective) ?? Array.Empty <string>();
            var selectionSet = node.SelectionSet != null?PrintSelectionSet(node.SelectionSet): string.Empty;

            return(Join(new[]
            {
                $"{Wrap(string.Empty, alias, ": ")}{name}{Wrap("(", Join(args, ", "), ")")}",
                Join(directives, " "),
                selectionSet
            }));
        }
Example #24
0
 public virtual FieldSelection BeginVisitFieldSelection(
     FieldSelection selection)
 {
     if (selection.Arguments != null)
     {
         BeginVisitArguments(selection.Arguments);
     }
     if (selection.SelectionSet != null)
     {
         BeginVisitNode(selection.SelectionSet);
     }
     if (selection.Directives != null)
     {
         BeginVisitDirectives(selection.Directives);
     }
     return(EndVisitFieldSelection(selection));
 }
Example #25
0
 private TypeReferenceModel GenerateTypeReference(FieldSelection field)
 {
     if (field.Selection == null) // this is a leaf thus can be a projection
     {
         return(GenerateTypeReference(field.Type.Type));
     }
     else
     {
         return(new TypeReferenceModel
         {
             CanCollectionBeNull = field.Type.Type.CanCollectionBeNull,
             IsCollection = field.Type.Type.IsCollection,
             CanValueBeNull = field.Type.Type.CanValueBeNull,
             TypeName = GenerateType(field.Selection)
         });
     }
 }
Example #26
0
    protected override void EnterFieldSelection(PrinterContext context, FieldSelection fieldSelection)
    {
        if (fieldSelection.Alias != default)
        {
            context.Append(fieldSelection.Alias);
            context.Append(": ");
        }

        context.Append($"{fieldSelection.Name}");

        if (context.Parent is SelectionSet)
        {
            if (context.CurrentArray?.Count > 0 && !context.CurrentArray.IsLast)
            {
                context.Append(' ');
            }
        }
    }
    public void Visit(FieldSelection selection)
    {
        // enter
        foreach (var visitor in _options.FieldSelection)
        {
            visitor.Enter(selection);
        }

        // children
        Visit(selection.Arguments);
        Visit(selection.Directives);
        Visit(selection.SelectionSet);

        // leave
        foreach (var visitor in _options.FieldSelection)
        {
            visitor.Leave(selection);
        }
    }
Example #28
0
 public ResolverContext(
     ObjectType objectType,
     object objectValue,
     IField field,
     FieldSelection selection,
     IReadOnlyCollection <FieldSelection> fields,
     IReadOnlyDictionary <string, object?> arguments,
     NodePath path,
     IExecutorContext executionContext)
 {
     ObjectType       = objectType ?? throw new ArgumentNullException(nameof(objectType));
     ObjectValue      = objectValue;
     Field            = field ?? throw new ArgumentNullException(nameof(field));
     Selection        = selection ?? throw new ArgumentNullException(nameof(selection));
     Fields           = fields;
     Arguments        = arguments ?? throw new ArgumentNullException(nameof(arguments));
     Path             = path ?? throw new ArgumentNullException(nameof(path));
     ExecutionContext = executionContext;
 }
Example #29
0
        private static void CreateMultiHit <T>(MultiHitTuple tuple, JsonSerializer serializer, ICollection <IMultiGetHit <object> > collection) where T : class
        {
            var hit    = new MultiGetHit <T>();
            var reader = tuple.Hit.CreateReader();

            serializer.Populate(reader, hit);

            var f      = new FieldSelection <T>();
            var source = tuple.Hit["fields"];

            if (source != null)
            {
                f.Document         = serializer.Deserialize <T>(source.CreateReader());
                f.FieldValues      = serializer.Deserialize <Dictionary <string, object> >(source.CreateReader());
                hit.FieldSelection = f;
            }

            collection.Add(hit);
        }
Example #30
0
 public void Paint(HeightField field, int x, int y, float intensity, out FieldSelection brushArea)
 {
     brushArea = new FieldSelection(x - Width / 2 - Width % 2, y - Height / 2 - Height % 2, Width, Height);
     if (sample != null && blend != null)
     {
         for (int _x = brushArea.Left; _x < brushArea.Right; _x++)
         {
             for (int _y = brushArea.Top; _y < brushArea.Bottom; _y++)
             {
                 float data;
                 if (field.TryGetHeight(_x, _y, out data))
                 {
                     float shape = sample(_x, _y, intensity * Power, brushArea.Left, brushArea.Right, brushArea.Top, brushArea.Bottom);
                     field[_x, _y] = blend(data, shape);
                 }
             }
         }
     }
 }
Example #31
0
        public override GeoAPI.Geometries.Envelope GetFeatureExtent(string where)
        {
            FieldSelection fieldSelection = new FieldSelection(this, GeometryField.Name);
            QueryFilter    queryFilter    = new QueryFilter(GeometryField.Name, where);
            RecordSet      recordSet      = _service.MapServer.QueryFeatureData(DataFrame.Name, _mapLayerInfo.LayerID, queryFilter);
            DataTable      table          = RecordSetToTable(recordSet, fieldSelection);

            GeoAPI.Geometries.Envelope extent = new GeoAPI.Geometries.Envelope();

            foreach (DataRow row in table.Rows)
            {
                if (!row.IsNull(0))
                {
                    extent.ExpandToInclude(((IGeometry)row[0]).EnvelopeInternal);
                }
            }

            return(extent);
        }
Example #32
0
        private DataTable RecordSetToTable(RecordSet recordSet, FieldSelection fieldSelection)
        {
            int[] fieldIndex = new int[fieldSelection.Fields.Count];
            var   select     = recordSet.Fields.FieldArray.Select((field, index) => new { field, index });

            for (int i = 0; i < fieldSelection.Fields.Count; ++i)
            {
                var result = select.Where(x => String.Compare(x.field.Name, fieldSelection.Fields[i].Name, true) == 0).FirstOrDefault();
                fieldIndex[i] = result == null ? -1 : result.index;
            }

            DataTable table = fieldSelection.CreateTable();

            foreach (Record record in recordSet.Records)
            {
                DataRow row = table.NewRow();

                for (int c = 0; c < fieldSelection.Fields.Count; ++c)
                {
                    if (fieldIndex[c] >= 0)
                    {
                        object value = record.Values[fieldIndex[c]];

                        if (value != null)
                        {
                            if (fieldSelection.Fields[c].Type == CommonFieldType.Geometry)
                            {
                                row[c] = ((AppGeo.Clients.Ags.Proxy.Geometry)value).ToCommon();
                            }
                            else
                            {
                                row[c] = value;
                            }
                        }
                    }
                }

                table.Rows.Add(row);
            }

            return(table);
        }
Example #33
0
        /// <summary>
        /// Get  NId, Name, GID, Global from Indicator table based on Indicator Classification Type
        /// </summary>
        /// <param name="ICType">Indicator Classification Type with which associated indicator are to be retrieved</param>
        /// <param name="ICNId">ICNId which may be -1 if only ICType is to be considered</param>
        /// <param name="fieldSelection">Use heavy for all fields or use light to exclude IndicatorInfo field</param>
        /// <returns>Sql query string</returns>
        public string GetAllIndicatorByIC(ICType ICType, string ICNId, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            //   SELECT clause
            sbQuery.Append("SELECT I." + DIColumns.Indicator.IndicatorNId);    //FieldSelection.NId
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",I." + DIColumns.Indicator.IndicatorName + ",I." + DIColumns.Indicator.IndicatorGId + ",I." + DIColumns.Indicator.IndicatorGlobal);
            }
            if (fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",I." + DIColumns.Indicator.IndicatorInfo);
            }

            //   FROM Clause
            sbQuery.Append(" FROM " + this.TablesName.Indicator + " AS I");
            sbQuery.Append("," + this.TablesName.IndicatorUnitSubgroup + " AS IUS");
            sbQuery.Append("," + this.TablesName.IndicatorClassificationsIUS + " AS ICIUS");
            sbQuery.Append("," + this.TablesName.IndicatorClassifications + " AS IC");

            //   WHERE Clause
            sbQuery.Append(" WHERE I." + DIColumns.Indicator.IndicatorNId + " = IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId);
            sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + " = ICIUS." + DIColumns.IndicatorClassificationsIUS.IUSNId);
            sbQuery.Append(" AND ICIUS." + DIColumns.IndicatorClassificationsIUS.ICNId + " = IC." + DIColumns.IndicatorClassifications.ICNId);
            sbQuery.Append(" AND IC." + DIColumns.IndicatorClassifications.ICType + " = " + DIQueries.ICTypeText[ICType]);
            if (!string.IsNullOrEmpty(ICNId) && ICNId != "-1")
            {
                sbQuery.Append(" AND IC." + DIColumns.IndicatorClassifications.ICNId + " IN (" + ICNId + ")");
            }

            //   ORDER BY Clause
            sbQuery.Append(" ORDER BY " + DIColumns.Indicator.IndicatorName);

            RetVal = sbQuery.ToString();
            return RetVal;
        }
        /// <summary>
        /// Returns instance of IndicatorInfo.
        /// </summary>
        /// <param name="filterClause"></param>
        /// <param name="filterText"></param>
        /// <param name="selectionType"></param>
        /// <returns></returns>
        public IndicatorInfo GetIndicatorInfo(FilterFieldType filterClause, string filterText, FieldSelection selectionType)
        {
            string Query = string.Empty;
            IndicatorInfo RetVal = new IndicatorInfo();
            DataTable IndicatorTable;
            try
            {
                //get indicator information
                Query = this.DBQueries.Indicators.GetIndicator(filterClause, filterText, selectionType);
                IndicatorTable = this.DBConnection.ExecuteDataTable(Query);

                //set indicator info
                if (IndicatorTable != null)
                {
                    if (IndicatorTable.Rows.Count > 0)
                    {
                        RetVal.GID = IndicatorTable.Rows[0][Indicator.IndicatorGId].ToString();
                        RetVal.Global = Convert.ToBoolean(IndicatorTable.Rows[0][Indicator.IndicatorGlobal]);
                        RetVal.Name = IndicatorTable.Rows[0][Indicator.IndicatorName].ToString();
                        RetVal.Nid = Convert.ToInt32(IndicatorTable.Rows[0][Indicator.IndicatorNId]);
                        if (selectionType == FieldSelection.Heavy)
                        {
                            RetVal.Info = IndicatorTable.Rows[0][Indicator.IndicatorInfo].ToString();
                        }
                    }
                }
            }
            catch (Exception)
            {
                RetVal = null;
            }
            return RetVal;
        }
Example #35
0
        /// <summary>
        /// Get  NId, Name, GID, Global from IUS - Indicator - Unit - SubgroupVal table for a given  Filter Criteria
        /// </summary>
        /// <param name="filterFieldType">Applicable for NId</param>
        /// <param name="filterText"></param>
        /// <param name="fieldSelection">Use Light for NId + Name + GId + Global fields use heavy to include IndicatorInfo field</param>
        /// <returns>Sql query string</returns>
        public string GetIUSByParentOrder(FilterFieldType filterFieldType, string filterText, ICType ICType, FieldSelection fieldSelection, string icNIds)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            //  SELECT Clause
            sbQuery.Append("SELECT DISTINCT IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.SubgroupValNId);
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",I." + DIColumns.Indicator.IndicatorName + ",I." + DIColumns.Indicator.IndicatorGId + ",I." + DIColumns.Indicator.IndicatorGlobal);
                sbQuery.Append(",U." + DIColumns.Unit.UnitName + ",U." + DIColumns.Unit.UnitGId + ",U." + DIColumns.Unit.UnitGlobal);
                sbQuery.Append(",SGV." + DIColumns.SubgroupVals.SubgroupVal + ",SGV." + DIColumns.SubgroupVals.SubgroupValGId + ",SGV." + DIColumns.SubgroupVals.SubgroupValGlobal);
                sbQuery.Append(",IUS." + DIColumns.Indicator_Unit_Subgroup.MinValue + ",IUS." + DIColumns.Indicator_Unit_Subgroup.MaxValue);
                sbQuery.Append(",ICIUS." + DIColumns.IndicatorClassificationsIUS.ICIUSOrder);

            }
            if (fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",I." + DIColumns.Indicator.IndicatorInfo);
            }

            //  FROM Clause
            sbQuery.Append(" FROM " + this.TablesName.IndicatorUnitSubgroup + " AS IUS");
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append("," + this.TablesName.Indicator + " AS I");
                sbQuery.Append("," + this.TablesName.Unit + " AS U");
                sbQuery.Append("," + this.TablesName.SubgroupVals + " AS SGV");
                sbQuery.Append("," + this.TablesName.IndicatorClassifications + " AS IC");
                sbQuery.Append("," + this.TablesName.IndicatorClassificationsIUS + " AS ICIUS");
            }

            //  WHERE Clause
            sbQuery.Append(" WHERE 1=1 ");
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId + " = I." + DIColumns.Indicator.IndicatorNId);
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId + " = U." + DIColumns.Unit.UnitNId);
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.SubgroupValNId + " = SGV." + DIColumns.SubgroupVals.SubgroupValNId);
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + " = ICIUS." + DIColumns.IndicatorClassificationsIUS.IUSNId);
                sbQuery.Append(" AND IC." + DIColumns.IndicatorClassifications.ICNId + " = ICIUS." + DIColumns.IndicatorClassificationsIUS.ICNId);
                sbQuery.Append(" AND IC." + DIColumns.IndicatorClassifications.ICType + " = " + DIQueries.ICTypeText[ICType]);

                if (!string.IsNullOrEmpty(icNIds))
                {
                    sbQuery.Append(" AND IC." + DIColumns.IndicatorClassifications.ICParent_NId + " IN (" + icNIds + ")");
                }
            }

            if (filterFieldType != FilterFieldType.None && filterText.Length > 0)
            {

                switch (filterFieldType)
                {
                    case FilterFieldType.None:
                        break;
                    case FilterFieldType.NId:
                        sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + " IN (" + filterText + ")");
                        break;
                    case FilterFieldType.ParentNId:
                        break;
                    case FilterFieldType.ID:
                        break;
                    case FilterFieldType.GId:
                        break;
                    case FilterFieldType.Name:
                        break;
                    case FilterFieldType.Search:
                        sbQuery.Append(filterText);
                        break;
                    case FilterFieldType.Global:
                        break;
                    case FilterFieldType.NIdNotIn:
                        break;
                    case FilterFieldType.NameNotIn:
                        break;
                    default:
                        break;
                }
            }

            //  ORDER BY Clause
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(" ORDER BY ICIUS." + DIColumns.IndicatorClassificationsIUS.ICIUSOrder);
            }

            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #36
0
        public string GetSource(FilterFieldType filterFieldType, string filterText, FieldSelection fieldSelection, bool onlyParent)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            //   SELECT clause
            sbQuery.Append("SELECT " + DIColumns.IndicatorClassifications.ICNId);    //FieldSelection.NId
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append("," + DIColumns.IndicatorClassifications.ICName + "," + DIColumns.IndicatorClassifications.ICGId + "," + DIColumns.IndicatorClassifications.ICGlobal+","+ DIColumns.IndicatorClassifications.ICParent_NId );
            }
            if (fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append("," + DIColumns.IndicatorClassifications.ICInfo);
            }

            //   FROM Clause
            sbQuery.Append(" FROM " + this.TablesName.IndicatorClassifications);

            //   WHERE Clause
            sbQuery.Append(" WHERE " + DIColumns.IndicatorClassifications.ICType + " = " + DIQueries.ICTypeText[ICType.Source]);

            if (filterFieldType != FilterFieldType.None && filterText.Length > 0)
            {
                sbQuery.Append(" AND ");
                switch (filterFieldType)
                {
                    case FilterFieldType.None:
                        break;
                    case FilterFieldType.NId:
                        sbQuery.Append(DIColumns.IndicatorClassifications.ICNId + " IN (" + filterText + ")");
                        break;
                    case FilterFieldType.ParentNId:
                        break;
                    case FilterFieldType.ID:
                        break;
                    case FilterFieldType.GId:
                        sbQuery.Append(DIColumns.IndicatorClassifications.ICGId + " IN (" + filterText + ")");
                        break;
                    case FilterFieldType.Name:
                        sbQuery.Append(DIColumns.IndicatorClassifications.ICName + " IN (" + filterText + ")");
                        break;
                    case FilterFieldType.Search:
                        sbQuery.Append(filterText);
                        break;
                    case FilterFieldType.Global:
                        break;
                    case FilterFieldType.NIdNotIn:
                        sbQuery.Append(DIColumns.IndicatorClassifications.ICNId + " NOT IN (" + filterText + ")");
                        break;
                    case FilterFieldType.NameNotIn:
                        sbQuery.Append(DIColumns.IndicatorClassifications.ICName + " NOT IN (" + filterText + ")");
                        break;
                    default:
                        break;
                }
            }

            if (onlyParent)
            {
                sbQuery.Append(" AND " + DIColumns.IndicatorClassifications.ICParent_NId + " =-1 ");
            }

            //   ORDER BY Clause
            sbQuery.Append(" ORDER BY " + DIColumns.IndicatorClassifications.ICName);

            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #37
0
        private string GetGenericSelectClause(FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            try
            {
                StringBuilder sbQuery = new StringBuilder();

                //  SELECT Clause
                sbQuery.Append(" SELECT DISTINCT IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.SubgroupValNId);

                if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
                {
                    sbQuery.Append(",I." + DIColumns.Indicator.IndicatorName + ",I." + DIColumns.Indicator.IndicatorGId + ",I." + DIColumns.Indicator.IndicatorGlobal);
                    sbQuery.Append(",U." + DIColumns.Unit.UnitName + ",U." + DIColumns.Unit.UnitGId + ",U." + DIColumns.Unit.UnitGlobal);
                    sbQuery.Append(",SGV." + DIColumns.SubgroupVals.SubgroupVal + ",SGV." + DIColumns.SubgroupVals.SubgroupValGId + ",SGV." + DIColumns.SubgroupVals.SubgroupValGlobal);
                }
                if (fieldSelection == FieldSelection.Heavy)
                {
                    sbQuery.Append(",I." + DIColumns.Indicator.IndicatorInfo);
                }

                RetVal = sbQuery.ToString();
            }
            catch (Exception)
            {
            }
            return RetVal;
        }
Example #38
0
 /// <summary>
 /// Get distinct NId, Name, GID, Global from IUS - Indicator - Unit - SubgroupVal table based on Indicator Classification Type and order on the basis of ICIUS order
 /// </summary>
 /// <param name="ICType">Indicator Classification Type</param>
 /// <param name="ICNId">ICNId which may be blank if only ICType is to be considered</param>
 /// <param name="fieldSelection">Use Light for NId + Name + GId + Global fields use heavy to include IndicatorInfo field</param>
 /// <returns>Sql query string</returns>
 public string GetDistinctOrderedIUSByIC(ICType ICType, string ICNId, FieldSelection fieldSelection)
 {
     string sortOrderString = "ICIUS." + DIColumns.IndicatorClassificationsIUS.ICIUSOrder;
     return this.GetDistinctIUSByIC(ICType, ICNId, fieldSelection, sortOrderString);
 }
Example #39
0
        /// <summary>
        /// AutoSelect Indiactor,unit,subgroup  based on TimePeriod, Area  and source selection and only for the given indicators nid
        /// </summary>
        /// <param name="timePeriodNIds">commma delimited Timeperiod NIds which may be blank</param>
        /// <param name="areaNIds">commma delimited Area NIds which may be blank</param>
        /// <param name="sourceNids">Source Nids which may be blank </param>
        /// <param name="fieldSelection">NId, Light or Heavy</param>
        /// <param name="indicatorsNId">Comma delimited Indicators NId</param>
        /// <returns>Sql query string</returns>
        public string GetAutoSelectIUSByIndicator(string timePeriodNIds, string areaNIds, string sourceNids, FieldSelection fieldSelection, string indicatorsNId)
        {
            string RetVal = string.Empty;

            RetVal = "SELECT IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + ",I." + DIColumns.Indicator.IndicatorNId + ", I." + DIColumns.Indicator.IndicatorName + ", I." + DIColumns.Indicator.IndicatorGId + ", I." + DIColumns.Indicator.IndicatorGlobal +
                ",U." + DIColumns.Unit.UnitNId + ", U." + DIColumns.Unit.UnitName + ", U." + DIColumns.Unit.UnitGId + ", U." + DIColumns.Unit.UnitGlobal +
                ",SG." + DIColumns.SubgroupVals.SubgroupVal + ", SG." + DIColumns.SubgroupVals.SubgroupValNId + ", SG." + DIColumns.SubgroupVals.SubgroupValGId + ", SG." + DIColumns.SubgroupVals.SubgroupValGlobal
                + " FROM " + this.TablesName.Indicator + " AS I, " + this.TablesName.Unit + " AS U," + this.TablesName.SubgroupVals + " AS SG , " + this.TablesName.IndicatorUnitSubgroup + " AS IUS "
                + " WHERE I." + DIColumns.Indicator.IndicatorNId + " IN(" + indicatorsNId + ") AND "
                + " I." + DIColumns.Indicator.IndicatorNId + "= IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId
                + " AND U." + DIColumns.Unit.UnitNId + "=IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId
                + " AND SG." + DIColumns.SubgroupVals.SubgroupValNId + "=IUS." + DIColumns.Indicator_Unit_Subgroup.SubgroupValNId
                + " AND EXISTS (  SELECT *  FROM " + this.TablesName.Data + " as D WHERE  IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + "= D." + DIColumns.Data.IUSNId;

            if (!string.IsNullOrEmpty(timePeriodNIds))
            {
                RetVal += " AND D." + DIColumns.Data.TimePeriodNId + " IN( " + timePeriodNIds + " ) ";
            }
            if (!string.IsNullOrEmpty(areaNIds))
            {
                RetVal += " AND D." + DIColumns.Data.AreaNId + " IN( " + areaNIds + " ) ";
            }

            if (!string.IsNullOrEmpty(sourceNids))
            {
                RetVal += " AND D." + DIColumns.Data.SourceNId + " IN( " + sourceNids + " ) ";
            }

            RetVal += " ) ORDER BY I." + DIColumns.Indicator.IndicatorName + "";

            return RetVal;
        }
Example #40
0
        /// <summary>
        /// Get  NId, Name, GID, Global from Indicator against which data is present.
        /// </summary>
        /// <param name="fieldSelection">Use heavy for all fields or use light to exclude IndicatorInfo field</param>
        /// <returns>Sql query string</returns>
        public string GetIndicatorUnitWithData(string IUSNIDs, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            //  SELECT Clause
            sbQuery.Append(" SELECT DISTINCT IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId);

            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",I." + DIColumns.Indicator.IndicatorName + ",I." + DIColumns.Indicator.IndicatorGId + ",I." + DIColumns.Indicator.IndicatorGlobal);
                sbQuery.Append(",U." + DIColumns.Unit.UnitName + ",U." + DIColumns.Unit.UnitGId + ",U." + DIColumns.Unit.UnitGlobal);
            }
            if (fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",I." + DIColumns.Indicator.IndicatorInfo);
            }

            //  FROM Clause
            sbQuery.Append(" FROM " + this.TablesName.IndicatorUnitSubgroup + " AS IUS");

            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append("," + this.TablesName.Indicator + " AS I," + this.TablesName.Unit + " AS U");
            }

            //  WHERE Clause
            sbQuery.Append(" WHERE 1=1 ");
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId + "= I." + DIColumns.Indicator.IndicatorNId);
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId + "= U." + DIColumns.Unit.UnitNId + "   and ");
            }

            if (string.IsNullOrEmpty(IUSNIDs))
            {
                IUSNIDs = "0";
            }

            sbQuery.Append(" " + DIColumns.Indicator_Unit_Subgroup.IUSNId + " in( " + IUSNIDs + " )");

            //  ORDER BY Clause
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(" ORDER BY I." + DIColumns.Indicator.IndicatorName);
            }

            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #41
0
        /// <summary>
        /// Get distinct NId, Name, GID, Global from IUS - Indicator - Unit - SubgroupVal against which data is present and order by ICIUSOrder.
        /// </summary>
        /// <param name="ICType">Indicator Classification Type</param>
        /// <param name="ICNId">ICNId which may be blank if only ICType is to be considered</param>
        /// <param name="fieldSelection">Use Light for NId + Name + GId + Global fields use heavy to include IndicatorInfo field</param>
        /// <returns>Sql query string</returns>
        public string GetDistinctOrderedIUSWithData(int icNId, string IUSNIDs, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            sbQuery.Append(this.GetGenericSelectClause(fieldSelection));

            sbQuery.Append(",ICIUS." + DIColumns.IndicatorClassificationsIUS.ICIUSOrder);

            ////  FROM Clause
            sbQuery.Append(" FROM " + this.TablesName.IndicatorUnitSubgroup + " AS IUS");

            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append("," + this.TablesName.Indicator + " AS I");
                sbQuery.Append("," + this.TablesName.Unit + " AS U");
                sbQuery.Append("," + this.TablesName.SubgroupVals + " AS SGV");
                sbQuery.Append("," + this.TablesName.IndicatorClassificationsIUS + " AS ICIUS");
            }

            //  WHERE Clause
            sbQuery.Append(" WHERE 1=1 ");

            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId + "= I." + DIColumns.Indicator.IndicatorNId + " AND IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId + " = U." + DIColumns.Unit.UnitNId + " AND IUS." + DIColumns.Indicator_Unit_Subgroup.SubgroupValNId + " = SGV." + DIColumns.SubgroupVals.SubgroupValNId + " ");
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + " = ICIUS." + DIColumns.IndicatorClassificationsIUS.IUSNId);
            }

            if (!string.IsNullOrEmpty(IUSNIDs))
            {
                sbQuery.Append(" and IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + " in( " + IUSNIDs + " )");
            }
            else
            {
                sbQuery.Append(" and IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + " in(0) ");
            }

            if (icNId > 0)
            {
                sbQuery.Append(" and ICIUS." + DIColumns.IndicatorClassificationsIUS.ICNId + " = " + icNId);
            }

            //  ORDER BY Clause
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(" ORDER BY ICIUS." + DIColumns.IndicatorClassificationsIUS.ICIUSOrder);
            }

            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #42
0
        /// <summary>
        /// Returns sql query to get area map layer information with area
        /// </summary>
        /// <param name="filterType"></param>
        /// <param name="filterString"></param>
        /// <param name="fieldSelection"></param>
        /// <returns></returns>
        public string GetAreaMapLayerInfo(FilterFieldType filterType, string filterString, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            RetVal = "SELECT A." + DIColumns.Area.AreaGId + " ";
            if (fieldSelection == FieldSelection.Heavy)
            {

                RetVal += ", A." + DIColumns.Area.AreaID + ", A." + DIColumns.Area.AreaName + ", AM." + DIColumns.Area_Map_Layer.LayerNId
                    + ", AM." + DIColumns.Area_Map.AreaMapNId + ", AM." + DIColumns.Area_Map.AreaNId + ", AM." + DIColumns.Area_Map.FeatureLayer + ", AM." + DIColumns.Area_Map.FeatureTypeNId + " ";
            }

            RetVal += ", MET." + DIColumns.Area_Map_Metadata.LayerName + " ";

            if (fieldSelection == FieldSelection.Heavy)
            {
                RetVal += ", AML." + DIColumns.Area_Map_Layer.MetadataNId + ", AML." + DIColumns.Area_Map_Layer.UpdateTimestamp + ", MET." + DIColumns.Area_Map_Metadata.MetadataText + " ";
            }

            RetVal += " FROM ((" + this.TablesName.AreaMap + " AS AM INNER JOIN " + this.TablesName.AreaMapLayer + " AS AML "
                + " ON AM." + DIColumns.Area_Map.LayerNId + " = AML." + DIColumns.Area_Map_Layer.LayerNId + ") " +
                " LEFT JOIN " + this.TablesName.AreaMapMetadata + " AS MET ON AML." + DIColumns.Area_Map_Layer.LayerNId + " = MET." + DIColumns.Area_Map_Metadata.LayerNId + ") "
                + " INNER JOIN " + this.TablesName.Area + " AS A ON AM." + DIColumns.Area_Map.AreaNId + "= A." + DIColumns.Area.AreaNId + " ";

            // Where clause
            RetVal += " WHERE 1=1 ";

            if (filterType == FilterFieldType.NId)
            {
                RetVal += " AND A." + DIColumns.Area.AreaNId + " in(" + filterString + ")";
            }
            else if (filterType == FilterFieldType.LayerNid)
            {
                RetVal += " AND AM." + DIColumns.Area_Map.LayerNId + " in(" + filterString + ")";
            }
            else if (filterType == FilterFieldType.Level)
            {
                RetVal += " AND A." + DIColumns.Area.AreaLevel + " =" + filterString + " ";
            }
            else if (filterType == FilterFieldType.Search)
            {
                RetVal += " AND " + filterString + " ";
            }

            // Order By
            RetVal += " ORDER BY AM.Layer_NId ";
            return (RetVal);
        }
Example #43
0
 /// <summary>
 /// Get  NId, Name, GID, Global from IUS - Indicator - Unit - SubgroupVal table based on Indicator Classification Type
 /// </summary>
 /// <param name="ICType"></param>
 /// <param name="ICNId"></param>
 /// <param name="fieldSelection"></param>
 /// <param name="includeDI7Columns"></param>
 /// <returns></returns>
 public string GetIUSByIC(ICType ICType, int ICNId, FieldSelection fieldSelection, bool includeDI7Columns)
 {
     if (ICNId == -1)
     {
         return GetIUSByIC(ICType, string.Empty, fieldSelection, includeDI7Columns);
     }
     else
     {
         return GetIUSByIC(ICType, ICNId.ToString(), fieldSelection, includeDI7Columns);
     }
 }
Example #44
0
        /// <summary>
        /// Get IC Records for a given IC Type and Filter Criteria
        /// </summary>
        /// <param name="filterFieldType">
        /// <para>Applicable for NId, GId, Name, Search, ParentNId, NIdNotIn, NameNotIn, Type</para>        
        /// </param>
        /// <param name="filterText">
        /// <para>For FilterFieldType "Search" include wild characters. e.g. '%UNSD%' or '%UNSD'</para>
        /// </param>
        /// <param name="classificationType"></param>
        /// <param name="fieldSelection">LIGHT: Returns - NId, PArentNId, Name, GID, Global
        /// <para>HEAVY: Returns - NId, PArentNId, Name, GID, Global, Info</para>
        /// </param>
        /// <returns>
        /// </returns>
        public string GetIC(FilterFieldType filterFieldType, string filterText, ICType classificationType, FieldSelection fieldSelection, bool includeISBNNature)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();
            string WhereClause = string.Empty;

            sbQuery.Append(this.GetICSelectFromClause(fieldSelection, includeISBNNature));

            sbQuery.Append(" WHERE ");
            sbQuery.Append("IC." + DIColumns.IndicatorClassifications.ICType + "=" + DIQueries.ICTypeText[classificationType]);

            WhereClause = this.GetICWhereClause(filterFieldType, filterText);
            if (WhereClause.Length > 0)
            {
                sbQuery.Append(" AND " + WhereClause);
            }

            if (classificationType == ICType.Source)
            {
                sbQuery.Append(" ORDER BY IC." + DIColumns.IndicatorClassifications.ICName);
            }
            else
            {
                sbQuery.Append(" ORDER BY IC." + DIColumns.IndicatorClassifications.ICOrder);
            }
            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #45
0
        /// <summary>
        /// Get IC Records for a given Filter Criteria and FieldSelection
        /// </summary>
        /// <param name="filterFieldType">
        /// <para>Applicable for NId, GId, Name, Search, ParentNId, NIdNotIn, NameNotIn, Type</para>        
        /// </param>
        /// <param name="filterText">
        /// <para>For FilterFieldType "Search" include wild characters. e.g. '%UNSD%' or '%UNSD'</para>
        /// </param>
        /// <param name="fieldSelection">
        /// <para>LIGHT: Returns - NId, ParentNId, Name, GID, Global</para>
        /// <para>HEAVY: Returns - NId, ParentNId, Name, GID, Global, Info</para>
        /// </param>
        /// <returns></returns>
        public string GetIC(FilterFieldType filterFieldType, string filterText, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            sbQuery.Append(this.GetICSelectFromClause(fieldSelection));
            string WhereClause = this.GetICWhereClause(filterFieldType, filterText);
            if (WhereClause.Length > 0)
            {
                sbQuery.Append(" WHERE " + WhereClause);
            }

            sbQuery.Append(" ORDER BY IC." + DIColumns.IndicatorClassifications.ICName);
            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #46
0
        /// <summary>
        /// Returns instance of IUSInfo.
        /// </summary>
        /// <param name="filterClause"></param>
        /// <param name="filterText"></param>
        /// <param name="selectionType"></param>
        /// <returns></returns>
        public IUSInfo GetIUSInfo(FilterFieldType filterClause, string filterText, FieldSelection selectionType)
        {
            string Query = string.Empty;

            IUSInfo RetVal = new IUSInfo();
            IndicatorInfo IndicatorObject = new IndicatorInfo();
            UnitInfo UnitObject = new UnitInfo();
            IndicatorBuilder IndicatorBuilderObj = null;
            UnitBuilder UnitBuilderObj = null;
            DI6SubgroupValBuilder SubgroupValBuilderObj = null;
            DI6SubgroupValInfo SubgroupValObject = new DI6SubgroupValInfo();

            int IndicatorNid = 0;
            int UnitNid = 0;
            int SGNid = 0;
            int MinVal = 0;
            int MaxVal = 0;
            DataTable Table = null;
            try
            {

                //get IUS information
                Query = this.DBQueries.IUS.GetIUS(filterClause, filterText, selectionType);
                Table = this.DBConnection.ExecuteDataTable(Query);

                //set IUS info
                if (Table != null)
                {
                    if (Table.Rows.Count > 0)
                    {
                        MinVal = 0;
                        MaxVal = 0;

                        // initialize builder objects
                        IndicatorBuilderObj = new IndicatorBuilder(this.DBConnection, this.DBQueries);
                        UnitBuilderObj = new UnitBuilder(this.DBConnection, this.DBQueries);
                        SubgroupValBuilderObj = new DI6SubgroupValBuilder(this.DBConnection, this.DBQueries);

                        // set IUS properties
                        //-- set maximum value
                        if (!string.IsNullOrEmpty(Convert.ToString(Table.Rows[0][Indicator_Unit_Subgroup.MaxValue])))
                        {
                            MaxVal = Convert.ToInt32(Table.Rows[0][Indicator_Unit_Subgroup.MaxValue]);
                        }
                        //-- Set Minmum Value
                        if (!string.IsNullOrEmpty(Convert.ToString(Table.Rows[0][Indicator_Unit_Subgroup.MinValue])))
                        {
                            MinVal = Convert.ToInt32(Table.Rows[0][Indicator_Unit_Subgroup.MinValue]);
                        }

                        RetVal.Maximum = MaxVal;    // Convert.ToInt32(Table.Rows[0][Indicator_Unit_Subgroup.MaxValue]);
                        RetVal.Minimum = MinVal;    // Convert.ToInt32(Table.Rows[0][Indicator_Unit_Subgroup.MinValue]);

                        RetVal.Nid = Convert.ToInt32(Table.Rows[0][Indicator_Unit_Subgroup.IUSNId]);

                        // set indicator, unit and subgroup info
                        IndicatorNid = Convert.ToInt32(Table.Rows[0][Indicator_Unit_Subgroup.IndicatorNId]);
                        UnitNid = Convert.ToInt32(Table.Rows[0][Indicator_Unit_Subgroup.UnitNId]);
                        SGNid = Convert.ToInt32(Table.Rows[0][Indicator_Unit_Subgroup.SubgroupValNId]);

                        RetVal.IndicatorInfo = IndicatorBuilderObj.GetIndicatorInfo(FilterFieldType.NId, IndicatorNid.ToString(), FieldSelection.Light);
                        RetVal.UnitInfo = UnitBuilderObj.GetUnitInfo(FilterFieldType.NId, UnitNid.ToString());
                        RetVal.SubgroupValInfo = SubgroupValBuilderObj.GetSubgroupValInfo(FilterFieldType.NId, SGNid.ToString());

                    }
                }
            }
            catch (Exception)
            {
                RetVal = null;
            }

            return RetVal;
        }
Example #47
0
        /// <summary>
        /// AutoSelect IUS based on TimePeriod and Area selection
        /// </summary>
        /// <param name="timePeriodNIds">commma delimited Timeperiod NIds which may be blank</param>
        /// <param name="areaNIds">commma delimited Area NIds which may be blank</param>
        /// <param name="ICType">Indicator Classification Type</param>
        /// <param name="fieldSelection">NId or Light</param>
        /// <returns>Sql query string</returns>
        public string GetAutoSelectByTimePeriodArea(string timePeriodNIds, string areaNIds, ICType ICType, FieldSelection fieldSelection)
        {
            string RetVal = String.Empty;
            // Get basic Sql clause from overloaded function
            RetVal = GetAutoSelectByTimePeriodArea(timePeriodNIds, areaNIds, -1, fieldSelection);

            // Append additional clause for ICType
            RetVal += " AND IC." + DIColumns.IndicatorClassifications.ICType + " = " + DIQueries.ICTypeText[ICType];

            return RetVal;
        }
Example #48
0
        /// <summary>
        /// Get  NId, ParentNId, Name, GID, Global,ID from Area for a given  Filter Criteria
        /// </summary>
        /// <param name="filterFieldType">None - gets all records
        /// <para>Applicable for NId, Name, Search, NIdNotIn, NameNotIn</para>
        /// </param>
        /// <param name="filterString">blank - gets all records 
        /// <para>For FilterFieldType "Search" include wild characters. e.g. '%Ind%' or '%Africa%'</para>
        /// </param>
        /// <param name="fieldSelection">Heavy will include metadata text</param>
        /// <returns></returns>
        public string GetAreaMapMetadata(FilterFieldType filterFieldType, string filterString, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            sbQuery.Append("SELECT " + DIColumns.Area_Map_Metadata.MetadataNId + "," + DIColumns.Area_Map_Metadata.LayerNId + "," + DIColumns.Area_Map_Metadata.LayerName);

            //-- Include Metadata text only for heavy case
            if (fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append("," + DIColumns.Area_Map_Metadata.MetadataText);
            }

            sbQuery.Append(" FROM " + this.TablesName.AreaMapMetadata);

            if (filterString.Length > 0 && filterFieldType != FilterFieldType.None)
            {
                 sbQuery.Append(" WHERE ");
               }

            if (filterString.Length > 0)
            {
                switch (filterFieldType)
                {
                    case FilterFieldType.None:
                        break;
                    case FilterFieldType.NId:
                        sbQuery.Append(DIColumns.Area_Map_Metadata.LayerNId + " IN (" + filterString + ")");
                        break;
                    case FilterFieldType.Name:
                        sbQuery.Append(DIColumns.Area_Map_Metadata.LayerName + " IN (" + filterString + ")");
                        break;
                    case FilterFieldType.Search:
                        sbQuery.Append(filterString);
                        break;
                    case FilterFieldType.NIdNotIn:
                        sbQuery.Append(DIColumns.Area_Map_Metadata.LayerNId + " NOT IN (" + filterString + ")");
                        break;
                    case FilterFieldType.NameNotIn:
                        sbQuery.Append(DIColumns.Area_Map_Metadata.LayerName + " NOT IN (" + filterString + ")");
                        break;
                }
            }

            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #49
0
        /// <summary>
        /// Get IUSNIds based on Indicator, Unit , SubgroupVal
        /// </summary>
        /// <param name="indicatorName">IndicatorName which may be blank</param>
        /// <param name="unitName">UnitName which may be blank</param>
        /// <param name="subgroupVal">SubgroupVal which may be blank</param>
        /// <returns>If all three parameters are blank then resultent query will return all IUSNIds in IUS table</returns>
        public string GetIUSByI_U_S_Name(string indicatorName, string unitName, string subgroupVal, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            //  SELECT Clause
            sbQuery.Append("SELECT DISTINCT IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.SubgroupValNId);

            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",I." + DIColumns.Indicator.IndicatorName + ",I." + DIColumns.Indicator.IndicatorGId + ",I." + DIColumns.Indicator.IndicatorGlobal);
                sbQuery.Append(",U." + DIColumns.Unit.UnitName + ",U." + DIColumns.Unit.UnitGId + ",U." + DIColumns.Unit.UnitGlobal);
                sbQuery.Append(",SGV." + DIColumns.SubgroupVals.SubgroupVal + ",SGV." + DIColumns.SubgroupVals.SubgroupValGId + ",SGV." + DIColumns.SubgroupVals.SubgroupValGlobal);
            }
            if (fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",I." + DIColumns.Indicator.IndicatorInfo);
            }

            //  FROM Clause
            sbQuery.Append(" FROM " + this.TablesName.IndicatorUnitSubgroup + " AS IUS");

            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append("," + this.TablesName.Indicator + " AS I");
                sbQuery.Append("," + this.TablesName.Unit + " AS U");
                sbQuery.Append("," + this.TablesName.SubgroupVals + " AS SGV");

                //  WHERE Clause
                sbQuery.Append(" WHERE 1=1 ");

                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId + " = I." + DIColumns.Indicator.IndicatorNId);
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId + " = U." + DIColumns.Unit.UnitNId);
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.SubgroupValNId + " = SGV." + DIColumns.SubgroupVals.SubgroupValNId);

                if (indicatorName.Trim().Length > 0)
                    sbQuery.Append(" AND " + DIColumns.Indicator.IndicatorName + " ='" + indicatorName + "'");

                if (unitName.Trim().Length > 0)
                    sbQuery.Append(" AND " + DIColumns.Unit.UnitName + " ='" + unitName + "'");

                if (subgroupVal.Trim().Length > 0)
                    sbQuery.Append(" AND " + DIColumns.SubgroupVals.SubgroupVal + " ='" + subgroupVal + "'");
            }

            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #50
0
        /// <summary>
        /// Get Indicator Classification records for a given IC Type and IUSNId
        /// </summary>
        /// <param name="filterFieldType">Applicable for NId, GId, Name, Search, ParentNId, NIdNotIn, NameNotIn, Type</param>
        /// <param name="filterText">
        /// <para>For FilterFieldType "Search" include wild characters. e.g. '%UNSD%' or '%UNSD'</para>
        /// </param>
        /// <param name="IUSNIds">Comma delimited IUSNIds </param>
        /// <param name="classificationType">ICType enum value</param>
        /// <param name="fieldSelection">LIGHT: Returns - ICNId, ICParent_NId, ICName, ICGId, ICGlobal, ICType, IUSNId
        /// <para>HEAVY: Returns - ICNId, ICParent_NId, ICName, ICGId, ICGlobal, ICType, ICInfo, IUSNId</para>
        /// </param>
        /// <returns>
        /// </returns>
        public string GetICForIUSNId(FilterFieldType filterFieldType, string filterText, string IUSNIds, ICType classificationType, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            sbQuery.Append(this.GetICIUSSelectFromClause(fieldSelection));

            // WHERE Clause
            sbQuery.Append(" WHERE ");
            sbQuery.Append(" IC." + DIColumns.IndicatorClassifications.ICNId + " = ICIUS." + DIColumns.IndicatorClassificationsIUS.ICNId);
            sbQuery.Append(" AND IC." + DIColumns.IndicatorClassifications.ICType + "=" + DIQueries.ICTypeText[classificationType]);
            if (IUSNIds.Trim().Length > 0)
            {
                sbQuery.Append(" AND ICIUS." + DIColumns.IndicatorClassificationsIUS.IUSNId + " IN (" + IUSNIds + ")");
            }

            string WhereClause = this.GetICWhereClause(filterFieldType, filterText);
            if (WhereClause.Length > 0)
            {
                sbQuery.Append(" AND " + WhereClause);
            }

            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #51
0
        /// <summary>
        /// Get IC Records for a given Filter Criteria and FieldSelection
        /// </summary>
        /// <param name="filterFieldType">
        /// <para>Applicable for NId, GId, Name, Search, ParentNId, NIdNotIn, NameNotIn, Type</para>        
        /// </param>
        /// <param name="searchClause">
        /// <para>For FilterFieldType "Search" include wild characters. e.g. '%UNSD%' or '%UNSD'</para>
        /// </param>
        /// <param name="fieldSelection">
        /// <para>LIGHT: Returns - NId, ParentNId, Name, GID, Global</para>
        /// <para>HEAVY: Returns - NId, ParentNId, Name, GID, Global, Info</para>
        /// </param>
        /// <returns></returns>
        public string GetICForSearch(FilterFieldType filterFieldType, string searchClause, FieldSelection fieldSelection, bool includeISBNNature)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            sbQuery.Append(this.GetICSelectFromClause(fieldSelection, includeISBNNature));
            string WhereClause = searchClause;
            if (WhereClause.Length > 0)
            {
                sbQuery.Append(" WHERE " + WhereClause);
            }

            sbQuery.Append(" ORDER BY IC." + DIColumns.IndicatorClassifications.ICName);
            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #52
0
        /// <summary>
        /// Returns SELECT and FROM clause for IC and ICIUSNId table based on FieldSelection
        /// </summary>
        /// <param name="fieldSelection">LIGHT: Returns - ICNId, ICParent_NId, ICName, ICGId, ICGlobal, ICType, IUSNId
        /// <para>HEAVY: Returns - ICNId, ICParent_NId, ICName, ICGId, ICGlobal, ICType, ICInfo, IUSNId</para>
        /// </param>        
        /// <returns></returns>
        private string GetICIUSSelectFromClause(FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            RetVal = "SELECT DISTINCT IC." + DIColumns.IndicatorClassifications.ICNId + ",IC." + DIColumns.IndicatorClassifications.ICParent_NId + ",IC." + DIColumns.IndicatorClassifications.ICName + ",IC." + DIColumns.IndicatorClassifications.ICGId + ",IC." + DIColumns.IndicatorClassifications.ICGlobal + ",IC." + DIColumns.IndicatorClassifications.ICType;
            RetVal += ",ICIUS." + DIColumns.IndicatorClassificationsIUS.IUSNId;
            if (fieldSelection == FieldSelection.Heavy)
            {
                RetVal += "," + DIColumns.IndicatorClassifications.ICInfo;
            }

            // FROM Clause
            RetVal += " FROM " + this.TablesName.IndicatorClassifications + " AS IC," + this.TablesName.IndicatorClassificationsIUS + " AS ICIUS";

            return RetVal;
        }
Example #53
0
        /// <summary>
        /// Returns query to get area map layer
        /// </summary>
        /// <param name="layerNid">Comma separated layer nids and to get all map layer can be blank</param>
        /// <param name="fieldSelection"></param>
        /// <returns></returns>
        public string GetAreaMapLayerByNid(string layerNids, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;

            // SELECT
            RetVal = "Select AML." + DIColumns.Area_Map_Layer.LayerNId + ", AML." + DIColumns.Area_Map_Layer.LayerSize + ", AML." + DIColumns.Area_Map_Layer.LayerType + ", AML." + DIColumns.Area_Map_Layer.MinX + ", AML." + DIColumns.Area_Map_Layer.MinY + ", AML." + DIColumns.Area_Map_Layer.MaxX + ", AML." + DIColumns.Area_Map_Layer.MaxY + ", AML." + DIColumns.Area_Map_Layer.StartDate + ", AML." + DIColumns.Area_Map_Layer.EndDate + ", AML." + DIColumns.Area_Map_Layer.UpdateTimestamp + ", AMM." + DIColumns.Area_Map_Metadata.LayerName;
            if (fieldSelection == FieldSelection.Heavy)
            {
                RetVal += ", AML." + DIColumns.Area_Map_Layer.LayerShp + ", AML." + DIColumns.Area_Map_Layer.LayerShx + ", AML." + DIColumns.Area_Map_Layer.Layerdbf;
            }

            // FROM
            RetVal += " FROM " + this.TablesName.AreaMapLayer + " AML, " + this.TablesName.AreaMapMetadata + " AMM ";

            // WHERE
            RetVal += " WHERE AMM." + DIColumns.Area_Map_Layer.LayerNId + " = AML." + DIColumns.Area_Map_Layer.LayerNId;
            if (!string.IsNullOrEmpty(layerNids))
                RetVal += " AND AML.Layer_NId in(" + layerNids + ")";

            // Return
            return RetVal;
        }
Example #54
0
        /// <summary>
        /// Returns SELECT and FROM clause for IC table based on FieldSelection
        /// </summary>
        /// <param name="fieldSelection">
        /// <para>LIGHT: Returns - NId, ParentNId, Name, GID, Global</para>
        /// <para>HEAVY: Returns - NId, ParentNId, Name, GID, Global, Info</para>
        /// </param>
        /// <returns></returns>
        private string GetICSelectFromClause(FieldSelection fieldSelection,bool includeISBNNature)
        {
            string RetVal = string.Empty;
            RetVal = "SELECT IC." + DIColumns.IndicatorClassifications.ICNId + ",IC." + DIColumns.IndicatorClassifications.ICParent_NId + ",IC." + DIColumns.IndicatorClassifications.ICName + ",IC." + DIColumns.IndicatorClassifications.ICGId + ",IC." + DIColumns.IndicatorClassifications.ICGlobal + ",IC." + DIColumns.IndicatorClassifications.ICType + ",IC." + DIColumns.IndicatorClassifications.ICOrder ;

            if (includeISBNNature)
            {
                RetVal += ",IC." + DIColumns.IndicatorClassifications.ISBN + ",IC." + DIColumns.IndicatorClassifications.Nature;
            }

            if (fieldSelection == FieldSelection.Heavy)
            {
                RetVal += ",IC." + DIColumns.IndicatorClassifications.ICInfo;
            }

            RetVal += " FROM " + this.TablesName.IndicatorClassifications + " AS IC";
            return RetVal;
        }
Example #55
0
        /// <summary>
        /// Get  LayerName, LayerNId, LayerSize, LayerType, MinX, MinY, MaxX, MaxY,[LayerShp, LayerShx, LayerDbf] from AreaMapLayer for a given  Filter Criteria
        /// </summary>
        /// <param name="MapFilterFieldType">None will get all layers</param>
        /// <param name="filterText">blank will get all layers</param>
        /// <param name="fieldSelection">Light or Heavy. Heavy will include shp, shx and dbf</param>
        /// <returns></returns>
        public string GetAreaMapLayer(MapFilterFieldType mapFilterFieldType, string filterText, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            //DISTINCT Clause not valid with memo or oledb (blob) fields
            sbQuery.Append("SELECT AMM." + DIColumns.Area_Map_Metadata.LayerName + ",AML." + DIColumns.Area_Map_Layer.LayerNId + ",AML." + DIColumns.Area_Map_Layer.LayerSize + ",AML." + DIColumns.Area_Map_Layer.LayerType);
            sbQuery.Append(",AML." + DIColumns.Area_Map_Layer.MinX + ",AML." + DIColumns.Area_Map_Layer.MinY + ",AML." + DIColumns.Area_Map_Layer.MaxX + ",AML." + DIColumns.Area_Map_Layer.MaxY);
            sbQuery.Append(",AML." + DIColumns.Area_Map_Layer.StartDate + ",AML." + DIColumns.Area_Map_Layer.EndDate + ",AML." + DIColumns.Area_Map_Layer.UpdateTimestamp);
            if (fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",AML." + DIColumns.Area_Map_Layer.LayerShp + ",AML." + DIColumns.Area_Map_Layer.LayerShx + ",AML." + DIColumns.Area_Map_Layer.Layerdbf);
            }
            if (mapFilterFieldType == MapFilterFieldType.AreaNId || mapFilterFieldType == MapFilterFieldType.AreaLevel)
            {
                sbQuery.Append(",A." + DIColumns.Area.AreaLevel + ", A." + DIColumns.Area.AreaNId + ", A." + DIColumns.Area.AreaID + ", A." + DIColumns.Area.AreaBlock);
            }

            sbQuery.Append(" FROM " + this.TablesName.AreaMapLayer + " AS AML," + this.TablesName.AreaMapMetadata + " AS AMM");
            if (mapFilterFieldType == MapFilterFieldType.AreaNId || mapFilterFieldType == MapFilterFieldType.AreaLevel)
            {
                sbQuery.Append("," + this.TablesName.AreaMap + " AS AM," + this.TablesName.Area + " AS A");
            }

            sbQuery.Append(" WHERE AML." + DIColumns.Area_Map_Layer.LayerNId + " = AMM." + DIColumns.Area_Map_Metadata.LayerNId);
            if (mapFilterFieldType == MapFilterFieldType.AreaNId || mapFilterFieldType == MapFilterFieldType.AreaLevel)
            {
                sbQuery.Append(" AND AML." + DIColumns.Area_Map_Layer.LayerNId + " = AM." + DIColumns.Area_Map.LayerNId);
                sbQuery.Append(" AND AM." + DIColumns.Area_Map.AreaNId + " = A." + DIColumns.Area.AreaNId);
            }

            if (filterText.Length > 0)
            {
                switch (mapFilterFieldType)
                {
                    case MapFilterFieldType.None:
                        break;
                    case MapFilterFieldType.LayerNId:
                        sbQuery.Append(" AND AML." + DIColumns.Area_Map_Layer.LayerNId + " IN (" + filterText + ")");
                        break;
                    case MapFilterFieldType.LayerName:
                        sbQuery.Append(" AND AMM." + DIColumns.Area_Map_Metadata.LayerName + " IN (" + filterText + ")");
                        break;
                    case MapFilterFieldType.AreaNId:
                        sbQuery.Append(" AND A." + DIColumns.Area.AreaNId + " IN (" + filterText + ")");
                        break;
                    case MapFilterFieldType.AreaLevel:
                        sbQuery.Append(" AND A." + DIColumns.Area.AreaLevel + " IN (" + filterText + ")");
                        break;
                }
            }

            //*** Polygon(5)->PolyLine(3)->Points(1) Country(1)->State(2)->District(3)
            sbQuery.Append(" ORDER BY AML." + DIColumns.Area_Map_Layer.LayerType + " DESC");
            if (mapFilterFieldType == MapFilterFieldType.AreaNId || mapFilterFieldType == MapFilterFieldType.AreaLevel)
            {
                sbQuery.Append(",A." + DIColumns.Area.AreaLevel);
            }

            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #56
0
        /// <summary>
        /// AutoSelect IUS based on TimePeriod and Area selection
        /// </summary>
        /// <param name="timePeriodNIds">commma delimited Timeperiod NIds which may be blank</param>
        /// <param name="areaNIds">commma delimited Area NIds which may be blank</param>
        /// <param name="ICNId">Indicator Classification NId of selected item in IC tree which may be -1 for all </param>
        /// <param name="fieldSelection">NId or Light</param>
        /// <returns>Sql query string</returns>
        public string GetAutoSelectByTimePeriodArea(string timePeriodNIds, string areaNIds, int ICNId, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            // Set SELECT clause based on fieldSelection type
            sbQuery.Append("SELECT DISTINCT IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + ",I." + DIColumns.Indicator.IndicatorNId + ",U." + DIColumns.Unit.UnitNId + ",SGV." + DIColumns.SubgroupVals.SubgroupValNId);    //FieldSelection.NId
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",I." + DIColumns.Indicator.IndicatorName + ",I." + DIColumns.Indicator.IndicatorGId + ",I." + DIColumns.Indicator.IndicatorGlobal);
                sbQuery.Append(",U." + DIColumns.Unit.UnitName + ",U." + DIColumns.Unit.UnitGId + ",U." + DIColumns.Unit.UnitGlobal);
                sbQuery.Append(",SGV." + DIColumns.SubgroupVals.SubgroupVal + ",SGV." + DIColumns.SubgroupVals.SubgroupValGId + ",SGV." + DIColumns.SubgroupVals.SubgroupValGlobal);
            }

            //FROM UT_Data AS D,UT_Indicator_Unit_Subgroup AS IUS,UT_Indicator_en AS I,UT_Unit_en AS U,UT_Subgroup_Vals_en AS SGV,UT_Indicator_Classifications_en AS IC,UT_Indicator_Classifications_IUS AS ICIUS,UT_Area_en AS A ,UT_TimePeriod AS T

            // Set FROM Clause
            sbQuery.Append(" FROM " + this.TablesName.Data + " AS D," + this.TablesName.IndicatorUnitSubgroup + " AS IUS," + this.TablesName.Indicator + " AS I,");
            sbQuery.Append(this.TablesName.Unit + " AS U," + this.TablesName.SubgroupVals + " AS SGV");

            if (timePeriodNIds.Length > 0)
            {
                sbQuery.Append("," + this.TablesName.TimePeriod + " AS T");
            }

            if (areaNIds.Length > 0)
            {
                sbQuery.Append("," + this.TablesName.Area + " AS A");
            }
            sbQuery.Append("," + this.TablesName.IndicatorClassifications + " AS IC," + this.TablesName.IndicatorClassificationsIUS + " AS ICIUS");

            // Set WHERE clause
            sbQuery.Append(" WHERE I." + DIColumns.Indicator.IndicatorNId + " = IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId);
            sbQuery.Append(" AND U." + DIColumns.Unit.UnitNId + " = IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId);
            sbQuery.Append(" AND SGV." + DIColumns.SubgroupVals.SubgroupValNId + " = IUS." + DIColumns.Indicator_Unit_Subgroup.SubgroupValNId);
            sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + " = D." + DIColumns.Data.IUSNId);
            if (timePeriodNIds.Length > 0)
            {
                sbQuery.Append(" AND T." + DIColumns.Timeperiods.TimePeriodNId + " = D." + DIColumns.Data.TimePeriodNId + " AND T." + DIColumns.Timeperiods.TimePeriodNId + " IN (" + timePeriodNIds + ")");
            }
            if (areaNIds.Length > 0)
            {
                sbQuery.Append(" AND A." + DIColumns.Area.AreaNId + " = D." + DIColumns.Data.AreaNId + " AND A." + DIColumns.Area.AreaNId + " IN (" + areaNIds + ")");
            }

            sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + " = ICIUS." + DIColumns.IndicatorClassificationsIUS.IUSNId);
            sbQuery.Append(" AND ICIUS." + DIColumns.IndicatorClassificationsIUS.ICNId + " = IC." + DIColumns.IndicatorClassifications.ICNId);

            if (ICNId != -1)
            {
                sbQuery.Append(" AND IC." + DIColumns.IndicatorClassifications.ICNId + " = " + ICNId);
            }

            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #57
0
        /// <summary>
        /// Get Indicator Classification records  IndicatorNids
        /// </summary>        
        /// <param name="IndicatorNIds">Comma delimited Indicator NIds</param>
        /// <param name="fieldSelection">LIGHT: Returns - ICNId, ICParent_NId, ICName, ICGId, ICGlobal,IndicatorNId
        /// <para>HEAVY: Returns - NId, PArentNId, Name, GID, Global, Info</para>
        /// </param>
        /// <returns>
        /// </returns>
        public string GetICForIndicators(string IndicatorNIds, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            // SELECT Clause
            sbQuery.Append("SELECT DISTINCT IC." + DIColumns.IndicatorClassifications.ICNId + ",IC." + DIColumns.IndicatorClassifications.ICParent_NId + ",IC." + DIColumns.IndicatorClassifications.ICName + ",IC." + DIColumns.IndicatorClassifications.ICGId + ",IC." + DIColumns.IndicatorClassifications.ICGlobal + ",IC." + DIColumns.IndicatorClassifications.ICType);
            sbQuery.Append(",IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId);
            if (fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append("," + DIColumns.IndicatorClassifications.ICInfo);
            }

            // FROM Clause
            sbQuery.Append(" FROM " + this.TablesName.IndicatorClassifications + " AS IC," + this.TablesName.IndicatorClassificationsIUS + " AS ICIUS," + this.TablesName.IndicatorUnitSubgroup + " AS IUS");

            // WHERE Clause
            sbQuery.Append(" WHERE ");
            sbQuery.Append(" IC." + DIColumns.IndicatorClassifications.ICNId + "= ICIUS." + DIColumns.IndicatorClassificationsIUS.ICNId + " AND ICIUS." + DIColumns.IndicatorClassificationsIUS.IUSNId + "= IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId);
            if (IndicatorNIds.Trim().Length > 0)
            {
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId + " IN (" + IndicatorNIds + ")");
            }
            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #58
0
        /// <summary>
        /// Get the auto selected  NId, Name, GID, Global from IUS - Indicator - Unit - SubgroupVal table for a given  Filter Criteria
        /// </summary>
        /// <param name="filterFieldType">Applicable for NId</param>
        /// <param name="filterText"></param>
        /// <param name="fieldSelection">Use Light for NId + Name + GId + Global fields use heavy to include IndicatorInfo field</param>
        /// <returns>Sql query string</returns>
        public string GetAutoSelectIUS(FilterFieldType filterFieldType, string filterText, FieldSelection fieldSelection)
        {
            string RetVal = string.Empty;
            StringBuilder sbQuery = new StringBuilder();

            //  SELECT Clause
            sbQuery.Append("SELECT IUS." + DIColumns.Indicator_Unit_Subgroup.IUSNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId + ",IUS." + DIColumns.Indicator_Unit_Subgroup.SubgroupValNId);
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",I." + DIColumns.Indicator.IndicatorName + ",I." + DIColumns.Indicator.IndicatorGId + ",I." + DIColumns.Indicator.IndicatorGlobal);
                sbQuery.Append(",U." + DIColumns.Unit.UnitName + ",U." + DIColumns.Unit.UnitGId + ",U." + DIColumns.Unit.UnitGlobal);
                sbQuery.Append(",SGV." + DIColumns.SubgroupVals.SubgroupVal + ",SGV." + DIColumns.SubgroupVals.SubgroupValGId + ",SGV." + DIColumns.SubgroupVals.SubgroupValGlobal);
                sbQuery.Append(",IUS." + DIColumns.Indicator_Unit_Subgroup.MinValue + ",IUS." + DIColumns.Indicator_Unit_Subgroup.MaxValue + ",SGV." + DIColumns.SubgroupVals.SubgroupValOrder);

            }
            if (fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(",I." + DIColumns.Indicator.IndicatorInfo);
            }

            //  FROM Clause
            sbQuery.Append(" FROM " + this.TablesName.IndicatorUnitSubgroup + " AS IUS");
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append("," + this.TablesName.Indicator + " AS I");
                sbQuery.Append("," + this.TablesName.Unit + " AS U");
                sbQuery.Append("," + this.TablesName.SubgroupVals + " AS SGV");
            }

            //  WHERE Clause
            sbQuery.Append(" WHERE IUS." + DIColumns.Indicator_Unit_Subgroup.DataExist + " <> 0 ");
            if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            {
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.IndicatorNId + " = I." + DIColumns.Indicator.IndicatorNId);
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.UnitNId + " = U." + DIColumns.Unit.UnitNId);
                sbQuery.Append(" AND IUS." + DIColumns.Indicator_Unit_Subgroup.SubgroupValNId + " = SGV." + DIColumns.SubgroupVals.SubgroupValNId);
            }

            if (filterFieldType != FilterFieldType.None && filterText.Length > 0)
            {

                switch (filterFieldType)
                {
                    case FilterFieldType.None:
                        break;
                    case FilterFieldType.NId:
                        sbQuery.Append(" AND " + DIColumns.Indicator_Unit_Subgroup.IUSNId + " IN (" + filterText + ")");
                        break;
                    case FilterFieldType.ParentNId:
                        break;
                    case FilterFieldType.ID:
                        break;
                    case FilterFieldType.GId:
                        break;
                    case FilterFieldType.Name:
                        break;
                    case FilterFieldType.Search:
                        sbQuery.Append(filterText);
                        break;
                    case FilterFieldType.Global:
                        break;
                    case FilterFieldType.NIdNotIn:
                        break;
                    case FilterFieldType.NameNotIn:
                        break;
                    default:
                        break;
                }
            }

            //  ORDER BY Clause
            //if (fieldSelection == FieldSelection.Light || fieldSelection == FieldSelection.Heavy)
            //{
            //    sbQuery.Append(" ORDER BY I." + DIColumns.Indicator.IndicatorName);
            //}

            RetVal = sbQuery.ToString();
            return RetVal;
        }
Example #59
0
 /// <summary>
 /// Get distinct NId, Name, GID, Global from IUS - Indicator - Unit - SubgroupVal table based on Indicator Classification Type
 /// </summary>
 /// <param name="ICType">Indicator Classification Type</param>
 /// <param name="ICNId">ICNId which may be -1 if only ICType is to be considered</param>
 /// <param name="fieldSelection">Use Light for NId + Name + GId + Global fields use heavy to include IndicatorInfo field</param>
 /// <returns>Sql query string</returns>
 public string GetDistinctIUSByIC(ICType ICType, int ICNId, FieldSelection fieldSelection)
 {
     if (ICNId == -1)
     {
         return GetDistinctIUSByIC(ICType, string.Empty, fieldSelection);
     }
     else
     {
         return GetDistinctIUSByIC(ICType, ICNId.ToString(), fieldSelection);
     }
 }
Example #60
0
 /// <summary>
 /// Get distinct NId, Name, GID, Global from IUS - Indicator - Unit - SubgroupVal table based on Indicator Classification Type
 /// </summary>
 /// <param name="ICType">Indicator Classification Type</param>
 /// <param name="ICNId">ICNId which may be blank if only ICType is to be considered</param>
 /// <param name="fieldSelection">Use Light for NId + Name + GId + Global fields use heavy to include IndicatorInfo field</param>
 /// <returns>Sql query string</returns>
 public string GetDistinctIUSByIC(ICType ICType, string ICNId, FieldSelection fieldSelection)
 {
     string sortOrderString = "I." + DIColumns.Indicator.IndicatorName + ", U." + DIColumns.Unit.UnitName + ", SGV." + DIColumns.SubgroupVals.SubgroupVal;
     return this.GetDistinctIUSByIC(ICType, ICNId, fieldSelection, sortOrderString);
 }