コード例 #1
0
ファイル: GetDomains.cs プロジェクト: xiangchou/GetDomains
        private byte[] MakeDomainOptionsHandler(NameValueCollection boundVariables,
                                                JsonObject operationInput,
                                                string outputFormat,
                                                string requestProperties,
                                                out string responseProperties)
        {
            responseProperties = null;

            string strSDELayerName;
            bool   found = operationInput.TryGetString("SDEName", out strSDELayerName);

            if (!found || string.IsNullOrEmpty(strSDELayerName))
            {
                throw new ArgumentNullException("SDEName");
            }

            string strFieldName;

            found = operationInput.TryGetString("fieldname", out strFieldName);
            if (!found || string.IsNullOrEmpty(strSDELayerName))
            {
                throw new ArgumentNullException("fieldname");
            }



            IStandaloneTable pStandAloneTable = GetLayerfromSDE(strSDELayerName);
            IField           pField;


            Dictionary <string, string> dicDomainValues;

            option opt = new option();

            opt.Result = "OK";
            List <Dictionary <string, string> > lstDics = new List <Dictionary <string, string> >();


            int iFieldIndex = pStandAloneTable.Table.Fields.FindField(strFieldName);

            if (iFieldIndex != -1)
            {
                pField = pStandAloneTable.Table.Fields.get_Field(iFieldIndex);

                IDomain pDomain;
                pDomain = pField.Domain;

                if (pDomain != null)
                {
                    ICodedValueDomain pCodedValueDomain;
                    pCodedValueDomain = pDomain as ICodedValueDomain;
                    if (pCodedValueDomain != null)
                    {
                        for (int k = 0; k <= pCodedValueDomain.CodeCount - 1; k++)
                        {
                            dicDomainValues = new Dictionary <string, string>();
                            string name  = pCodedValueDomain.get_Value(k).ToString();
                            string value = pCodedValueDomain.get_Name(k).ToString();
                            dicDomainValues.Add("DisplayText", value);
                            dicDomainValues.Add("Value", name);
                            lstDics.Add(dicDomainValues);
                        }
                    }
                }
            }
            else
            {
                opt.Result = "Field not found";
            }



            JsonObject result = new JsonObject();

            result.AddString("Result", opt.Result);
            result.AddObject("Options", lstDics);



            return(Encoding.UTF8.GetBytes(result.ToJson()));
        }
コード例 #2
0
ファイル: GetDomains.cs プロジェクト: ericoneal/GetDomains
        private byte[] MakeDomainOptionsHandler(NameValueCollection boundVariables,
                                               JsonObject operationInput,
                                                   string outputFormat,
                                                   string requestProperties,
                                               out string responseProperties)
        {
            responseProperties = null;

            string strSDELayerName;
            bool found = operationInput.TryGetString("SDEName", out strSDELayerName);
            if (!found || string.IsNullOrEmpty(strSDELayerName))
                throw new ArgumentNullException("SDEName");

            string strFieldName;
            found = operationInput.TryGetString("fieldname", out strFieldName);
            if (!found || string.IsNullOrEmpty(strSDELayerName))
                throw new ArgumentNullException("fieldname");

            IStandaloneTable pStandAloneTable = GetLayerfromSDE(strSDELayerName);
            IField pField;

            Dictionary<string, string> dicDomainValues;

            option opt = new option();
            opt.Result = "OK";
            List<Dictionary<string, string>> lstDics = new List<Dictionary<string, string>>();

            int iFieldIndex = pStandAloneTable.Table.Fields.FindField(strFieldName);
            if (iFieldIndex != -1)
            {
                pField = pStandAloneTable.Table.Fields.get_Field(iFieldIndex);

                IDomain pDomain;
                pDomain = pField.Domain;

                if (pDomain != null)
                {

                    ICodedValueDomain pCodedValueDomain;
                    pCodedValueDomain = pDomain as ICodedValueDomain;
                    if (pCodedValueDomain != null)
                    {

                        for (int k = 0; k <= pCodedValueDomain.CodeCount - 1; k++)
                        {
                            dicDomainValues = new Dictionary<string, string>();
                            string name = pCodedValueDomain.get_Value(k).ToString();
                            string value = pCodedValueDomain.get_Name(k).ToString();
                            dicDomainValues.Add("DisplayText", value);
                            dicDomainValues.Add("Value", name);
                            lstDics.Add(dicDomainValues);
                        }

                    }

                }

            }
            else
            {
                opt.Result = "Field not found";
            }

            JsonObject result = new JsonObject();
            result.AddString("Result", opt.Result);
            result.AddObject("Options", lstDics);

            return Encoding.UTF8.GetBytes(result.ToJson());
        }