private void ImportFieldOptionSets(IEnumerable <FieldMetadata> fieldMetadata, LogController controller, CustomisationImportResponse response, IEnumerable <FieldMetadata> createdFields) { var picklistFields = fieldMetadata .Where( f => f is PicklistFieldMetadata && !((PicklistFieldMetadata)f).PicklistOptionSet.IsSharedOptionSet) .Cast <PicklistFieldMetadata>() .ToArray(); var numberToDo = picklistFields.Count(); var numberCompleted = 0; for (var i = 0; i < picklistFields.Count(); i++) { var field = picklistFields[i]; if (field.PicklistOptionSet != null && field.PicklistOptionSet.PicklistOptions.Any()) { var importFieldOptions = new ImportPicklistFieldOptions(field); try { controller.UpdateProgress(numberCompleted++, numberToDo, "Importing Field Option Sets"); var entityType = field.RecordType; RecordService.UpdateFieldOptionSet(entityType, field.SchemaName, field.PicklistOptionSet); var updated = !createdFields.Contains(field); response.AddResponseItem(importFieldOptions, updated); } catch (Exception ex) { response.AddResponseItem(importFieldOptions, ex); } } } }
private void ImportFieldOptionSets(IEnumerable <FieldMetadata> fieldMetadata, LogController controller, CustomisationImportResponse response, IEnumerable <FieldMetadata> createdFields) { var picklistFields = fieldMetadata .Except(createdFields) .Where( f => f is PicklistFieldMetadata && !((PicklistFieldMetadata)f).PicklistOptionSet.IsSharedOptionSet) .Cast <PicklistFieldMetadata>() .ToArray(); var numberToDo = picklistFields.Count(); var numberCompleted = 0; for (var i = 0; i < picklistFields.Count(); i++) { var field = picklistFields[i]; if (field.PicklistOptionSet != null && field.PicklistOptionSet.PicklistOptions.Any()) { var importFieldOptions = new ImportPicklistFieldOptions(field); try { controller.UpdateProgress(numberCompleted++, numberToDo, "Importing Field Option Sets"); var entityType = field.RecordType; RecordService.UpdateFieldOptionSet(entityType, field.SchemaName, field.PicklistOptionSet); var updated = !createdFields.Contains(field); response.AddImportedItem(importFieldOptions, updated); } catch (Exception ex) { response.AddResponseItem(importFieldOptions, ex); } } } if (numberCompleted > 0) { controller.LogLiteral("Publishing Field Option Sets"); var publishXml = $"<importexportxml><entities>{string.Join("", picklistFields.Select(m => "<entity>" + m.RecordType + "</entity>"))}</entities></importexportxml>"; RecordService.Publish(publishXml); } }