Пример #1
0
        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);
                    }
                }
            }
        }
Пример #2
0
        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);
            }
        }