Exemplo n.º 1
0
        public string GetOptionsetText(string optionsetName, int optionsetValue)
        {
            string optionsetSelectedText = string.Empty;

            RetrieveOptionSetRequest retrieveOptionSetRequest =
                new RetrieveOptionSetRequest
            {
                Name = optionsetName
            };

            // Execute the request.
            RetrieveOptionSetResponse retrieveOptionSetResponse = null;

            retrieveOptionSetResponse = (RetrieveOptionSetResponse)_service.Execute(retrieveOptionSetRequest);

            // Access the retrieved OptionSetMetadata.
            OptionSetMetadata retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;

            // Get the current options list for the retrieved attribute.
            OptionMetadata[] optionList = retrievedOptionSetMetadata.Options.ToArray();
            foreach (OptionMetadata optionMetadata in optionList)
            {
                if (optionMetadata.Value == optionsetValue)
                {
                    optionsetSelectedText = optionMetadata.Label.UserLocalizedLabel.Label.ToString();
                    break;
                }
            }

            return(optionsetSelectedText);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 옵션집합의 Options 가져오기
        /// </summary>
        /// <param name="optionSetName"></param>
        /// <returns></returns>
        private OptionMetadata[] RetrieveGlobalOptionSetOptions(string optionSetName)
        {
            try
            {
                // Use the RetrieveOptionSetRequest message to retrieve
                // a global option set by it's name.
                RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest
                {
                    Name = optionSetName
                };

                // Execute the request.
                RetrieveOptionSetResponse retrieveOptionSetResponse = (RetrieveOptionSetResponse)_orgService.Execute(retrieveOptionSetRequest);

                //Console.WriteLine("Retrieved {0}.", retrieveOptionSetRequest.Name);

                // Access the retrieved OptionSetMetadata.
                OptionSetMetadata retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;

                // Get the current options list for the retrieved attribute.
                OptionMetadata[] options = retrievedOptionSetMetadata.Options.ToArray();

                return(options);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var retrieveOptionSetRequest = (RetrieveOptionSetRequest)request;

            var name = retrieveOptionSetRequest.Name;

            if (string.IsNullOrEmpty(name))
            {
                throw new FaultException <OrganizationServiceFault>(new OrganizationServiceFault(), "Can not retrieve option set without a name.");
            }

            if (!ctx.OptionSetValuesMetadata.ContainsKey(name))
            {
                throw new FaultException <OrganizationServiceFault>(new OrganizationServiceFault(), string.Format("An OptionSetMetadata with the name {0} does not exist.", name));
            }

            var optionSetMetadata = ctx.OptionSetValuesMetadata[name];

            var response = new RetrieveOptionSetResponse()
            {
                Results = new ParameterCollection
                {
                    { "OptionSetMetadata", optionSetMetadata }
                }
            };

            return(response);
        }
        public List <OptionsetField> GetGlobalOptionSet(string optionSetName)
        {
            List <OptionsetField> optionSets = new List <OptionsetField>();
            ServerConnection      cnx        = new ServerConnection();

            try
            {
                RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest {
                    Name = optionSetName
                };

                RetrieveOptionSetResponse retrieveOptionSetResponse =
                    (RetrieveOptionSetResponse)cnx.Context.Execute(retrieveOptionSetRequest);

                OptionSetMetadata opcionesMedaData = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;

                opcionesMedaData.Options.ToList().ForEach
                    (l =>
                    optionSets.Add(new OptionsetField()
                {
                    Label = l.Label.UserLocalizedLabel.Label,
                    Value = Convert.ToInt32(l.Value)
                })
                    );
            }
            catch (Exception ex)
            {
                cnx = null;
                throw new CrmDataException(ex);
            }

            return(optionSets);
        }
Exemplo n.º 5
0
        private OptionSetMetadata[] RetrieveGlobalOptionSetsMetadataFromServer(IOrganizationService service)
        {
            var results = new List <OptionSetMetadata>();
            // Use RetrieveAllOptionSetsRequest to retrieve all global option sets.
            // Create the request.
            RetrieveAllOptionSetsRequest retrieveAllOptionSetsRequest = new RetrieveAllOptionSetsRequest();

            // Execute the request
            RetrieveAllOptionSetsResponse retrieveAllOptionSetsResponse = (RetrieveAllOptionSetsResponse)service.Execute(retrieveAllOptionSetsRequest);

            //return retrieveAllOptionSetsResponse.OptionSetMetadata;
            // Now you can use RetrieveAllOptionSetsResponse.OptionSetMetadata property to
            // work with all retrieved option sets.
            if (retrieveAllOptionSetsResponse.OptionSetMetadata.Count() > 0)
            {
                Console.WriteLine("All the global option sets retrieved as below:");
                foreach (OptionSetMetadataBase optionSetMetadata in retrieveAllOptionSetsResponse.OptionSetMetadata)
                {
                    if (!optionSetMetadata.IsManaged.Value && optionSetMetadata.IsGlobal.Value)
                    {
                        RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest {
                            Name = optionSetMetadata.Name
                        };
                        // Execute the request.
                        RetrieveOptionSetResponse retrieveOptionSetResponse = (RetrieveOptionSetResponse)service.Execute(retrieveOptionSetRequest);
                        results.Add((OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata);
                    }
                }
            }

            return(results.ToArray());
        }
Exemplo n.º 6
0
        /// <summary>
        /// Retrieve Global OptionSet Information.
        /// </summary>
        /// <param name="optionSetName"></param>
        /// <returns></returns>
        public OptionSetMetadata GetGlobalOptionSetMetadata(string optionSetName)
        {
            if (string.IsNullOrEmpty(optionSetName))
            {
                return(null);
            }

            ValidateMetadata();             // Check to see if Metadata has expired.

            if (_globalOptionMetadataCache.ContainsKey(optionSetName))
            {
                return(_globalOptionMetadataCache[optionSetName]);
            }

            // Create the RetrieveOption Set
            RetrieveOptionSetRequest optReq = new RetrieveOptionSetRequest {
                Name = optionSetName
            };

            // query CRM
            RetrieveOptionSetResponse response = (RetrieveOptionSetResponse)svcAct.CdsCommand_Execute(optReq, "GetGlobalOptionSetMetadata");

            if (response != null)
            {
                if (response.OptionSetMetadata is OptionSetMetadata && (OptionSetMetadata)response.OptionSetMetadata != null)
                {
                    lock (_lockObject)
                    {
                        _globalOptionMetadataCache.Add(optionSetName, (OptionSetMetadata)response.OptionSetMetadata);
                    }
                    return(_globalOptionMetadataCache[optionSetName]);
                }
            }
            return(null);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Global OptionSet이 존재하는지 여부 체크 (존재하면 true 리턴)
        /// </summary>
        /// <param name="optionSetName"></param>
        /// <returns></returns>
        public bool IsExistGlobalOptionSet(string optionSetName)
        {
            bool retVal = true;

            RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest
            {
                Name = optionSetName
            };

            string retText = string.Empty;

            try
            {
                // Execute the request.
                RetrieveOptionSetResponse retrieveOptionSetResponse = (RetrieveOptionSetResponse)_orgService.Execute(retrieveOptionSetRequest);
            }
            catch (Exception ex)
            {
                if (ex.Message.Equals("Could not find optionset"))
                {
                    retVal = false;
                }
                else
                {
                    throw;
                }
            }

            return(retVal);
        }
Exemplo n.º 8
0
        public string GetOptionsetText(Entity entity, IOrganizationService service, string optionsetName, int optionsetValue)
        {
            string optionsetSelectedText = string.Empty;

            try
            {
                RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest {
                    Name = optionsetName
                };
                RetrieveOptionSetResponse retrieveOptionSetResponse  = (RetrieveOptionSetResponse)service.Execute(retrieveOptionSetRequest);
                OptionSetMetadata         retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;
                OptionMetadata[]          optionList = retrievedOptionSetMetadata.Options.ToArray();
                foreach (OptionMetadata optionMetadata in optionList)
                {
                    if (optionMetadata.Value == optionsetValue)
                    {
                        optionsetSelectedText = optionMetadata.Label.UserLocalizedLabel.Label.ToString();
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            return(optionsetSelectedText);
        }
Exemplo n.º 9
0
        // get a global option set value
        public static String getGlobalOptionSetName(String optionsetName, int optionsetValue, IOrganizationService service)
        {
            string ret = string.Empty;

            RetrieveOptionSetRequest req = new RetrieveOptionSetRequest {
                Name = optionsetName
            };

            // Execute the request.
            RetrieveOptionSetResponse resp = (RetrieveOptionSetResponse)service.Execute(req);

            // Access the retrieved OptionSetMetadata.
            OptionSetMetadata retrievedOptionSetMetadata = (OptionSetMetadata)resp.OptionSetMetadata;

            // Get the current options list for the retrieved attribute.
            OptionMetadata[] optionList = retrievedOptionSetMetadata.Options.ToArray();
            foreach (OptionMetadata optionMetadata in optionList)
            {
                if (optionMetadata.Value == optionsetValue)
                {
                    ret = optionMetadata.Label.UserLocalizedLabel.Label.ToString();
                    break;
                }
            }

            return(ret);
        }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var retrieveOptionSetRequest = (RetrieveOptionSetRequest)request;

            if (retrieveOptionSetRequest.MetadataId != Guid.Empty) //ToDo: Implement retrieving option sets by Id
            {
                FakeOrganizationServiceFault.Throw(ErrorCodes.ObjectDoesNotExist, $"Could not find optionset with optionset id: {retrieveOptionSetRequest.MetadataId}");
            }

            var name = retrieveOptionSetRequest.Name;

            if (string.IsNullOrEmpty(name))
            {
                FakeOrganizationServiceFault.Throw(ErrorCodes.InvalidArgument, "Name is required when optionSet id is not specified");
            }

            if (!ctx.OptionSetValuesMetadata.ContainsKey(name))
            {
                FakeOrganizationServiceFault.Throw(ErrorCodes.ObjectDoesNotExist, string.Format("An OptionSetMetadata with the name {0} does not exist.", name));
            }

            var optionSetMetadata = ctx.OptionSetValuesMetadata[name];

            var response = new RetrieveOptionSetResponse()
            {
                Results = new ParameterCollection
                {
                    { "OptionSetMetadata", optionSetMetadata }
                }
            };

            return(response);
        }
Exemplo n.º 11
0
        public void GetOptionSetNameFromValueOk()
        {
            var optionSetName = "name";
            var value         = 12;
            var name          = "value";

            OrganizationService.Setup(s => s.Execute(It.IsAny <OrganizationRequest>())).Callback <OrganizationRequest>(request =>
            {
                Assert.IsInstanceOfType(request, typeof(RetrieveOptionSetRequest));
                var r = (RetrieveOptionSetRequest)request;

                Assert.AreEqual(r.Name, optionSetName);
            }).Returns(() =>
            {
                var options = new OptionMetadataCollection();
                options.Add(new OptionMetadata(new Label(new LocalizedLabel("autre", 1033), null), 18));
                options.Add(new OptionMetadata(new Label(new LocalizedLabel(name, 1033), null), value));

                var response = new RetrieveOptionSetResponse();
                response.Results["OptionSetMetadata"] = new OptionSetMetadata(options);
                return(response);
            });

            var result = Service.GetOptionSetNameFromValue(optionSetName, value);

            Assert.AreEqual(result, name);
        }
 /// <summary>
 /// Processes the global option sets
 /// </summary>
 /// <param name="dictionary">The <see cref="String"/> array that contains the global option set values.</param>
 /// <param name="key">The option set name to be created or updated.</param>
 private void ProcessGlobalPicklists(string[] dictionary, string key)
 {
     if (dictionary.Length > 0)
     {
         try
         {
             RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest {
                 Name = key
             };
             RetrieveOptionSetResponse retrieveOptionSetResponse  = (RetrieveOptionSetResponse)this.CrmAdapter.OrganizationService.Execute(retrieveOptionSetRequest);
             OptionSetMetadata         retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;
             OptionMetadata[]          optionList = retrievedOptionSetMetadata.Options.ToArray();
             foreach (string label in dictionary)
             {
                 var option = optionList.FirstOrDefault(opt => opt.Label.UserLocalizedLabel.Label == label);
                 if (option == null)
                 {
                     InsertOptionValueRequest insertOptionValueRequest = new InsertOptionValueRequest {
                         OptionSetName = key, Label = new Label(label, retrievedOptionSetMetadata.DisplayName.UserLocalizedLabel.LanguageCode)
                     };
                     this.CrmAdapter.OrganizationService.Execute(insertOptionValueRequest);
                 }
             }
         }
         catch (FaultException ex)
         {
             throw new AdapterException(ex.Message, ex)
                   {
                       ExceptionId = ErrorCodes.CrmPlatformException
                   };
         }
     }
 }
Exemplo n.º 13
0
        /// <summary>
        /// 옵션집합 가져오기
        /// </summary>
        /// <param name="optionSetName"></param>
        /// <returns></returns>
        public DtoOptionSet RetrieveGlobalOptionSet(string optionSetName)
        {
            try
            {
                RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest
                {
                    Name = optionSetName
                };

                // Execute the request.
                RetrieveOptionSetResponse retrieveOptionSetResponse = (RetrieveOptionSetResponse)_orgService.Execute(retrieveOptionSetRequest);

                //Console.WriteLine("Retrieved {0}.", retrieveOptionSetRequest.Name);

                // Access the retrieved OptionSetMetadata.
                OptionSetMetadata retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;

                DtoOptionSet retVal = new DtoOptionSet
                {
                    SchemaName  = optionSetName,
                    DisplayName = retrievedOptionSetMetadata.DisplayName.UserLocalizedLabel.Label,
                    Description = retrievedOptionSetMetadata.Description.UserLocalizedLabel.Label
                };

                return(retVal);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 14
0
        private RetrieveOptionSetResponse HandleRetrieveOptionSet(OrganizationRequest orgRequest, EntityReference userRef)
        {
            var request = MakeRequest <RetrieveOptionSetRequest>(orgRequest);
            var resp    = new RetrieveOptionSetResponse();

            resp.Results["OptionSetMetadata"] = dataMethods.RetrieveOptionSet(request.Name);
            return(resp);
        }
Exemplo n.º 15
0
        internal override OrganizationResponse Execute(OrganizationRequest orgRequest, EntityReference userRef)
        {
            var request = MakeRequest <RetrieveOptionSetRequest>(orgRequest);
            var resp    = new RetrieveOptionSetResponse();

            resp.Results["OptionSetMetadata"] = metadata.OptionSets.Where(x => x.Name == request.Name).FirstOrDefault();
            return(resp);
        }
Exemplo n.º 16
0
        public static Dictionary <String, String> FetchOptionSetList(IOrganizationService service, String entityName, String fieldName)
        {
            Dictionary <String, String> dcOptionDic = new Dictionary <String, String>();

            try
            {
                if (String.Equals(entityName, "GlobalOptionSet", StringComparison.OrdinalIgnoreCase))
                {
                    #region "--- Global OptionSet ---"
                    RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest
                    {
                        Name = fieldName
                    };

                    // Execute the request.
                    RetrieveOptionSetResponse retrieveOptionSetResponse = (RetrieveOptionSetResponse)service.Execute(retrieveOptionSetRequest);

                    // Access the retrieved OptionSetMetadata.
                    OptionSetMetadata retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;

                    // Get the current options list for the retrieved attribute.
                    OptionMetadata[] optionList = retrievedOptionSetMetadata.Options.ToArray();

                    for (int optionCount = 0; optionCount < optionList.Length; optionCount++)
                    {
                        dcOptionDic.Add(optionList[optionCount].Label.UserLocalizedLabel.Label, optionList[optionCount].Value.ToString());
                    }
                    return(dcOptionDic);

                    #endregion
                }
                else
                {
                    #region "--- Entity OptionSet ---"
                    RetrieveAttributeRequest attributeRequest = new RetrieveAttributeRequest
                    {
                        EntityLogicalName     = entityName,
                        LogicalName           = fieldName,
                        RetrieveAsIfPublished = true
                    };
                    // Execute the request
                    RetrieveAttributeResponse attributeResponse = (RetrieveAttributeResponse)service.Execute(attributeRequest);
                    OptionMetadata[]          optionList        = (((Microsoft.Xrm.Sdk.Metadata.EnumAttributeMetadata)(attributeResponse.AttributeMetadata)).OptionSet.Options).ToArray();
                    for (int optionCount = 0; optionCount < optionList.Length; optionCount++)
                    {
                        dcOptionDic.Add(optionList[optionCount].Label.UserLocalizedLabel.Label, optionList[optionCount].Value.ToString());
                    }
                    return(dcOptionDic);

                    #endregion
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 17
0
        public static OptionSetMetadata GetGlobalOptionSetValues(this OrganizationServiceProxy connexion, string nomInterneListe)
        {
            var retrieveOptionSetRequest = new RetrieveOptionSetRequest();

            retrieveOptionSetRequest.Name = nomInterneListe;

            RetrieveOptionSetResponse retrieveOptionSetResponse = (RetrieveOptionSetResponse)connexion.Execute(retrieveOptionSetRequest);

            return((OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata);
        }
 //Retrieve the name of a global Option set
    public String getGlobalOptionSetName(Guid id)
    {
     String name = "";
      RetrieveOptionSetRequest req = new RetrieveOptionSetRequest
      {
       MetadataId = id
      };
      RetrieveOptionSetResponse resp = (RetrieveOptionSetResponse)_serviceProxy.Execute(req);
      OptionSetMetadataBase os = (OptionSetMetadataBase)resp.OptionSetMetadata;
      name = os.DisplayName.UserLocalizedLabel.Label;      
     return name;
    }
Exemplo n.º 19
0
        public static OptionSetMetadataBase GetOptionSetMetadata(IOrganizationService service, Guid objectId)
        {
            RetrieveOptionSetRequest attributeRequest = new RetrieveOptionSetRequest
            {
                MetadataId            = objectId,
                RetrieveAsIfPublished = true
            };
            RetrieveOptionSetResponse attributeResponse =
                (RetrieveOptionSetResponse)service.Execute(attributeRequest);

            return(attributeResponse.OptionSetMetadata);
        }
Exemplo n.º 20
0
        //Retrieve the name of a global Option set
        public static String getGlobalOptionSetName(CrmServiceClient service, Guid id)
        {
            String name = "";
            RetrieveOptionSetRequest req = new RetrieveOptionSetRequest
            {
                MetadataId = id
            };
            RetrieveOptionSetResponse resp = (RetrieveOptionSetResponse)service.Execute(req);
            OptionSetMetadataBase     os   = (OptionSetMetadataBase)resp.OptionSetMetadata;

            name = os.DisplayName.UserLocalizedLabel.Label;
            return(name);
        }
Exemplo n.º 21
0
        private void AddOptionSet(IOrganizationService service, string ObjectName, string solutionName)
        {
            RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest()
            {
                Name = ObjectName
            };
            RetrieveOptionSetResponse retrieveOptionSetResponse = (RetrieveOptionSetResponse)service.Execute(retrieveOptionSetRequest);

            Guid componentid   = (Guid)retrieveOptionSetResponse.OptionSetMetadata.MetadataId;
            int  componentType = 9;

            AddComponent(service, solutionName, componentType, componentid);
            return;
        }
Exemplo n.º 22
0
        private RetrieveOptionSetResponse ExecuteInternal(RetrieveOptionSetRequest request)
        {
            var response  = new RetrieveOptionSetResponse();
            var optionSet = new OptionSetMetadata(new OptionMetadataCollection());

            response.Results["OptionSetMetadata"] = optionSet;

            var types    = CrmServiceUtility.GetEarlyBoundProxyAssembly(Info.EarlyBoundEntityAssembly).GetTypes();
            var enumType = types.FirstOrDefault(t => IsEnumType(t, request.Name)) ?? types.FirstOrDefault(t => IsEnumType(t, request.Name + "Enum"));

            AddEnumTypeValues(optionSet, enumType, "Unable to find global optionset enum " + request.Name);

            return(response);
        }
        /// <summary>
        /// Returns global option set as array
        /// </summary>
        /// <param name="optionSetName"> name of option set </param>
        /// <returns> Array of OptionMetadata </returns>
        public OptionMetadata[] GetGlobalOptionSet(string optionSetName)
        {
            RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest
            {
                Name = optionSetName
            };

            RetrieveOptionSetResponse retrieveOptionSetResponse  = (RetrieveOptionSetResponse)service.Execute(retrieveOptionSetRequest);
            OptionSetMetadata         retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;

            OptionMetadata[] optionList = retrievedOptionSetMetadata.Options.ToArray();

            return(optionList);
        }
Exemplo n.º 24
0
        public OptionMetadata[] GetOptionSet(string optionSetName)
        {
            IOrganizationService orgService = ContextContainer.GetValue <IOrganizationService>(ContextTypes.OrgService);

            RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest
            {
                Name = optionSetName
            };
            RetrieveOptionSetResponse retrieveOptionSetResponse = (RetrieveOptionSetResponse)orgService.Execute(retrieveOptionSetRequest);
            OptionSetMetadata         optionSetMetadata         = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;

            OptionMetadata[] optionList = optionSetMetadata.Options.ToArray();

            return(optionList);
        }
Exemplo n.º 25
0
        public static OptionSetMetadata GetOptionSetMetadata(string attributeName, string entityLogicaName, IOrganizationService organizationService)
        {
            OptionSetMetadata optionSetMetadata = null;

            if (!string.IsNullOrEmpty(entityLogicaName))
            {
                RetrieveAttributeRequest retrieveAttributeRequest = new RetrieveAttributeRequest
                {
                    EntityLogicalName     = entityLogicaName,
                    LogicalName           = attributeName,
                    RetrieveAsIfPublished = true
                };
                RetrieveAttributeResponse retrieveAttributeResponse = (RetrieveAttributeResponse)organizationService.Execute(retrieveAttributeRequest);
                AttributeMetadata         attributeMetadata         = retrieveAttributeResponse.AttributeMetadata;

                if (attributeMetadata is StateAttributeMetadata)
                {
                    optionSetMetadata = (attributeMetadata as StateAttributeMetadata).OptionSet;
                }
                else if (attributeMetadata is StatusAttributeMetadata)
                {
                    optionSetMetadata = (attributeMetadata as StatusAttributeMetadata).OptionSet;
                }
                else if (attributeMetadata is PicklistAttributeMetadata)
                {
                    optionSetMetadata = (attributeMetadata as PicklistAttributeMetadata).OptionSet;
                }
                else if (attributeMetadata is EntityNameAttributeMetadata)
                {
                    optionSetMetadata = (attributeMetadata as EntityNameAttributeMetadata).OptionSet;
                }
            }
            else
            {
                RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest()
                {
                    Name = attributeName
                };
                RetrieveOptionSetResponse retrieveOptionSetResponse = (RetrieveOptionSetResponse)organizationService.Execute(retrieveOptionSetRequest);
                if (retrieveOptionSetResponse != null)
                {
                    optionSetMetadata = retrieveOptionSetResponse.OptionSetMetadata as OptionSetMetadata;
                }
            }

            return(optionSetMetadata);
        }
        /// <summary>
        /// Retrieve Global OptionSet Information.
        /// </summary>
        /// <param name="optionSetName"></param>
        /// <returns></returns>
        public OptionSetMetadata GetGlobalOptionSetMetadata(string optionSetName)
        {
            if (string.IsNullOrEmpty(optionSetName))
            {
                return(null);
            }

            ValidateMetadata();             // Check to see if Metadata has expired.

            if (_globalOptionMetadataCache.ContainsKey(optionSetName))
            {
                return(_globalOptionMetadataCache[optionSetName]);
            }

            // Create the RetrieveOption Set
            RetrieveOptionSetRequest optReq = new RetrieveOptionSetRequest {
                Name = optionSetName
            };

            // query CRM
            RetrieveOptionSetResponse response = (RetrieveOptionSetResponse)svcAct.Command_Execute(optReq, "GetGlobalOptionSetMetadata");

            if (response != null)
            {
                if (response.OptionSetMetadata is OptionSetMetadata && (OptionSetMetadata)response.OptionSetMetadata != null)
                {
                    _globalOptionMetadataCache.TryAdd(optionSetName, (OptionSetMetadata)response.OptionSetMetadata);
                    TouchMetadataDate();
                    return(_globalOptionMetadataCache[optionSetName]);
                }
            }
            else
            {
                if (svcAct.LastException != null)
                {
                    throw new DataverseOperationException($"Failed to resolve global optionset metadata for {optionSetName}.", svcAct.LastException);
                }
                else
                {
                    throw new DataverseOperationException($"Failed to resolve global optionset metadata for {optionSetName}.", null);
                }
            }
            return(null);
        }
Exemplo n.º 27
0
        public List <CrmPicklist> ObtenerOptionSetGlobal(string optionsetName)
        {
            List <CrmPicklist> lista = null;


            try
            {
                RetrieveOptionSetRequest retrieveOptionSetRequest =
                    new RetrieveOptionSetRequest
                {
                    Name = optionsetName
                };

                // Execute the request.
                RetrieveOptionSetResponse retrieveOptionSetResponse =
                    (RetrieveOptionSetResponse)_servicio.Execute(retrieveOptionSetRequest);

                // Access the retrieved OptionSetMetadata.
                OptionSetMetadata retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;

                // Get the current options list for the retrieved attribute.
                OptionMetadata[] optionList = retrievedOptionSetMetadata.Options.ToArray();

                if (optionList != null)
                {
                    lista = new List <CrmPicklist>();
                    foreach (OptionMetadata optionMetadata in optionList)
                    {
                        //optionsetSelectedText = optionMetadata.Label.UserLocalizedLabel.Label.ToString();

                        CrmPicklist item = new CrmPicklist();

                        item.Id     = optionMetadata.Value;
                        item.Nombre = optionMetadata.Label.UserLocalizedLabel.Label;
                        lista.Add(item);
                    }
                }
            }
            catch (Exception)
            {
            }
            return(lista);
        }
Exemplo n.º 28
0
        public OptionMetadata[] GetAllOptionsetValues(string optionsetName)
        {
            string optionsetSelectedText = string.Empty;

            RetrieveOptionSetRequest retrieveOptionSetRequest =
                new RetrieveOptionSetRequest
            {
                Name = optionsetName
            };

            // Execute the request.
            RetrieveOptionSetResponse retrieveOptionSetResponse = null;

            retrieveOptionSetResponse = (RetrieveOptionSetResponse)_service.Execute(retrieveOptionSetRequest);

            // Access the retrieved OptionSetMetadata.
            OptionSetMetadata retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;

            // Get the current options list for the retrieved attribute.
            return(retrievedOptionSetMetadata.Options.ToArray());
        }
Exemplo n.º 29
0
        /// <summary>
        /// Get Optionset List Metadata
        /// </summary>
        /// <returns></returns>
        public OptionMetadata[] GetOptionSetList()
        {
            OptionMetadata[] optionList = null;

            RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest
            {
                Name = "processstage_category"
            };

            RetrieveOptionSetResponse retrieveOptionSetResponse = (RetrieveOptionSetResponse)Svc.Execute(retrieveOptionSetRequest);

            if (retrieveOptionSetResponse != null)
            {
                OptionSetMetadata retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;
                if (retrievedOptionSetMetadata != null)
                {
                    optionList = retrievedOptionSetMetadata.Options.ToArray();
                }
            }

            return(optionList);
        }
        public static int GetOptionsetValue(IOrganizationService _service, string _optionsetName, string _optionsetSelectedText)
        {
            int optionsetValue = 0;

            try
            {
                RetrieveOptionSetRequest retrieveOptionSetRequest =
                    new RetrieveOptionSetRequest
                {
                    Name = _optionsetName
                };

                // Execute the request.
                RetrieveOptionSetResponse retrieveOptionSetResponse =
                    (RetrieveOptionSetResponse)_service.Execute(retrieveOptionSetRequest);

                // Access the retrieved OptionSetMetadata.
                OptionSetMetadata retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;

                // Get the current options list for the retrieved attribute.
                OptionMetadata[] optionList = retrievedOptionSetMetadata.Options.ToArray();
                foreach (OptionMetadata optionMetadata in optionList)
                {
                    //If the value matches/....
                    if (optionMetadata.Label.UserLocalizedLabel.Label.ToString() == _optionsetSelectedText)
                    {
                        optionsetValue = (int)optionMetadata.Value;
                        break;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(optionsetValue);
        }
        private RetrieveOptionSetResponse ExecuteInternal(RetrieveOptionSetRequest request)
        {
            var response = new RetrieveOptionSetResponse();
            var optionSet = new OptionSetMetadata(new OptionMetadataCollection());

            response.Results["OptionSetMetadata"] = optionSet;

            var types = CrmServiceUtility.GetEarlyBoundProxyAssembly().GetTypes();
            var enumType = types.FirstOrDefault(t => IsEnumType(t, request.Name)) ??
                           types.FirstOrDefault(t => IsEnumType(t, request.Name + "Enum"));

            AddEnumTypeValues(optionSet, enumType, "Unable to find global optionset enum " + request.Name);

            return response;
        }