From a1f94029c8af92a1f566a707f8c81a1757eb543e Mon Sep 17 00:00:00 2001 From: Jordi Date: Sat, 6 Jul 2024 14:17:04 +0200 Subject: [PATCH 1/7] Adds support for RelatedEntities to Update message, implements cloning of RelatedEntities, extracts and refactors cloning of common properties and adds necessary tests DynamicsValue/fake-xrm-easy#154 --- .../Extensions/EntityExtensions.cs | 88 +++++++---- src/FakeXrmEasy.Core/XrmFakedContext.Crud.cs | 87 +++++++---- .../EntityExtensions/CloneEntityTests.cs | 89 +++++++++++ .../CreateRequestRelatedEntitiesTests.cs | 93 +++++++++++ ...extTestCreate.cs => CreateRequestTests.cs} | 70 +-------- .../UpdateRequestRelatedEntitiesTests.cs | 146 ++++++++++++++++++ .../UpdateRequestTests/UpdateRequestTests.cs | 1 + 7 files changed, 444 insertions(+), 130 deletions(-) create mode 100644 tests/FakeXrmEasy.Core.Tests/Extensions/EntityExtensions/CloneEntityTests.cs create mode 100644 tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/CreateRequestRelatedEntitiesTests.cs rename tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/{FakeContextTestCreate.cs => CreateRequestTests.cs} (81%) create mode 100644 tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/UpdateRequestTests/UpdateRequestRelatedEntitiesTests.cs diff --git a/src/FakeXrmEasy.Core/Extensions/EntityExtensions.cs b/src/FakeXrmEasy.Core/Extensions/EntityExtensions.cs index 7faa6596..e51cf69d 100644 --- a/src/FakeXrmEasy.Core/Extensions/EntityExtensions.cs +++ b/src/FakeXrmEasy.Core/Extensions/EntityExtensions.cs @@ -367,28 +367,78 @@ public static Entity Clone(this Entity e, IXrmFakedContext context = null) cloned.Id = e.Id; cloned.LogicalName = e.LogicalName; - if (e.FormattedValues != null) + CloneEntity(e, cloned, context); + + return cloned; + } + + /// + /// Clones source entity data into cloned entity + /// + /// + /// + /// The IXrmFakedContext where the source Entity lives, if any + internal static void CloneEntity(Entity source, Entity cloned, IXrmFakedContext context = null) + { + if (source.FormattedValues != null) { var formattedValues = new FormattedValueCollection(); - foreach (var key in e.FormattedValues.Keys) - formattedValues.Add(key, e.FormattedValues[key]); + foreach (var key in source.FormattedValues.Keys) + formattedValues.Add(key, source.FormattedValues[key]); cloned.Inject("FormattedValues", formattedValues); } - foreach (var attKey in e.Attributes.Keys) + foreach (var attKey in source.Attributes.Keys) { - cloned[attKey] = e[attKey] != null ? CloneAttribute(e[attKey], context) : null; + cloned[attKey] = source[attKey] != null ? CloneAttribute(source[attKey], context) : null; } #if !FAKE_XRM_EASY && !FAKE_XRM_EASY_2013 && !FAKE_XRM_EASY_2015 - foreach (var attKey in e.KeyAttributes.Keys) + foreach (var attKey in source.KeyAttributes.Keys) { - cloned.KeyAttributes[attKey] = e.KeyAttributes[attKey] != null ? CloneAttribute(e.KeyAttributes[attKey]) : null; + cloned.KeyAttributes[attKey] = source.KeyAttributes[attKey] != null ? CloneAttribute(source.KeyAttributes[attKey]) : null; } #endif - return cloned; + foreach (var relatedEntityKeyValuePair in source.RelatedEntities) + { + var relationShip = CloneRelationship(relatedEntityKeyValuePair.Key); + var newKeyValuePair = new KeyValuePair(relationShip, + CloneEntityCollection(relatedEntityKeyValuePair.Value)); + cloned.RelatedEntities.Add(newKeyValuePair); + } + } + + /// + /// Clones an entire EntityCollection + /// + /// The source entity collection to clone + /// A reference to an in-memory context + /// + internal static EntityCollection CloneEntityCollection(EntityCollection entityCollection, IXrmFakedContext context = null) + { + var listOfClones = new List(); + + foreach (var source in entityCollection.Entities) + { + listOfClones.Add(source.Clone(context)); + } + + return new EntityCollection(listOfClones); } + /// + /// Clones an existing relationship object + /// + /// + /// + internal static Relationship CloneRelationship(Relationship relationShip) + { + return new Relationship(relationShip.SchemaName) + { + PrimaryEntityRole = relationShip.PrimaryEntityRole + }; + } + /// /// /// @@ -416,26 +466,8 @@ public static Entity Clone(this Entity e, Type t, IXrmFakedContext context = nul cloned.Id = e.Id; cloned.LogicalName = e.LogicalName; - if (e.FormattedValues != null) - { - var formattedValues = new FormattedValueCollection(); - foreach (var key in e.FormattedValues.Keys) - formattedValues.Add(key, e.FormattedValues[key]); - - cloned.Inject("FormattedValues", formattedValues); - } - - foreach (var attKey in e.Attributes.Keys) - { - cloned[attKey] = e[attKey] != null ? CloneAttribute(e[attKey], context) : null; - } - -#if !FAKE_XRM_EASY && !FAKE_XRM_EASY_2013 && !FAKE_XRM_EASY_2015 - foreach (var attKey in e.KeyAttributes.Keys) - { - cloned.KeyAttributes[attKey] = e.KeyAttributes[attKey] != null ? CloneAttribute(e.KeyAttributes[attKey]) : null; - } -#endif + CloneEntity(e, cloned, context); + return cloned; } diff --git a/src/FakeXrmEasy.Core/XrmFakedContext.Crud.cs b/src/FakeXrmEasy.Core/XrmFakedContext.Crud.cs index 1b299d7a..ade89165 100644 --- a/src/FakeXrmEasy.Core/XrmFakedContext.Crud.cs +++ b/src/FakeXrmEasy.Core/XrmFakedContext.Crud.cs @@ -109,49 +109,70 @@ public void UpdateEntity(Entity e) { throw new InvalidOperationException("The entity must not be null"); } - e = e.Clone(e.GetType()); - var reference = e.ToEntityReferenceWithKeyAttributes(); - e.Id = GetRecordUniqueId(reference); + var clone = e.Clone(e.GetType()); + var reference = clone.ToEntityReferenceWithKeyAttributes(); + clone.Id = GetRecordUniqueId(reference); // Update specific validations: The entity record must exist in the context - if (ContainsEntity(e.LogicalName, e.Id)) + if (!ContainsEntity(clone.LogicalName, clone.Id)) { - var integrityOptions = GetProperty(); + throw FakeOrganizationServiceFaultFactory.New($"{clone.LogicalName} with Id {clone.Id} Does Not Exist"); + } + + var integrityOptions = GetProperty(); - var table = Db.GetTable(e.LogicalName); + var table = Db.GetTable(e.LogicalName); - // Add as many attributes to the entity as the ones received (this will keep existing ones) - var cachedEntity = table.GetById(e.Id); - foreach (var sAttributeName in e.Attributes.Keys.ToList()) + // Add as many attributes to the entity as the ones received (this will keep existing ones) + var cachedEntity = table.GetById(clone.Id); + foreach (var sAttributeName in clone.Attributes.Keys.ToList()) + { + var attribute = clone[sAttributeName]; + if (attribute == null) + { + cachedEntity.Attributes.Remove(sAttributeName); + } + else if (attribute is DateTime) + { + cachedEntity[sAttributeName] = ConvertToUtc((DateTime)clone[sAttributeName]); + } + else { - var attribute = e[sAttributeName]; - if (attribute == null) + if (attribute is EntityReference && integrityOptions.ValidateEntityReferences) { - cachedEntity.Attributes.Remove(sAttributeName); + var target = (EntityReference) clone[sAttributeName]; + attribute = ResolveEntityReference(target); } - else if (attribute is DateTime) + cachedEntity[sAttributeName] = attribute; + } + } + + // Update ModifiedOn + cachedEntity["modifiedon"] = DateTime.UtcNow; + cachedEntity["modifiedby"] = CallerProperties.CallerId; + + if (clone.RelatedEntities.Count > 0) + { + foreach (var relationshipSet in clone.RelatedEntities) + { + var relationship = relationshipSet.Key; + + var entityReferenceCollection = new EntityReferenceCollection(); + + foreach (var relatedEntity in relationshipSet.Value.Entities) { - cachedEntity[sAttributeName] = ConvertToUtc((DateTime)e[sAttributeName]); + UpdateEntity(relatedEntity); + entityReferenceCollection.Add(new EntityReference(relatedEntity.LogicalName, relatedEntity.Id)); } - else + + var request = new AssociateRequest { - if (attribute is EntityReference && integrityOptions.ValidateEntityReferences) - { - var target = (EntityReference)e[sAttributeName]; - attribute = ResolveEntityReference(target); - } - cachedEntity[sAttributeName] = attribute; - } + Target = clone.ToEntityReference(), + Relationship = relationship, + RelatedEntities = entityReferenceCollection + }; + _service.Execute(request); } - - // Update ModifiedOn - cachedEntity["modifiedon"] = DateTime.UtcNow; - cachedEntity["modifiedby"] = CallerProperties.CallerId; - } - else - { - // The entity record was not found, return a CRM-ish update error message - throw FakeOrganizationServiceFaultFactory.New($"{e.LogicalName} with Id {e.Id} Does Not Exist"); } } @@ -392,9 +413,9 @@ public Guid CreateEntity(Entity e) AddEntityWithDefaults(clone, false); - if (e.RelatedEntities.Count > 0) + if (clone.RelatedEntities.Count > 0) { - foreach (var relationshipSet in e.RelatedEntities) + foreach (var relationshipSet in clone.RelatedEntities) { var relationship = relationshipSet.Key; diff --git a/tests/FakeXrmEasy.Core.Tests/Extensions/EntityExtensions/CloneEntityTests.cs b/tests/FakeXrmEasy.Core.Tests/Extensions/EntityExtensions/CloneEntityTests.cs new file mode 100644 index 00000000..0da7dcc7 --- /dev/null +++ b/tests/FakeXrmEasy.Core.Tests/Extensions/EntityExtensions/CloneEntityTests.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using Crm; +using FakeXrmEasy.Extensions; +using Microsoft.Xrm.Sdk; +using Xunit; + +namespace FakeXrmEasy.Core.Tests.Extensions +{ + public class CloneEntityTests: FakeXrmEasyTestsBase + { + private readonly Entity _earlyBoundSource; + private readonly Entity _lateBoundSource; + private Entity _clone; + + public CloneEntityTests() + { + _earlyBoundSource = new Account() { Id = Guid.NewGuid() }; + _lateBoundSource = new Entity("account") { Id = Guid.NewGuid() }; + } + + [Fact] + public void Should_clone_main_late_bound_object_properties() + { + var clone = _lateBoundSource.Clone(_context); + + ///Different object reference + Assert.NotEqual(clone, _lateBoundSource); + + Assert.Equal(_lateBoundSource.LogicalName, clone.LogicalName); + Assert.Equal(_lateBoundSource.Id, clone.Id); + } + + [Fact] + public void Should_clone_main_early_bound_object_properties_and_keep_original_type() + { + var clone = _earlyBoundSource.Clone(_earlyBoundSource.GetType(), _context); + + ///Different object reference + Assert.NotEqual(clone, _earlyBoundSource); + + Assert.Equal(_earlyBoundSource.LogicalName, clone.LogicalName); + Assert.Equal(_earlyBoundSource.Id, clone.Id); + + Assert.Equal(_earlyBoundSource.GetType(), clone.GetType()); + } + + [Fact] + public void Should_clone_related_entities() + { + var relatedEntity1 = new Contact() { Id = Guid.NewGuid() }; + var relatedEntity2 = new Contact() { Id = Guid.NewGuid() }; + + var relationShip = new Relationship("account_contacts"); + + _earlyBoundSource.RelatedEntities = new RelatedEntityCollection() + { + new KeyValuePair( + relationShip, + new EntityCollection(new List() + { + relatedEntity1, relatedEntity2 + })) + }; + + var clone = _earlyBoundSource.Clone(_earlyBoundSource.GetType(), _context); + Assert.NotEqual(clone, _earlyBoundSource); + + Assert.Single(clone.RelatedEntities); + + var clonedRelatedEntities = clone.RelatedEntities; + Assert.True(clonedRelatedEntities.ContainsKey(relationShip)); + + var clonedEntityCollection = clonedRelatedEntities[relationShip]; + Assert.Equal(2, clonedEntityCollection.Entities.Count); + + var clonedRelatedEntity1 = clonedEntityCollection.Entities[0]; + var clonedRelatedEntity2 = clonedEntityCollection.Entities[1]; + + Assert.NotEqual(relatedEntity1, clonedRelatedEntity1); + Assert.Equal(relatedEntity1.Id, clonedRelatedEntity1.Id); + Assert.Equal(relatedEntity1.LogicalName, clonedRelatedEntity1.LogicalName); + + Assert.NotEqual(relatedEntity2, clonedRelatedEntity2); + Assert.Equal(relatedEntity2.Id, clonedRelatedEntity2.Id); + Assert.Equal(relatedEntity2.LogicalName, clonedRelatedEntity2.LogicalName); + } + } +} \ No newline at end of file diff --git a/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/CreateRequestRelatedEntitiesTests.cs b/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/CreateRequestRelatedEntitiesTests.cs new file mode 100644 index 00000000..4bbafaef --- /dev/null +++ b/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/CreateRequestRelatedEntitiesTests.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Crm; +using FakeXrmEasy.Abstractions; +using Microsoft.Xrm.Sdk; +using Microsoft.Xrm.Sdk.Messages; +using Xunit; + +namespace FakeXrmEasy.Core.Tests.Middleware.Crud.FakeMessageExecutors.CreateRequestTests +{ + public class CreateRequestRelatedEntitiesTests : FakeXrmEasyTestsBase + { + private readonly SalesOrder _salesOrder; + private readonly SalesOrderDetail _salesOrderDetail1; + private readonly SalesOrderDetail _salesOrderDetail2; + + public CreateRequestRelatedEntitiesTests() + { + + } + + [Fact] + public void When_related_entities_are_used_without_relationship_info_exception_is_raised() + { + var order = new SalesOrder(); + + var orderItems = new EntityCollection(new List() + { + new SalesOrderDetail(), + new SalesOrderDetail() + }); + + // Add related order items so it can be created in one request + order.RelatedEntities.Add(new Relationship + { + PrimaryEntityRole = EntityRole.Referenced, + SchemaName = "order_details" + }, orderItems); + + var request = new CreateRequest + { + Target = order + }; + + var exception = Record.Exception(() => _service.Execute(request)); + + Assert.IsType(exception); + Assert.Equal("Relationship order_details does not exist in the metadata cache", exception.Message); + } + + [Fact] + public void When_related_entities_and_relationship_are_used_child_entities_are_created() + { + _context.AddRelationship("order_details", + new XrmFakedRelationship() + { + Entity1LogicalName = SalesOrder.EntityLogicalName, //Referenced + Entity1Attribute = "salesorderid", //Pk + Entity2LogicalName = SalesOrderDetail.EntityLogicalName, + Entity2Attribute = "salesorderid", //Lookup attribute + RelationshipType = XrmFakedRelationship.FakeRelationshipType.OneToMany + }); + + var order = new SalesOrder(); + + var orderItems = new EntityCollection(new List() + { + new SalesOrderDetail(), + new SalesOrderDetail() + }); + + // Add related order items so it can be created in one request + order.RelatedEntities.Add(new Relationship + { + PrimaryEntityRole = EntityRole.Referenced, + SchemaName = "order_details" + }, orderItems); + + var request = new CreateRequest + { + Target = order + }; + + var id = (_service.Execute(request) as CreateResponse).id; + var createdOrderDetails = _context.CreateQuery().ToList(); + + Assert.Equal(2, createdOrderDetails.Count); + Assert.Equal(createdOrderDetails[0].SalesOrderId.Id, id); + Assert.Equal(createdOrderDetails[1].SalesOrderId.Id, id); + } + } +} \ No newline at end of file diff --git a/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/FakeContextTestCreate.cs b/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/CreateRequestTests.cs similarity index 81% rename from tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/FakeContextTestCreate.cs rename to tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/CreateRequestTests.cs index 71c65acf..a204a6ee 100644 --- a/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/FakeContextTestCreate.cs +++ b/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/CreateRequestTests.cs @@ -187,75 +187,7 @@ public void When_creating_a_record_using_early_bound_entities_and_proxytypes_pri Assert.Equal(c.Id, contact["contactid"]); } - [Fact] - public void When_related_entities_are_used_without_relationship_info_exception_is_raised() - { - var order = new SalesOrder(); - - var orderItems = new EntityCollection(new List() - { - new SalesOrderDetail(), - new SalesOrderDetail() - }); - - // Add related order items so it can be created in one request - order.RelatedEntities.Add(new Relationship - { - PrimaryEntityRole = EntityRole.Referenced, - SchemaName = "order_details" - }, orderItems); - - var request = new CreateRequest - { - Target = order - }; - - var exception = Record.Exception(() => _service.Execute(request)); - - Assert.IsType(exception); - Assert.Equal("Relationship order_details does not exist in the metadata cache", exception.Message); - } - - [Fact] - public void When_related_entities_and_relationship_are_used_child_entities_are_created() - { - _context.AddRelationship("order_details", - new XrmFakedRelationship() - { - Entity1LogicalName = SalesOrder.EntityLogicalName, //Referenced - Entity1Attribute = "salesorderid", //Pk - Entity2LogicalName = SalesOrderDetail.EntityLogicalName, - Entity2Attribute = "salesorderid", //Lookup attribute - RelationshipType = XrmFakedRelationship.FakeRelationshipType.OneToMany - }); - - var order = new SalesOrder(); - - var orderItems = new EntityCollection(new List() - { - new SalesOrderDetail(), - new SalesOrderDetail() - }); - - // Add related order items so it can be created in one request - order.RelatedEntities.Add(new Relationship - { - PrimaryEntityRole = EntityRole.Referenced, - SchemaName = "order_details" - }, orderItems); - - var request = new CreateRequest - { - Target = order - }; - - var id = (_service.Execute(request) as CreateResponse).id; - var createdOrderDetails = _context.CreateQuery().ToList(); - - Assert.Equal(2, createdOrderDetails.Count); - Assert.Equal(createdOrderDetails[0].SalesOrderId.Id, id); - Assert.Equal(createdOrderDetails[1].SalesOrderId.Id, id); - } + [Fact] public void Shouldnt_store_references_to_variables_but_actual_clones() diff --git a/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/UpdateRequestTests/UpdateRequestRelatedEntitiesTests.cs b/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/UpdateRequestTests/UpdateRequestRelatedEntitiesTests.cs new file mode 100644 index 00000000..298535bf --- /dev/null +++ b/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/UpdateRequestTests/UpdateRequestRelatedEntitiesTests.cs @@ -0,0 +1,146 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Crm; +using FakeXrmEasy.Abstractions; +using Microsoft.Xrm.Sdk; +using Microsoft.Xrm.Sdk.Messages; +using Xunit; + +namespace FakeXrmEasy.Core.Tests.Middleware.Crud.FakeMessageExecutors.UpdateRequestTests +{ + public class UpdateRequestRelatedEntitiesTests: FakeXrmEasyTestsBase + { + private readonly SalesOrder _salesOrder; + private readonly SalesOrderDetail _salesOrderDetail1; + private readonly SalesOrderDetail _salesOrderDetail2; + + public UpdateRequestRelatedEntitiesTests() + { + _salesOrder = new SalesOrder() + { + Id = Guid.NewGuid(), + OrderNumber = "Order 1" + }; + + _salesOrderDetail1 = new SalesOrderDetail() + { + Id = Guid.NewGuid(), + Quantity = 1, + SalesOrderId = _salesOrder.ToEntityReference() + }; + + _salesOrderDetail2 = new SalesOrderDetail() + { + Id = Guid.NewGuid(), + Quantity = 2, + SalesOrderId = _salesOrder.ToEntityReference() + }; + + } + + [Fact] + public void Should_raise_exception_when_related_entities_are_used_without_a_relationship() + { + _context.Initialize(new List() + { + _salesOrder, _salesOrderDetail1, _salesOrderDetail2 + }); + + var order = new SalesOrder() + { + Id = _salesOrder.Id, + OrderNumber = "Order 1 Updated" + }; + + var orderItems = new EntityCollection(new List() + { + new SalesOrderDetail() { Id = _salesOrderDetail1.Id }, + new SalesOrderDetail() { Id = _salesOrderDetail2.Id } + }); + + // Add related order items so it can be updated in one request + order.RelatedEntities.Add(new Relationship + { + PrimaryEntityRole = EntityRole.Referenced, + SchemaName = "order_details" + }, orderItems); + + var request = new UpdateRequest() + { + Target = order + }; + + var exception = Record.Exception(() => _service.Execute(request)); + + Assert.IsType(exception); + Assert.Equal("Relationship order_details does not exist in the metadata cache", exception.Message); + } + + [Fact] + public void When_related_entities_and_relationship_are_used_child_entities_are_created() + { + _context.Initialize(new List() + { + _salesOrder, _salesOrderDetail1, _salesOrderDetail2 + }); + + _context.AddRelationship("order_details", + new XrmFakedRelationship() + { + Entity1LogicalName = SalesOrder.EntityLogicalName, //Referenced + Entity1Attribute = "salesorderid", //Pk + Entity2LogicalName = SalesOrderDetail.EntityLogicalName, + Entity2Attribute = "salesorderid", //Lookup attribute + RelationshipType = XrmFakedRelationship.FakeRelationshipType.OneToMany + }); + + var order = new SalesOrder() + { + Id = _salesOrder.Id, + OrderNumber = "Order 1 Updated" + }; + + var orderItems = new EntityCollection(new List() + { + new SalesOrderDetail() + { + Id = _salesOrderDetail1.Id, + Quantity = 11 + }, + new SalesOrderDetail() + { + Id = _salesOrderDetail2.Id, + Quantity = 21 + } + }); + + // Add related order items so it can be created in one request + order.RelatedEntities.Add(new Relationship + { + PrimaryEntityRole = EntityRole.Referenced, + SchemaName = "order_details" + }, orderItems); + + var request = new UpdateRequest() + { + Target = order + }; + + _service.Execute(request); + + var updatedOrder = _context.CreateQuery().FirstOrDefault(); + var updatedOrderDetails = _context.CreateQuery().ToList(); + + Assert.Equal(_salesOrder.Id, updatedOrder.Id); + Assert.Equal("Order 1 Updated", updatedOrder.OrderNumber); + + Assert.Equal(2, updatedOrderDetails.Count); + Assert.Equal(_salesOrder.Id, updatedOrderDetails[0].SalesOrderId.Id); + Assert.Equal(_salesOrder.Id, updatedOrderDetails[1].SalesOrderId.Id); + + Assert.Equal(11, updatedOrderDetails[0].Quantity); + Assert.Equal(21, updatedOrderDetails[1].Quantity); + } + } +} \ No newline at end of file diff --git a/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/UpdateRequestTests/UpdateRequestTests.cs b/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/UpdateRequestTests/UpdateRequestTests.cs index 4d928e28..bcd5bdcc 100644 --- a/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/UpdateRequestTests/UpdateRequestTests.cs +++ b/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/UpdateRequestTests/UpdateRequestTests.cs @@ -10,6 +10,7 @@ using System.Linq; using System.Reflection; using System.ServiceModel; +using Microsoft.Xrm.Sdk.Messages; using Xunit; namespace FakeXrmEasy.Core.Tests.Middleware.Crud.FakeMessageExecutors.UpdateRequestTests From 177d59bfdfb98ed46161385c112e7e7bbffc73d8 Mon Sep 17 00:00:00 2001 From: Jordi Date: Sat, 6 Jul 2024 14:19:54 +0200 Subject: [PATCH 2/7] Increment version and update CHANGELOG.md DynamicsValue/fake-xrm-easy#154 --- CHANGELOG.md | 6 ++++++ src/FakeXrmEasy.Core/FakeXrmEasy.Core.csproj | 2 +- .../FakeXrmEasy.Core.Tests.csproj | 14 +++++++------- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aec5cde1..2568f0c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## [2.5.2] + +### Changed + +- Adds implementation of RelatedEntities in Update message , before it was implemented only for Create - https://github.com/DynamicsValue/fake-xrm-easy/issues/154 + ## [2.5.1] ### Changed diff --git a/src/FakeXrmEasy.Core/FakeXrmEasy.Core.csproj b/src/FakeXrmEasy.Core/FakeXrmEasy.Core.csproj index dfc0c1ca..d9c872e9 100644 --- a/src/FakeXrmEasy.Core/FakeXrmEasy.Core.csproj +++ b/src/FakeXrmEasy.Core/FakeXrmEasy.Core.csproj @@ -8,7 +8,7 @@ net452 net452 FakeXrmEasy.Core - 2.5.1 + 2.5.2 Jordi Montaña Dynamics Value FakeXrmEasy Core diff --git a/tests/FakeXrmEasy.Core.Tests/FakeXrmEasy.Core.Tests.csproj b/tests/FakeXrmEasy.Core.Tests/FakeXrmEasy.Core.Tests.csproj index 2ab2cc4f..e3abace7 100644 --- a/tests/FakeXrmEasy.Core.Tests/FakeXrmEasy.Core.Tests.csproj +++ b/tests/FakeXrmEasy.Core.Tests/FakeXrmEasy.Core.Tests.csproj @@ -11,7 +11,7 @@ true FakeXrmEasy.CoreTests - 2.5.1 + 2.5.2 Jordi Montaña Dynamics Value S.L. Internal Unit test suite for FakeXrmEasy.Core package @@ -137,22 +137,22 @@ - + - + - + - + - + - + From 5ae9175b9339baa3487bcefbebe73f82a796e2cd Mon Sep 17 00:00:00 2001 From: Jordi Date: Thu, 18 Jul 2024 00:12:32 +0200 Subject: [PATCH 3/7] Resolves DynamicsValue/fake-xrm-easy#135 --- CHANGELOG.md | 1 + .../Extensions/PropertyInfoExtensions.cs | 12 ++ .../Extensions/TypeExtensions.cs | 7 + .../Metadata/MetadataGenerator.cs | 86 +++++++--- tests/DataverseEntities/Entities/contact.cs | 16 ++ tests/DataverseEntities/Entities/dv_test.cs | 16 ++ .../CreateRelationshipTests.cs | 159 ++++++++++++++++++ .../MetadataGeneratorTests.cs | 1 - 8 files changed, 272 insertions(+), 26 deletions(-) create mode 100644 src/FakeXrmEasy.Core/Extensions/PropertyInfoExtensions.cs create mode 100644 tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/CreateRelationshipTests.cs diff --git a/CHANGELOG.md b/CHANGELOG.md index 2568f0c8..2ff1f30f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Changed +- Resolves issue in MetadataGenerator where relationship properties were generated in the wrong order, also generates ManyToMany relationship properties - https://github.com/DynamicsValue/fake-xrm-easy/issues/135 - Adds implementation of RelatedEntities in Update message , before it was implemented only for Create - https://github.com/DynamicsValue/fake-xrm-easy/issues/154 ## [2.5.1] diff --git a/src/FakeXrmEasy.Core/Extensions/PropertyInfoExtensions.cs b/src/FakeXrmEasy.Core/Extensions/PropertyInfoExtensions.cs new file mode 100644 index 00000000..6e82221b --- /dev/null +++ b/src/FakeXrmEasy.Core/Extensions/PropertyInfoExtensions.cs @@ -0,0 +1,12 @@ +using System.Reflection; + +namespace FakeXrmEasy.Core.Extensions +{ + internal static class PropertyInfoExtensions + { + internal static bool IsEnumerable(this PropertyInfo propertyInfo) + { + return propertyInfo.PropertyType.Name == "IEnumerable`1"; + } + } +} \ No newline at end of file diff --git a/src/FakeXrmEasy.Core/Extensions/TypeExtensions.cs b/src/FakeXrmEasy.Core/Extensions/TypeExtensions.cs index bf2e3fbf..982b34cb 100644 --- a/src/FakeXrmEasy.Core/Extensions/TypeExtensions.cs +++ b/src/FakeXrmEasy.Core/Extensions/TypeExtensions.cs @@ -106,5 +106,12 @@ public static PropertyInfo GetEarlyBoundTypeAttribute(this Type earlyBoundType, return attributeInfo; } + + public static string GetPrimaryIdFieldName(this Type earlyBoundType) + { + return earlyBoundType.GetProperties() + .FirstOrDefault(p => p.Name == "Id") + .GetCustomAttribute().LogicalName; + } } } \ No newline at end of file diff --git a/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs b/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs index 6444ecf2..1722772c 100644 --- a/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs +++ b/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs @@ -6,10 +6,11 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; +using FakeXrmEasy.Core.Extensions; namespace FakeXrmEasy.Metadata { - internal class MetadataGenerator + internal static class MetadataGenerator { public static IEnumerable FromEarlyBoundEntities(Assembly earlyBoundEntitiesAssembly) { @@ -65,7 +66,7 @@ internal static EntityMetadata FromType(Type possibleEarlyBoundEntity) metadata.SetSealedPropertyValue("Attributes", attributeMetadatas.ToArray()); } - var relationshipMetadatas = PopulateRelationshipProperties(possibleEarlyBoundEntity, relationshipMetadataProperties); + var relationshipMetadatas = PopulateRelationshipProperties(metadata, possibleEarlyBoundEntity, relationshipMetadataProperties); if (relationshipMetadatas.ManyToManyRelationships.Any()) { @@ -112,14 +113,15 @@ public AllRelationShips() } } - private static AllRelationShips PopulateRelationshipProperties(Type possibleEarlyBoundEntityType, - IEnumerable properties) + private static AllRelationShips PopulateRelationshipProperties(EntityMetadata entityMetadata, + Type possibleEarlyBoundEntityType, + IEnumerable relationshipPropertyInfos) { var allRelationships = new AllRelationShips(); - foreach (var property in properties) + foreach (var property in relationshipPropertyInfos) { - PopulateRelationshipProperty(possibleEarlyBoundEntityType, property, allRelationships); + PopulateRelationshipProperty(entityMetadata, possibleEarlyBoundEntityType, property, allRelationships); } return allRelationships; @@ -158,31 +160,44 @@ private static AttributeMetadata PopulateAttributeProperty(EntityMetadata metada return attributeMetadata; } - private static void PopulateRelationshipProperty(Type possibleEarlyBoundEntity, PropertyInfo property, AllRelationShips allRelationships) + private static void PopulateRelationshipProperty(EntityMetadata entityMetadata, + Type possibleEarlyBoundEntityType, + PropertyInfo relationshipProperty, + AllRelationShips allRelationships) { - RelationshipSchemaNameAttribute relationshipSchemaNameAttribute = GetCustomAttribute(property); - - if (property.PropertyType.Name == "IEnumerable`1") + RelationshipSchemaNameAttribute relationshipSchemaNameAttribute = GetCustomAttribute(relationshipProperty); + + if (relationshipProperty.IsEnumerable()) { - PropertyInfo peerProperty = property.PropertyType.GetGenericArguments()[0].GetProperties().SingleOrDefault(x => x.PropertyType == possibleEarlyBoundEntity && GetCustomAttribute(x)?.SchemaName == relationshipSchemaNameAttribute.SchemaName); - if (peerProperty == null || peerProperty.PropertyType.Name == "IEnumerable`1") // N:N relationship + //Could be 1:N or N:N + var enumerableGenericArgumentType = relationshipProperty.PropertyType.GetGenericArguments()[0]; + PropertyInfo peerProperty = enumerableGenericArgumentType.GetProperties() + .SingleOrDefault(x => x.PropertyType == possibleEarlyBoundEntityType && GetCustomAttribute(x)?.SchemaName == relationshipSchemaNameAttribute.SchemaName); + + if (peerProperty == null || peerProperty.IsEnumerable()) { - ManyToManyRelationshipMetadata relationshipMetadata = new ManyToManyRelationshipMetadata(); - relationshipMetadata.SchemaName = relationshipSchemaNameAttribute.SchemaName; - allRelationships.ManyToManyRelationships.Add(relationshipMetadata); + //N:N + var manyToManyRelationship = CreateManyToManyRelationshipMetadata(relationshipSchemaNameAttribute, + possibleEarlyBoundEntityType, enumerableGenericArgumentType); + allRelationships.ManyToManyRelationships.Add(manyToManyRelationship); } - else // 1:N relationship + else { - var relationShipMetadata = CreateOneToManyRelationshipMetadata(possibleEarlyBoundEntity, property, property.PropertyType.GetGenericArguments()[0], peerProperty); + //1:N relationship + var relationShipMetadata = CreateOneToManyRelationshipMetadata(entityMetadata, enumerableGenericArgumentType, peerProperty, possibleEarlyBoundEntityType, entityMetadata.PrimaryIdAttribute); allRelationships.OneToManyRelationships.Add(relationShipMetadata); } + } - else //N:1 Property + else { - var relationShipMetadata = CreateOneToManyRelationshipMetadata(property.PropertyType, - property.PropertyType.GetProperties().SingleOrDefault(x => x.PropertyType.GetGenericArguments().SingleOrDefault() == possibleEarlyBoundEntity && GetCustomAttribute(x)?.SchemaName == relationshipSchemaNameAttribute.SchemaName), - possibleEarlyBoundEntity, - property); + //N:1 relationship + var relationShipMetadata = CreateOneToManyRelationshipMetadata(entityMetadata, possibleEarlyBoundEntityType, + relationshipProperty, + relationshipProperty.PropertyType, + relationshipProperty.PropertyType.GetPrimaryIdFieldName() + ); + allRelationships.ManyToOneRelationships.Add(relationShipMetadata); } } @@ -302,10 +317,12 @@ internal static AttributeMetadata CreateAttributeMetadataFromGenericType(Type pr throw new Exception($"Type {propertyType.Name}{genericType?.Name} has not been mapped to an AttributeMetadata."); } } - private static OneToManyRelationshipMetadata CreateOneToManyRelationshipMetadata(Type referencingEntity, + private static OneToManyRelationshipMetadata CreateOneToManyRelationshipMetadata( + EntityMetadata entityMetadata, + Type referencingEntity, PropertyInfo referencingAttribute, Type referencedEntity, - PropertyInfo referencedAttribute) + string referencedAttribute) { if (referencingEntity == null || referencingAttribute == null || referencedEntity == null || referencedAttribute == null) return null; @@ -315,7 +332,26 @@ private static OneToManyRelationshipMetadata CreateOneToManyRelationshipMetadata relationshipMetadata.ReferencingEntity = GetCustomAttribute(referencingEntity).LogicalName; relationshipMetadata.ReferencingAttribute = GetCustomAttribute(referencingAttribute)?.LogicalName; relationshipMetadata.ReferencedEntity = GetCustomAttribute(referencedEntity).LogicalName; - relationshipMetadata.ReferencedAttribute = GetCustomAttribute(referencedAttribute).LogicalName; + relationshipMetadata.ReferencedAttribute = referencedAttribute; + + return relationshipMetadata; + } + + private static ManyToManyRelationshipMetadata CreateManyToManyRelationshipMetadata( + RelationshipSchemaNameAttribute relationshipSchemaNameAttribute, + Type referencingEntity, + Type referencedEntity) + { + if (referencingEntity == null || referencedEntity == null) + return null; + + ManyToManyRelationshipMetadata relationshipMetadata = new ManyToManyRelationshipMetadata(); + relationshipMetadata.SchemaName = relationshipSchemaNameAttribute.SchemaName; + relationshipMetadata.Entity1LogicalName = GetCustomAttribute(referencingEntity).LogicalName; + relationshipMetadata.Entity1IntersectAttribute = referencingEntity.GetPrimaryIdFieldName(); + + relationshipMetadata.Entity2LogicalName = GetCustomAttribute(referencedEntity).LogicalName; + relationshipMetadata.Entity2IntersectAttribute = referencedEntity.GetPrimaryIdFieldName(); return relationshipMetadata; } diff --git a/tests/DataverseEntities/Entities/contact.cs b/tests/DataverseEntities/Entities/contact.cs index 7a3c347c..49b2f407 100644 --- a/tests/DataverseEntities/Entities/contact.cs +++ b/tests/DataverseEntities/Entities/contact.cs @@ -3775,6 +3775,22 @@ public System.Collections.Generic.IEnumerable Contact_Ta } } + /// + /// N:N dv_test_Contact_Contact + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("dv_test_Contact_Contact")] + public System.Collections.Generic.IEnumerable dv_test_Contact_Contact + { + get + { + return this.GetRelatedEntities("dv_test_Contact_Contact", null); + } + set + { + this.SetRelatedEntities("dv_test_Contact_Contact", null, value); + } + } + /// /// N:1 contact_customer_accounts /// diff --git a/tests/DataverseEntities/Entities/dv_test.cs b/tests/DataverseEntities/Entities/dv_test.cs index 81908dc3..70d9e97d 100644 --- a/tests/DataverseEntities/Entities/dv_test.cs +++ b/tests/DataverseEntities/Entities/dv_test.cs @@ -1151,6 +1151,22 @@ public System.Nullable VersionNumber } } + /// + /// N:N dv_test_Contact_Contact + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("dv_test_Contact_Contact")] + public System.Collections.Generic.IEnumerable dv_test_Contact_Contact + { + get + { + return this.GetRelatedEntities("dv_test_Contact_Contact", null); + } + set + { + this.SetRelatedEntities("dv_test_Contact_Contact", null, value); + } + } + /// /// N:1 dv_account_dv_test_393 /// diff --git a/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/CreateRelationshipTests.cs b/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/CreateRelationshipTests.cs new file mode 100644 index 00000000..3ed6982c --- /dev/null +++ b/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/CreateRelationshipTests.cs @@ -0,0 +1,159 @@ +using System; +using System.Linq; +using DataverseEntities; +using FakeXrmEasy.Metadata; +using Microsoft.Xrm.Sdk.Metadata; +using Xunit; + +namespace FakeXrmEasy.Core.Tests.Metadata +{ + public class CreateRelationshipTests + { + /* + + N:1 looks like .... + /// + /// N:1 account_master_account + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("masterid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("account_master_account", Microsoft.Xrm.Sdk.EntityRole.Referencing)] + public Crm.Account Referencingaccount_master_account + { + get + { + return this.GetRelatedEntity("account_master_account", Microsoft.Xrm.Sdk.EntityRole.Referencing); + } + } + + /// + /// N:1 contact_customer_accounts + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("parentcustomerid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("contact_customer_accounts")] + public Crm.Account contact_customer_accounts + + + 1:N looks like .... + /// + /// 1:N ActivityMimeAttachment_AsyncOperations + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("ActivityMimeAttachment_AsyncOperations")] + public System.Collections.Generic.IEnumerable ActivityMimeAttachment_AsyncOperations + { + + + N:N looks like: + /// + /// N:N accountleads_association + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("accountleads_association")] + public System.Collections.Generic.IEnumerable accountleads_association + { + + */ + + private const string SELF_REFERENTIAL_RELATIONSHIP_NAME = "account_master_account"; + + [Fact] + public void Should_return_self_referential_relationship_from_one_early_bound_type() + { + var entityMetadata = MetadataGenerator.FromType(typeof(Account)); + + var oneToMany = + entityMetadata.OneToManyRelationships.FirstOrDefault(rel => rel.SchemaName.Equals(SELF_REFERENTIAL_RELATIONSHIP_NAME)); + + Assert.NotNull(oneToMany); + + Assert.Equal(Account.EntityLogicalName, oneToMany.ReferencingEntity); + Assert.Equal("masterid", oneToMany.ReferencingAttribute); + Assert.Equal(Account.EntityLogicalName, oneToMany.ReferencedEntity); + Assert.Equal("accountid", oneToMany.ReferencedAttribute); + + var manyToOne = + entityMetadata.ManyToOneRelationships.FirstOrDefault(rel => rel.SchemaName.Equals(SELF_REFERENTIAL_RELATIONSHIP_NAME)); + + Assert.NotNull(manyToOne); + Assert.Equal(Account.EntityLogicalName, manyToOne.ReferencingEntity); + Assert.Equal(Account.EntityLogicalName, manyToOne.ReferencedEntity); + Assert.Equal("accountid", manyToOne.ReferencedAttribute); + Assert.Equal("masterid", manyToOne.ReferencingAttribute); + + } + + [Fact] + public void Should_return_entity_metadata_with_one_to_many_and_many_to_one_relationships() + { + var accountEntityMetadata = MetadataGenerator.FromType(typeof(Account)); + var contactEntityMetadata = MetadataGenerator.FromType(typeof(Contact)); + + AssertMasterRelationship(accountEntityMetadata); + AssertContactsRelationship(accountEntityMetadata, contactEntityMetadata); + } + + [Fact] + public void Should_return_entity_metadata_with_many_to_many_relationships() + { + var testEntityMetadata = MetadataGenerator.FromType(typeof(dv_test)); + var contactEntityMetadata = MetadataGenerator.FromType(typeof(Contact)); + + AssertManyToManyRelationship(testEntityMetadata, contactEntityMetadata); + } + + private void AssertMasterRelationship(EntityMetadata entityMetadata) + { + var account_master_oneToMany = entityMetadata.OneToManyRelationships.FirstOrDefault(r => r.SchemaName == "account_master_account"); + + Assert.NotNull(account_master_oneToMany); + Assert.Equal("accountid", account_master_oneToMany.ReferencedAttribute); + Assert.Equal("account", account_master_oneToMany.ReferencedEntity); + Assert.Equal("account", account_master_oneToMany.ReferencingEntity); + Assert.Equal("masterid", account_master_oneToMany.ReferencingAttribute); + + var account_master_manyToOne = entityMetadata.ManyToOneRelationships.FirstOrDefault(r => r.SchemaName == "account_master_account"); + Assert.NotNull(account_master_manyToOne); + Assert.Equal("accountid", account_master_manyToOne.ReferencedAttribute); + Assert.Equal("account", account_master_manyToOne.ReferencedEntity); + Assert.Equal("account", account_master_manyToOne.ReferencingEntity); + Assert.Equal("masterid", account_master_manyToOne.ReferencingAttribute); + } + + private void AssertContactsRelationship(EntityMetadata accountEntityMetadata, EntityMetadata contactEntityMetadata) + { + var oneToMany = accountEntityMetadata.OneToManyRelationships.FirstOrDefault(r => r.SchemaName == "contact_customer_accounts"); + + Assert.NotNull(oneToMany); + Assert.Equal("accountid", oneToMany.ReferencedAttribute); + Assert.Equal("account", oneToMany.ReferencedEntity); + Assert.Equal("contact", oneToMany.ReferencingEntity); + Assert.Equal("parentcustomerid", oneToMany.ReferencingAttribute); + + var manyToOne = contactEntityMetadata.ManyToOneRelationships.FirstOrDefault(r => r.SchemaName == "contact_customer_accounts"); + Assert.NotNull(manyToOne); + Assert.Equal("accountid", manyToOne.ReferencedAttribute); + Assert.Equal("account", manyToOne.ReferencedEntity); + Assert.Equal("contact", manyToOne.ReferencingEntity); + Assert.Equal("parentcustomerid", manyToOne.ReferencingAttribute); + + Assert.Null(accountEntityMetadata.ManyToOneRelationships.FirstOrDefault(r => r.SchemaName == "contact_customer_accounts")); + Assert.Null(contactEntityMetadata.OneToManyRelationships.FirstOrDefault(r => r.SchemaName == "contact_customer_accounts")); + } + + private void AssertManyToManyRelationship(EntityMetadata contactEntityMetadata, EntityMetadata testEntityMetadata) + { + var manyToMany = contactEntityMetadata.ManyToManyRelationships.FirstOrDefault(r => r.SchemaName == "dv_test_Contact_Contact"); + + Assert.NotNull(manyToMany); + Assert.Equal("dv_testid", manyToMany.Entity1IntersectAttribute); + Assert.Equal(dv_test.EntityLogicalName, manyToMany.Entity1LogicalName); + Assert.Equal(Contact.EntityLogicalName, manyToMany.Entity2LogicalName); + Assert.Equal("contactid", manyToMany.Entity2IntersectAttribute); + + var otherManyToMany = testEntityMetadata.ManyToManyRelationships.FirstOrDefault(r => r.SchemaName == "dv_test_Contact_Contact"); + Assert.NotNull(otherManyToMany); + Assert.Equal("dv_testid", manyToMany.Entity1IntersectAttribute); + Assert.Equal(dv_test.EntityLogicalName, manyToMany.Entity1LogicalName); + Assert.Equal(Contact.EntityLogicalName, manyToMany.Entity2LogicalName); + Assert.Equal("contactid", manyToMany.Entity2IntersectAttribute); + } + } +} \ No newline at end of file diff --git a/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/MetadataGeneratorTests.cs b/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/MetadataGeneratorTests.cs index db931cb4..17bd821a 100644 --- a/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/MetadataGeneratorTests.cs +++ b/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/MetadataGeneratorTests.cs @@ -2,7 +2,6 @@ using FakeXrmEasy.Metadata; using System; using System.Linq; -using System.Reflection; using Xunit; namespace FakeXrmEasy.Core.Tests.Metadata From a434347e03ec5f972465fa78337987c592bb5e7a Mon Sep 17 00:00:00 2001 From: Jordi Date: Fri, 2 Aug 2024 00:11:02 +0200 Subject: [PATCH 4/7] Upgrade version, added initial work on DynamicsValue/fake-xrm-easy#157 --- CHANGELOG.md | 6 +- src/FakeXrmEasy.Core/FakeXrmEasy.Core.csproj | 2 +- .../FileStorage/FileStorageSettings.cs | 54 + .../Metadata/MetadataGenerator.cs | 37 +- .../Middleware/MiddlewareBuilder.cs | 2 + .../XrmFakedContext.Metadata.cs | 2 +- .../Entities/fileattachment.cs | 280 + .../Entities/organization.cs | 10102 ++++++++++++++++ .../FakeXrmEasy.Core.Tests.csproj | 14 +- .../FileStorage/FileStorageTests.cs | 78 + .../CreateAttributeMetadataTests.cs | 4 +- .../CreateRelationshipTests.cs | 12 +- .../MetadataGeneratorTests.cs | 8 +- .../CreateRequestTests/CreateRequestTests.cs | 2 +- 14 files changed, 10566 insertions(+), 37 deletions(-) create mode 100644 src/FakeXrmEasy.Core/FileStorage/FileStorageSettings.cs create mode 100644 tests/DataverseEntities/Entities/fileattachment.cs create mode 100644 tests/DataverseEntities/Entities/organization.cs create mode 100644 tests/FakeXrmEasy.Core.Tests/FileStorage/FileStorageTests.cs diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ff1f30f..875ed3fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,8 @@ -## [2.5.2] +## [2.6.0] + +### Added + +- Added default max file size for file and image uploads - https://github.com/DynamicsValue/fake-xrm-easy/issues/157 ### Changed diff --git a/src/FakeXrmEasy.Core/FakeXrmEasy.Core.csproj b/src/FakeXrmEasy.Core/FakeXrmEasy.Core.csproj index d9c872e9..18a398fe 100644 --- a/src/FakeXrmEasy.Core/FakeXrmEasy.Core.csproj +++ b/src/FakeXrmEasy.Core/FakeXrmEasy.Core.csproj @@ -8,7 +8,7 @@ net452 net452 FakeXrmEasy.Core - 2.5.2 + 2.6.0 Jordi Montaña Dynamics Value FakeXrmEasy Core diff --git a/src/FakeXrmEasy.Core/FileStorage/FileStorageSettings.cs b/src/FakeXrmEasy.Core/FileStorage/FileStorageSettings.cs new file mode 100644 index 00000000..66a13425 --- /dev/null +++ b/src/FakeXrmEasy.Core/FileStorage/FileStorageSettings.cs @@ -0,0 +1,54 @@ +namespace FakeXrmEasy.Core.FileStorage +{ + public interface IFileStorageSettings + { + /// + /// Sets or gets the default maximum file size for file uploads + /// + int MaxSizeInKB { get; set; } + + /// + /// Sets or gets the default maximum file size for image uploads + /// + int ImageMaxSizeInKB { get; set; } + } + public class FileStorageSettings: IFileStorageSettings + { + + /// + /// The default max size (i.e 32 MB) + /// + public const int DEFAULT_MAX_FILE_SIZE_IN_KB = 32768; + + /// + /// The maximum file size supported by the platform + /// https://learn.microsoft.com/en-us/dotnet/api/microsoft.xrm.sdk.metadata.fileattributemetadata.maxsizeinkb?view=dataverse-sdk-latest#microsoft-xrm-sdk-metadata-fileattributemetadata-maxsizeinkb + /// + public const int MAX_SUPPORTED_FILE_SIZE_IN_KB = 10485760; + + /// + /// The maximum file size supported for Image column types + /// https://learn.microsoft.com/en-us/power-apps/developer/data-platform/files-images-overview?tabs=sdk + /// + public const int MAX_SUPPORTED_IMAGE_FILE_SIZE_IN_KB = 30 * 1024; + + /// + /// Sets or gets the current maximum file size for file uploads that use file storage + /// + public int MaxSizeInKB { get; set; } + + /// + /// Sets or gets the default maximum file size for image uploads + /// + public int ImageMaxSizeInKB { get; set; } + + /// + /// Default constructor + /// + public FileStorageSettings() + { + MaxSizeInKB = DEFAULT_MAX_FILE_SIZE_IN_KB; + ImageMaxSizeInKB = MAX_SUPPORTED_IMAGE_FILE_SIZE_IN_KB; + } + } +} \ No newline at end of file diff --git a/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs b/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs index 1722772c..6909a919 100644 --- a/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs +++ b/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs @@ -6,25 +6,27 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; +using FakeXrmEasy.Abstractions; using FakeXrmEasy.Core.Extensions; +using FakeXrmEasy.Core.FileStorage; namespace FakeXrmEasy.Metadata { internal static class MetadataGenerator { - public static IEnumerable FromEarlyBoundEntities(Assembly earlyBoundEntitiesAssembly) + public static IEnumerable FromEarlyBoundEntities(Assembly earlyBoundEntitiesAssembly, IXrmFakedContext context) { var types = earlyBoundEntitiesAssembly.GetTypes(); - return FromTypes(types); + return FromTypes(types, context); } - internal static IEnumerable FromTypes(Type[] types) + internal static IEnumerable FromTypes(Type[] types, IXrmFakedContext context) { var entityMetadatas = new List(); foreach (var possibleEarlyBoundEntity in types) { - var metadata = FromType(possibleEarlyBoundEntity); + var metadata = FromType(possibleEarlyBoundEntity, context); if(metadata != null) entityMetadatas.Add(metadata); } @@ -32,7 +34,7 @@ internal static IEnumerable FromTypes(Type[] types) return entityMetadatas; } - internal static EntityMetadata FromType(Type possibleEarlyBoundEntity) + internal static EntityMetadata FromType(Type possibleEarlyBoundEntity, IXrmFakedContext context) { EntityLogicalNameAttribute entityLogicalNameAttribute = GetCustomAttribute(possibleEarlyBoundEntity); if (entityLogicalNameAttribute == null) return null; @@ -60,7 +62,7 @@ internal static EntityMetadata FromType(Type possibleEarlyBoundEntity) var relationshipMetadataProperties = possibleEarlyBoundEntity.GetProperties(BindingFlags.Instance | BindingFlags.Public) .Where(x => Attribute.IsDefined(x, typeof(RelationshipSchemaNameAttribute))); - var attributeMetadatas = PopulateAttributeProperties(metadata, attributeMetadataProperties); + var attributeMetadatas = PopulateAttributeProperties(metadata, attributeMetadataProperties, context); if (attributeMetadatas.Any()) { metadata.SetSealedPropertyValue("Attributes", attributeMetadatas.ToArray()); @@ -83,13 +85,13 @@ internal static EntityMetadata FromType(Type possibleEarlyBoundEntity) return metadata; } - private static List PopulateAttributeProperties(EntityMetadata metadata, IEnumerable properties) + private static List PopulateAttributeProperties(EntityMetadata metadata, IEnumerable properties, IXrmFakedContext context) { List attributeMetadatas = new List(); foreach (var property in properties) { - var attributeMetadata = PopulateAttributeProperty(metadata, property); + var attributeMetadata = PopulateAttributeProperty(metadata, property, context); if (attributeMetadata != null) { attributeMetadatas.Add(attributeMetadata); @@ -127,7 +129,7 @@ private static AllRelationShips PopulateRelationshipProperties(EntityMetadata en return allRelationships; } - private static AttributeMetadata PopulateAttributeProperty(EntityMetadata metadata, PropertyInfo property) + private static AttributeMetadata PopulateAttributeProperty(EntityMetadata metadata, PropertyInfo property, IXrmFakedContext context) { var attributeLogicalNameAttribute = GetCustomAttribute(property); #if !FAKE_XRM_EASY @@ -152,7 +154,7 @@ private static AttributeMetadata PopulateAttributeProperty(EntityMetadata metada } else { - attributeMetadata = CreateAttributeMetadata(property.PropertyType); + attributeMetadata = CreateAttributeMetadata(property.PropertyType, context); } attributeMetadata.SetFieldValue("_entityLogicalName", metadata.LogicalName); @@ -207,8 +209,10 @@ private static T GetCustomAttribute(MemberInfo member) where T : Attribute return (T)Attribute.GetCustomAttribute(member, typeof(T)); } - internal static AttributeMetadata CreateAttributeMetadata(Type propertyType) + internal static AttributeMetadata CreateAttributeMetadata(Type propertyType, IXrmFakedContext context) { + var fileStorageSettings = context.GetProperty(); + if (typeof(string) == propertyType) { return new StringAttributeMetadata(); @@ -244,8 +248,10 @@ internal static AttributeMetadata CreateAttributeMetadata(Type propertyType) #if !FAKE_XRM_EASY else if (typeof(byte[]) == propertyType) { - - return new ImageAttributeMetadata(); + return new ImageAttributeMetadata() + { + MaxSizeInKB = fileStorageSettings.ImageMaxSizeInKB + }; } #endif #if FAKE_XRM_EASY_9 @@ -255,7 +261,10 @@ internal static AttributeMetadata CreateAttributeMetadata(Type propertyType) } else if (typeof(object) == propertyType) { - return new FileAttributeMetadata(); + return new FileAttributeMetadata() + { + MaxSizeInKB = fileStorageSettings.MaxSizeInKB + }; } #endif else diff --git a/src/FakeXrmEasy.Core/Middleware/MiddlewareBuilder.cs b/src/FakeXrmEasy.Core/Middleware/MiddlewareBuilder.cs index 2648dba8..ee4af378 100644 --- a/src/FakeXrmEasy.Core/Middleware/MiddlewareBuilder.cs +++ b/src/FakeXrmEasy.Core/Middleware/MiddlewareBuilder.cs @@ -12,6 +12,7 @@ using FakeXrmEasy.Abstractions.Exceptions; using FakeXrmEasy.Core.CommercialLicense; using FakeXrmEasy.Core.Exceptions; +using FakeXrmEasy.Core.FileStorage; namespace FakeXrmEasy.Middleware { @@ -64,6 +65,7 @@ public IMiddlewareBuilder Add(Action addToContextAction) private void AddDefaults() { _context.SetProperty(new IntegrityOptions() { ValidateEntityReferences = false }); + _context.SetProperty(new FileStorageSettings()); } /// diff --git a/src/FakeXrmEasy.Core/XrmFakedContext.Metadata.cs b/src/FakeXrmEasy.Core/XrmFakedContext.Metadata.cs index 9459d818..6f6d3a24 100644 --- a/src/FakeXrmEasy.Core/XrmFakedContext.Metadata.cs +++ b/src/FakeXrmEasy.Core/XrmFakedContext.Metadata.cs @@ -59,7 +59,7 @@ public void InitializeMetadata(EntityMetadata entityMetadata) /// public void InitializeMetadata(Assembly earlyBoundEntitiesAssembly) { - IEnumerable entityMetadatas = MetadataGenerator.FromEarlyBoundEntities(earlyBoundEntitiesAssembly); + IEnumerable entityMetadatas = MetadataGenerator.FromEarlyBoundEntities(earlyBoundEntitiesAssembly, this); if (entityMetadatas.Any()) { this.InitializeMetadata(entityMetadatas); diff --git a/tests/DataverseEntities/Entities/fileattachment.cs b/tests/DataverseEntities/Entities/fileattachment.cs new file mode 100644 index 00000000..89dcf50a --- /dev/null +++ b/tests/DataverseEntities/Entities/fileattachment.cs @@ -0,0 +1,280 @@ +#pragma warning disable CS1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace DataverseEntities +{ + + + /// + /// File Attachment + /// + [System.Runtime.Serialization.DataContractAttribute()] + [Microsoft.Xrm.Sdk.Client.EntityLogicalNameAttribute("fileattachment")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public partial class FileAttachment : Microsoft.Xrm.Sdk.Entity + { + + /// + /// Available fields, a the time of codegen, for the fileattachment entity + /// + public partial class Fields + { + public const string CreatedOn = "createdon"; + public const string FileAttachmentId = "fileattachmentid"; + public const string Id = "fileattachmentid"; + public const string FileName = "filename"; + public const string FileSizeInBytes = "filesizeinbytes"; + public const string iscommittedName = "iscommittedname"; + public const string MimeType = "mimetype"; + public const string ObjectId = "objectid"; + public const string ObjectTypeCode = "objecttypecode"; + public const string ObjectTypeCodeName = "objecttypecodename"; + public const string RegardingFieldName = "regardingfieldname"; + public const string VersionNumber = "versionnumber"; + public const string FileAttachment_dv_test_dv_file = "FileAttachment_dv_test_dv_file"; + public const string dv_test_FileAttachments = "dv_test_FileAttachments"; + } + + /// + /// Default Constructor. + /// + public FileAttachment() : + base(EntityLogicalName) + { + } + + public const string EntityLogicalName = "fileattachment"; + + public const string EntityLogicalCollectionName = "fileattachments"; + + public const string EntitySetName = "fileattachments"; + + public const int EntityTypeCode = 55; + + /// + /// Date and time when the attachment was created. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createdon")] + public System.Nullable CreatedOn + { + get + { + return this.GetAttributeValue>("createdon"); + } + } + + /// + /// Unique identifier of the file attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fileattachmentid")] + public System.Nullable FileAttachmentId + { + get + { + return this.GetAttributeValue>("fileattachmentid"); + } + set + { + this.SetAttributeValue("fileattachmentid", value); + if (value.HasValue) + { + base.Id = value.Value; + } + else + { + base.Id = System.Guid.Empty; + } + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fileattachmentid")] + public override System.Guid Id + { + get + { + return base.Id; + } + set + { + this.FileAttachmentId = value; + } + } + + /// + /// File name of the attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("filename")] + public string FileName + { + get + { + return this.GetAttributeValue("filename"); + } + set + { + this.SetAttributeValue("filename", value); + } + } + + /// + /// File size of the attachment in bytes. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("filesizeinbytes")] + public System.Nullable FileSizeInBytes + { + get + { + return this.GetAttributeValue>("filesizeinbytes"); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("iscommittedname")] + public string iscommittedName + { + get + { + if (this.FormattedValues.Contains("iscommitted")) + { + return this.FormattedValues["iscommitted"]; + } + else + { + return default(string); + } + } + } + + /// + /// MIME type of the attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("mimetype")] + public string MimeType + { + get + { + return this.GetAttributeValue("mimetype"); + } + set + { + this.SetAttributeValue("mimetype", value); + } + } + + /// + /// Unique identifier of the object with which the attachment is associated. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("objectid")] + public Microsoft.Xrm.Sdk.EntityReference ObjectId + { + get + { + return this.GetAttributeValue("objectid"); + } + set + { + this.SetAttributeValue("objectid", value); + } + } + + /// + /// Type of entity with which the file attachment is associated. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("objecttypecode")] + public string ObjectTypeCode + { + get + { + return this.GetAttributeValue("objecttypecode"); + } + set + { + this.SetAttributeValue("objecttypecode", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("objecttypecodename")] + public string ObjectTypeCodeName + { + get + { + if (this.FormattedValues.Contains("objecttypecode")) + { + return this.FormattedValues["objecttypecode"]; + } + else + { + return default(string); + } + } + } + + /// + /// Regarding attribute schema name of the attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("regardingfieldname")] + public string RegardingFieldName + { + get + { + return this.GetAttributeValue("regardingfieldname"); + } + set + { + this.SetAttributeValue("regardingfieldname", value); + } + } + + /// + /// Version number of the file attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("versionnumber")] + public System.Nullable VersionNumber + { + get + { + return this.GetAttributeValue>("versionnumber"); + } + } + + /// + /// 1:N FileAttachment_dv_test_dv_file + /// + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("FileAttachment_dv_test_dv_file")] + public System.Collections.Generic.IEnumerable FileAttachment_dv_test_dv_file + { + get + { + return this.GetRelatedEntities("FileAttachment_dv_test_dv_file", null); + } + set + { + this.SetRelatedEntities("FileAttachment_dv_test_dv_file", null, value); + } + } + + /// + /// N:1 dv_test_FileAttachments + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("objectid")] + [Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("dv_test_FileAttachments")] + public DataverseEntities.dv_test dv_test_FileAttachments + { + get + { + return this.GetRelatedEntity("dv_test_FileAttachments", null); + } + set + { + this.SetRelatedEntity("dv_test_FileAttachments", null, value); + } + } + } +} +#pragma warning restore CS1591 diff --git a/tests/DataverseEntities/Entities/organization.cs b/tests/DataverseEntities/Entities/organization.cs new file mode 100644 index 00000000..f93d6fce --- /dev/null +++ b/tests/DataverseEntities/Entities/organization.cs @@ -0,0 +1,10102 @@ +#pragma warning disable CS1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace DataverseEntities +{ + + + /// + /// Indication of whether to display money fields with currency code or currency symbol. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_currencydisplayoption + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + Currencysymbol = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Currencycode = 1, + } + + /// + /// Information about how currency symbols are placed throughout Microsoft CRM. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_currencyformatcode + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + CurrencySymbol_123 = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + _123CurrencySymbol_ = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + CurrencySymbol_1231 = 2, + + [System.Runtime.Serialization.EnumMemberAttribute()] + _123CurrencySymbol_1 = 3, + } + + /// + /// Specifies the default end recurrence range to be used in recurrence dialog. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_defaultrecurrenceendrangetype + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + NoEndDate = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + NumberofOccurrences = 2, + + [System.Runtime.Serialization.EnumMemberAttribute()] + EndByDate = 3, + } + + /// + /// The status of activation of the Power Automate Desktop Flow Run Action logs. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_desktopflowrunactionlogsstatus + { + + /// + /// Power Automate Desktop Flow Run Action Logs are enabled. + /// + [System.Runtime.Serialization.EnumMemberAttribute()] + Enabled = 0, + + /// + /// Power Automate Desktop Flow Run Action Logs are saved only on failure. + /// + [System.Runtime.Serialization.EnumMemberAttribute()] + OnFailure = 1, + + /// + /// Power Automate Desktop Flow Run Action Logs are disabled. + /// + [System.Runtime.Serialization.EnumMemberAttribute()] + Disabled = 2, + } + + /// + /// Where the Power Automate Desktop Flow Run Action logs are stored. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_desktopflowrunactionlogversion + { + + /// + /// Power Automate Desktop Flow Run Action Logs are stored in the Additional Context field of the Flow Session. + /// + [System.Runtime.Serialization.EnumMemberAttribute()] + AdditionalContext = 0, + + /// + /// Power Automate Desktop Flow Run Action Logs are stored in the Flow Logs Dataverse Entity (Preview). + /// + [System.Runtime.Serialization.EnumMemberAttribute()] + FlowLogs = 1, + + /// + /// Power Automate Desktop Flow Run Action Logs are stored in the Additional Context field of the Flow Session and the Flow Logs Dataverse Entity (Preview). + /// + [System.Runtime.Serialization.EnumMemberAttribute()] + AdditionalContextAndFlowLogs = 2, + } + + /// + /// Discount calculation Method for the QOOI product + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_discountcalculationmethod + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + Lineitem = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Perunit = 1, + } + + /// + /// Select whether you want to use the Email Router or server-side synchronization for email processing. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_emailconnectionchannel + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + ServerSideSynchronization = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + MicrosoftDynamics365EmailRouter = 1, + } + + /// + /// Fiscal Period Format + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_fiscalperiodformat + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + Quarter0 = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Q0 = 2, + + [System.Runtime.Serialization.EnumMemberAttribute()] + P0 = 3, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Month0 = 4, + + [System.Runtime.Serialization.EnumMemberAttribute()] + M0 = 5, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Semester0 = 6, + + [System.Runtime.Serialization.EnumMemberAttribute()] + MonthName = 7, + } + + /// + /// Fiscal Year Format Prefix + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_fiscalyearformatprefix + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + FY = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Unknown = 2, + } + + /// + /// Fiscal Year Format Suffix + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_fiscalyearformatsuffix + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + FY = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + FiscalYear = 2, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Unknown = 3, + } + + /// + /// Fiscal Year Format + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_fiscalyearformatyear + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + YYYY = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + YY = 2, + + [System.Runtime.Serialization.EnumMemberAttribute()] + GGYY = 3, + } + + /// + /// Order in which names are to be displayed throughout Microsoft CRM. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_fullnameconventioncode + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + LastNameFirstName = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + FirstName = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + LastNameFirstNameMiddleInitial = 2, + + [System.Runtime.Serialization.EnumMemberAttribute()] + FirstNameMiddleInitialLastName = 3, + + [System.Runtime.Serialization.EnumMemberAttribute()] + LastNameFirstNameMiddleName = 4, + + [System.Runtime.Serialization.EnumMemberAttribute()] + FirstNameMiddleNameLastName = 5, + + [System.Runtime.Serialization.EnumMemberAttribute()] + LastNamespaceFirstName = 6, + + [System.Runtime.Serialization.EnumMemberAttribute()] + LastNamenospaceFirstName = 7, + } + + /// + /// Select which IP Based SAS URI restriction will be used. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum ipbasedstorageaccesssignaturemode + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + IPBindingonly = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + IPFirewallonly = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + IPBindingandIPFirewall = 2, + + [System.Runtime.Serialization.EnumMemberAttribute()] + IPBindingorIPFirewall = 3, + } + + /// + /// Flag that determines whether or not MSCRM should be loaded in an browser window that does not have address, tool and menu bars. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_isvintegrationcode + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + None = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Web = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + OutlookWorkstationClient = 2, + + [System.Runtime.Serialization.EnumMemberAttribute()] + WebOutlookWorkstationClient = 3, + + [System.Runtime.Serialization.EnumMemberAttribute()] + OutlookLaptopClient = 4, + + [System.Runtime.Serialization.EnumMemberAttribute()] + WebOutlookLaptopClient = 5, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Outlook = 6, + + [System.Runtime.Serialization.EnumMemberAttribute()] + All = 7, + } + + /// + /// Show legacy app for admins + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_legacyapptoggle + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + Auto = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + On = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Off = 2, + } + + /// + /// Information that specifies how negative numbers are displayed throughout Microsoft CRM. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_negativeformatcode + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + Brackets = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Dash = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + DashplusSpace = 2, + + [System.Runtime.Serialization.EnumMemberAttribute()] + TrailingDash = 3, + + [System.Runtime.Serialization.EnumMemberAttribute()] + SpaceplusTrailingDash = 4, + } + + /// + /// Organization State, indicates if the org is being created, upgraded, updated or active + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_organizationstate + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + Creating = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Upgrading = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Updating = 2, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Active = 3, + } + + /// + /// Plug-in Trace Log Setting for the Organization. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_plugintracelogsetting + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + Off = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Exception = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + All = 2, + } + + /// + /// Model app refresh channel + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_releasechannel + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + Auto = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Monthlychannel = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + MicrosoftInnerchannel = 2, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Semiannualchannel = 3, + } + + /// + /// Picklist for selecting the user preference for reporting scripting errors. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_reportscripterrors + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + NopreferenceforsendinganerrorreporttoMicrosoftaboutMicrosoftDynamics365 = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + AskmeforpermissiontosendanerrorreporttoMicrosoft = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + AutomaticallysendanerrorreporttoMicrosoftwithoutaskingmeforpermission = 2, + + [System.Runtime.Serialization.EnumMemberAttribute()] + NeversendanerrorreporttoMicrosoftaboutMicrosoftDynamics365 = 3, + } + + /// + /// SharePoint Deployment Type + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_sharepointdeploymenttype + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + Online = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + OnPremises = 1, + } + + /// + /// Indicates the status of opt-in or opt-out operations for dynamics 365 azure sync. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_syncoptinselectionstatus + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + Processing = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Passed = 2, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Failed = 3, + } + + /// + /// Validation mode for apps in this environment + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_validationmode + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + Off = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Warn = 1, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Block = 2, + } + + /// + /// Yammer Post Method + /// + [System.Runtime.Serialization.DataContractAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public enum organization_yammerpostmethod + { + + [System.Runtime.Serialization.EnumMemberAttribute()] + Public = 0, + + [System.Runtime.Serialization.EnumMemberAttribute()] + Private = 1, + } + + /// + /// Top level of the Microsoft Dynamics 365 business hierarchy. The organization can be a specific business, holding company, or corporation. + /// + [System.Runtime.Serialization.DataContractAttribute()] + [Microsoft.Xrm.Sdk.Client.EntityLogicalNameAttribute("organization")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("Dataverse Model Builder", "2.0.0.6")] + public partial class Organization : Microsoft.Xrm.Sdk.Entity + { + + /// + /// Available fields, a the time of codegen, for the organization entity + /// + public partial class Fields + { + public const string ACIWebEndpointUrl = "aciwebendpointurl"; + public const string AcknowledgementTemplateId = "acknowledgementtemplateid"; + public const string AcknowledgementTemplateIdName = "acknowledgementtemplateidname"; + public const string ActivityTypeFilter = "activitytypefilter"; + public const string activitytypefilterName = "activitytypefiltername"; + public const string ActivityTypeFilterV2 = "activitytypefilterv2"; + public const string activitytypefilterv2Name = "activitytypefilterv2name"; + public const string AdvancedColumnEditorEnabled = "advancedcolumneditorenabled"; + public const string advancedcolumneditorenabledName = "advancedcolumneditorenabledname"; + public const string AdvancedColumnFilteringEnabled = "advancedcolumnfilteringenabled"; + public const string advancedcolumnfilteringenabledName = "advancedcolumnfilteringenabledname"; + public const string AdvancedFilteringEnabled = "advancedfilteringenabled"; + public const string advancedfilteringenabledName = "advancedfilteringenabledname"; + public const string AdvancedLookupEnabled = "advancedlookupenabled"; + public const string advancedlookupenabledName = "advancedlookupenabledname"; + public const string AdvancedLookupInEditFilter = "advancedlookupineditfilter"; + public const string AiPromptsEnabled = "aipromptsenabled"; + public const string aipromptsenabledName = "aipromptsenabledname"; + public const string AllowAddressBookSyncs = "allowaddressbooksyncs"; + public const string AllowApplicationUserAccess = "allowapplicationuseraccess"; + public const string allowapplicationuseraccessName = "allowapplicationuseraccessname"; + public const string AllowAutoResponseCreation = "allowautoresponsecreation"; + public const string AllowAutoUnsubscribe = "allowautounsubscribe"; + public const string AllowAutoUnsubscribeAcknowledgement = "allowautounsubscribeacknowledgement"; + public const string AllowClientMessageBarAd = "allowclientmessagebarad"; + public const string AllowConnectorsOnPowerFXActions = "allowconnectorsonpowerfxactions"; + public const string allowconnectorsonpowerfxactionsName = "allowconnectorsonpowerfxactionsname"; + public const string AllowedApplicationsForDVAccess = "allowedapplicationsfordvaccess"; + public const string AllowedIpRangeForFirewall = "allowediprangeforfirewall"; + public const string AllowedIpRangeForStorageAccessSignatures = "allowediprangeforstorageaccesssignatures"; + public const string AllowedMimeTypes = "allowedmimetypes"; + public const string AllowedServiceTagsForFirewall = "allowedservicetagsforfirewall"; + public const string AllowEntityOnlyAudit = "allowentityonlyaudit"; + public const string AllowLeadingWildcardsInGridSearch = "allowleadingwildcardsingridsearch"; + public const string allowleadingwildcardsingridsearchName = "allowleadingwildcardsingridsearchname"; + public const string AllowLeadingWildcardsInQuickFind = "allowleadingwildcardsinquickfind"; + public const string AllowLegacyClientExperience = "allowlegacyclientexperience"; + public const string AllowLegacyDialogsEmbedding = "allowlegacydialogsembedding"; + public const string AllowMarketingEmailExecution = "allowmarketingemailexecution"; + public const string AllowMicrosoftTrustedServiceTags = "allowmicrosofttrustedservicetags"; + public const string allowmicrosofttrustedservicetagsName = "allowmicrosofttrustedservicetagsname"; + public const string AllowOfflineScheduledSyncs = "allowofflinescheduledsyncs"; + public const string AllowOutlookScheduledSyncs = "allowoutlookscheduledsyncs"; + public const string AllowRedirectAdminSettingsToModernUI = "allowredirectadminsettingstomodernui"; + public const string allowredirectadminsettingstomodernuiName = "allowredirectadminsettingstomodernuiname"; + public const string AllowUnresolvedPartiesOnEmailSend = "allowunresolvedpartiesonemailsend"; + public const string AllowUserFormModePreference = "allowuserformmodepreference"; + public const string AllowUsersHidingSystemViews = "allowusershidingsystemviews"; + public const string allowusershidingsystemviewsName = "allowusershidingsystemviewsname"; + public const string AllowUsersSeeAppdownloadMessage = "allowusersseeappdownloadmessage"; + public const string AllowWebExcelExport = "allowwebexcelexport"; + public const string AMDesignator = "amdesignator"; + public const string AppDesignerExperienceEnabled = "appdesignerexperienceenabled"; + public const string ApplicationBasedAccessControlMode = "applicationbasedaccesscontrolmode"; + public const string applicationbasedaccesscontrolmodeName = "applicationbasedaccesscontrolmodename"; + public const string AppointmentRichEditorExperience = "appointmentricheditorexperience"; + public const string appointmentricheditorexperienceName = "appointmentricheditorexperiencename"; + public const string AppointmentWithTeamsMeeting = "appointmentwithteamsmeeting"; + public const string appointmentwithteamsmeetingName = "appointmentwithteamsmeetingname"; + public const string AppointmentWithTeamsMeetingV2 = "appointmentwithteamsmeetingv2"; + public const string appointmentwithteamsmeetingv2Name = "appointmentwithteamsmeetingv2name"; + public const string AuditRetentionPeriod = "auditretentionperiod"; + public const string AuditRetentionPeriodV2 = "auditretentionperiodv2"; + public const string AuditSettings = "auditsettings"; + public const string AutoApplyDefaultonCaseCreate = "autoapplydefaultoncasecreate"; + public const string AutoApplyDefaultonCaseCreateName = "autoapplydefaultoncasecreatename"; + public const string AutoApplyDefaultonCaseUpdate = "autoapplydefaultoncaseupdate"; + public const string AutoApplyDefaultonCaseUpdateName = "autoapplydefaultoncaseupdatename"; + public const string AutoApplySLA = "autoapplysla"; + public const string AzureSchedulerJobCollectionName = "azureschedulerjobcollectionname"; + public const string BaseCurrencyId = "basecurrencyid"; + public const string BaseCurrencyIdName = "basecurrencyidname"; + public const string BaseCurrencyPrecision = "basecurrencyprecision"; + public const string BaseCurrencySymbol = "basecurrencysymbol"; + public const string BingMapsApiKey = "bingmapsapikey"; + public const string BlockedApplicationsForDVAccess = "blockedapplicationsfordvaccess"; + public const string BlockedAttachments = "blockedattachments"; + public const string BlockedMimeTypes = "blockedmimetypes"; + public const string BoundDashboardDefaultCardExpanded = "bounddashboarddefaultcardexpanded"; + public const string BulkOperationPrefix = "bulkoperationprefix"; + public const string BusinessCardOptions = "businesscardoptions"; + public const string BusinessClosureCalendarId = "businessclosurecalendarid"; + public const string CalendarType = "calendartype"; + public const string CampaignPrefix = "campaignprefix"; + public const string CanOptOutNewSearchExperience = "canoptoutnewsearchexperience"; + public const string canoptoutnewsearchexperienceName = "canoptoutnewsearchexperiencename"; + public const string CascadeStatusUpdate = "cascadestatusupdate"; + public const string CasePrefix = "caseprefix"; + public const string CategoryPrefix = "categoryprefix"; + public const string ClientFeatureSet = "clientfeatureset"; + public const string ContentSecurityPolicyConfiguration = "contentsecuritypolicyconfiguration"; + public const string ContentSecurityPolicyConfigurationForCanvas = "contentsecuritypolicyconfigurationforcanvas"; + public const string ContentSecurityPolicyOptions = "contentsecuritypolicyoptions"; + public const string ContentSecurityPolicyReportUri = "contentsecuritypolicyreporturi"; + public const string ContractPrefix = "contractprefix"; + public const string CopresenceRefreshRate = "copresencerefreshrate"; + public const string CortanaProactiveExperienceEnabled = "cortanaproactiveexperienceenabled"; + public const string CreatedBy = "createdby"; + public const string CreatedByName = "createdbyname"; + public const string CreatedByYomiName = "createdbyyominame"; + public const string CreatedOn = "createdon"; + public const string CreatedOnBehalfBy = "createdonbehalfby"; + public const string CreatedOnBehalfByName = "createdonbehalfbyname"; + public const string CreatedOnBehalfByYomiName = "createdonbehalfbyyominame"; + public const string CreateProductsWithoutParentInActiveState = "createproductswithoutparentinactivestate"; + public const string CurrencyDecimalPrecision = "currencydecimalprecision"; + public const string CurrencyDisplayOption = "currencydisplayoption"; + public const string CurrencyFormatCode = "currencyformatcode"; + public const string CurrencyFormatCodeName = "currencyformatcodename"; + public const string CurrencySymbol = "currencysymbol"; + public const string CurrentBulkOperationNumber = "currentbulkoperationnumber"; + public const string CurrentCampaignNumber = "currentcampaignnumber"; + public const string CurrentCaseNumber = "currentcasenumber"; + public const string CurrentCategoryNumber = "currentcategorynumber"; + public const string CurrentContractNumber = "currentcontractnumber"; + public const string CurrentImportSequenceNumber = "currentimportsequencenumber"; + public const string CurrentInvoiceNumber = "currentinvoicenumber"; + public const string CurrentKaNumber = "currentkanumber"; + public const string CurrentKbNumber = "currentkbnumber"; + public const string CurrentOrderNumber = "currentordernumber"; + public const string CurrentParsedTableNumber = "currentparsedtablenumber"; + public const string CurrentQuoteNumber = "currentquotenumber"; + public const string DateFormatCodeName = "dateformatcodename"; + public const string DateFormatString = "dateformatstring"; + public const string DateSeparator = "dateseparator"; + public const string DaysBeforeEmailDescriptionIsMigrated = "daysbeforeemaildescriptionismigrated"; + public const string DaysBeforeInactiveTeamsChatSyncDisabled = "daysbeforeinactiveteamschatsyncdisabled"; + public const string DaysSinceRecordLastModifiedMaxValue = "dayssincerecordlastmodifiedmaxvalue"; + public const string DecimalSymbol = "decimalsymbol"; + public const string DefaultCountryCode = "defaultcountrycode"; + public const string DefaultCrmCustomName = "defaultcrmcustomname"; + public const string DefaultEmailServerProfileId = "defaultemailserverprofileid"; + public const string DefaultEmailServerProfileIdName = "defaultemailserverprofileidname"; + public const string DefaultEmailSettings = "defaultemailsettings"; + public const string DefaultMobileOfflineProfileId = "defaultmobileofflineprofileid"; + public const string DefaultMobileOfflineProfileIdName = "defaultmobileofflineprofileidname"; + public const string DefaultRecurrenceEndRangeType = "defaultrecurrenceendrangetype"; + public const string DefaultRecurrenceEndRangeTypeName = "defaultrecurrenceendrangetypename"; + public const string DefaultThemeData = "defaultthemedata"; + public const string DelegatedAdminUserId = "delegatedadminuserid"; + public const string DesktopFlowQueueLogsTtlInMinutes = "desktopflowqueuelogsttlinminutes"; + public const string DesktopFlowRunActionLogsStatus = "desktopflowrunactionlogsstatus"; + public const string desktopflowrunactionlogsstatusName = "desktopflowrunactionlogsstatusname"; + public const string DesktopFlowRunActionLogVersion = "desktopflowrunactionlogversion"; + public const string desktopflowrunactionlogversionName = "desktopflowrunactionlogversionname"; + public const string DisabledReason = "disabledreason"; + public const string DisableSocialCare = "disablesocialcare"; + public const string DisableSystemLabelsCacheSharing = "disablesystemlabelscachesharing"; + public const string disablesystemlabelscachesharingName = "disablesystemlabelscachesharingname"; + public const string DiscountCalculationMethod = "discountcalculationmethod"; + public const string DisplayNavigationTour = "displaynavigationtour"; + public const string EmailConnectionChannel = "emailconnectionchannel"; + public const string EmailCorrelationEnabled = "emailcorrelationenabled"; + public const string EmailSendPollingPeriod = "emailsendpollingperiod"; + public const string EnableAsyncMergeAPIForUCI = "enableasyncmergeapiforuci"; + public const string enableasyncmergeapiforuciName = "enableasyncmergeapiforuciname"; + public const string EnableBingMapsIntegration = "enablebingmapsintegration"; + public const string EnableCanvasAppsInSolutionsByDefault = "enablecanvasappsinsolutionsbydefault"; + public const string enablecanvasappsinsolutionsbydefaultName = "enablecanvasappsinsolutionsbydefaultname"; + public const string EnableFlowsInSolutionByDefault = "enableflowsinsolutionbydefault"; + public const string EnableFlowsInSolutionByDefaultGracePeriod = "enableflowsinsolutionbydefaultgraceperiod"; + public const string enableflowsinsolutionbydefaultgraceperiodName = "enableflowsinsolutionbydefaultgraceperiodname"; + public const string enableflowsinsolutionbydefaultName = "enableflowsinsolutionbydefaultname"; + public const string EnableImmersiveSkypeIntegration = "enableimmersiveskypeintegration"; + public const string EnableIpBasedCookieBinding = "enableipbasedcookiebinding"; + public const string enableipbasedcookiebindingName = "enableipbasedcookiebindingname"; + public const string EnableIpBasedFirewallRule = "enableipbasedfirewallrule"; + public const string EnableIpBasedFirewallRuleInAuditMode = "enableipbasedfirewallruleinauditmode"; + public const string enableipbasedfirewallruleinauditmodeName = "enableipbasedfirewallruleinauditmodename"; + public const string enableipbasedfirewallruleName = "enableipbasedfirewallrulename"; + public const string EnableIpBasedStorageAccessSignatureRule = "enableipbasedstorageaccesssignaturerule"; + public const string enableipbasedstorageaccesssignatureruleName = "enableipbasedstorageaccesssignaturerulename"; + public const string EnableLivePersonaCardUCI = "enablelivepersonacarduci"; + public const string EnableLivePersonCardIntegrationInOffice = "enablelivepersoncardintegrationinoffice"; + public const string EnableLPAuthoring = "enablelpauthoring"; + public const string EnableMakerSwitchToClassic = "enablemakerswitchtoclassic"; + public const string enablemakerswitchtoclassicName = "enablemakerswitchtoclassicname"; + public const string EnableMicrosoftFlowIntegration = "enablemicrosoftflowintegration"; + public const string EnablePricingOnCreate = "enablepricingoncreate"; + public const string EnableSmartMatching = "enablesmartmatching"; + public const string EnableUnifiedClientCDN = "enableunifiedclientcdn"; + public const string enableunifiedclientcdnName = "enableunifiedclientcdnname"; + public const string EnableUnifiedInterfaceShellRefresh = "enableunifiedinterfaceshellrefresh"; + public const string EnforceReadOnlyPlugins = "enforcereadonlyplugins"; + public const string EntityImage = "entityimage"; + public const string EntityImage_Timestamp = "entityimage_timestamp"; + public const string EntityImage_URL = "entityimage_url"; + public const string EntityImageId = "entityimageid"; + public const string ExpireChangeTrackingInDays = "expirechangetrackingindays"; + public const string ExpireSubscriptionsInDays = "expiresubscriptionsindays"; + public const string ExternalBaseUrl = "externalbaseurl"; + public const string ExternalPartyCorrelationKeys = "externalpartycorrelationkeys"; + public const string ExternalPartyEntitySettings = "externalpartyentitysettings"; + public const string FeatureSet = "featureset"; + public const string FiscalCalendarStart = "fiscalcalendarstart"; + public const string FiscalPeriodFormat = "fiscalperiodformat"; + public const string FiscalPeriodFormatPeriod = "fiscalperiodformatperiod"; + public const string FiscalPeriodFormatPeriodName = "fiscalperiodformatperiodname"; + public const string FiscalPeriodType = "fiscalperiodtype"; + public const string FiscalSettingsUpdated = "fiscalsettingsupdated"; + public const string FiscalSettingsUpdatedName = "fiscalsettingsupdatedname"; + public const string FiscalYearDisplayCode = "fiscalyeardisplaycode"; + public const string FiscalYearFormat = "fiscalyearformat"; + public const string FiscalYearFormatPrefix = "fiscalyearformatprefix"; + public const string FiscalYearFormatPrefixName = "fiscalyearformatprefixname"; + public const string FiscalYearFormatSuffix = "fiscalyearformatsuffix"; + public const string FiscalYearFormatSuffixName = "fiscalyearformatsuffixname"; + public const string FiscalYearFormatYear = "fiscalyearformatyear"; + public const string FiscalYearFormatYearName = "fiscalyearformatyearname"; + public const string FiscalYearPeriodConnect = "fiscalyearperiodconnect"; + public const string FlowLogsTtlInMinutes = "flowlogsttlinminutes"; + public const string FlowRunTimeToLiveInSeconds = "flowruntimetoliveinseconds"; + public const string FullNameConventionCode = "fullnameconventioncode"; + public const string FullNameConventionCodeName = "fullnameconventioncodename"; + public const string FutureExpansionWindow = "futureexpansionwindow"; + public const string GenerateAlertsForErrors = "generatealertsforerrors"; + public const string GenerateAlertsForInformation = "generatealertsforinformation"; + public const string GenerateAlertsForWarnings = "generatealertsforwarnings"; + public const string GetStartedPaneContentEnabled = "getstartedpanecontentenabled"; + public const string GlobalAppendUrlParametersEnabled = "globalappendurlparametersenabled"; + public const string GlobalHelpUrl = "globalhelpurl"; + public const string GlobalHelpUrlEnabled = "globalhelpurlenabled"; + public const string GoalRollupExpiryTime = "goalrollupexpirytime"; + public const string GoalRollupFrequency = "goalrollupfrequency"; + public const string GrantAccessToNetworkService = "grantaccesstonetworkservice"; + public const string HashDeltaSubjectCount = "hashdeltasubjectcount"; + public const string HashFilterKeywords = "hashfilterkeywords"; + public const string HashMaxCount = "hashmaxcount"; + public const string HashMinAddressCount = "hashminaddresscount"; + public const string HighContrastThemeData = "highcontrastthemedata"; + public const string IgnoreInternalEmail = "ignoreinternalemail"; + public const string ImproveSearchLoggingEnabled = "improvesearchloggingenabled"; + public const string improvesearchloggingenabledName = "improvesearchloggingenabledname"; + public const string InactivityTimeoutEnabled = "inactivitytimeoutenabled"; + public const string InactivityTimeoutInMins = "inactivitytimeoutinmins"; + public const string InactivityTimeoutReminderInMins = "inactivitytimeoutreminderinmins"; + public const string IncomingEmailExchangeEmailRetrievalBatchSize = "incomingemailexchangeemailretrievalbatchsize"; + public const string InitialVersion = "initialversion"; + public const string IntegrationUserId = "integrationuserid"; + public const string InvoicePrefix = "invoiceprefix"; + public const string IpBasedStorageAccessSignatureMode = "ipbasedstorageaccesssignaturemode"; + public const string ipbasedstorageaccesssignaturemodeName = "ipbasedstorageaccesssignaturemodename"; + public const string IsActionCardEnabled = "isactioncardenabled"; + public const string IsActionSupportFeatureEnabled = "isactionsupportfeatureenabled"; + public const string IsActivityAnalysisEnabled = "isactivityanalysisenabled"; + public const string IsAllMoneyDecimal = "isallmoneydecimal"; + public const string IsAppMode = "isappmode"; + public const string IsAppointmentAttachmentSyncEnabled = "isappointmentattachmentsyncenabled"; + public const string IsAssignedTasksSyncEnabled = "isassignedtaskssyncenabled"; + public const string IsAuditEnabled = "isauditenabled"; + public const string IsAutoDataCaptureEnabled = "isautodatacaptureenabled"; + public const string IsAutoDataCaptureV2Enabled = "isautodatacapturev2enabled"; + public const string IsAutoInstallAppForD365InTeamsEnabled = "isautoinstallappford365inteamsenabled"; + public const string isautoinstallappford365inteamsenabledName = "isautoinstallappford365inteamsenabledname"; + public const string IsAutoSaveEnabled = "isautosaveenabled"; + public const string IsBaseCardStaticFieldDataEnabled = "isbasecardstaticfielddataenabled"; + public const string isbasecardstaticfielddataenabledName = "isbasecardstaticfielddataenabledname"; + public const string IsBasicGeospatialIntegrationEnabled = "isbasicgeospatialintegrationenabled"; + public const string isbasicgeospatialintegrationenabledName = "isbasicgeospatialintegrationenabledname"; + public const string IsBPFEntityCustomizationFeatureEnabled = "isbpfentitycustomizationfeatureenabled"; + public const string IsCollaborationExperienceEnabled = "iscollaborationexperienceenabled"; + public const string iscollaborationexperienceenabledName = "iscollaborationexperienceenabledname"; + public const string IsConflictDetectionEnabledForMobileClient = "isconflictdetectionenabledformobileclient"; + public const string IsContactMailingAddressSyncEnabled = "iscontactmailingaddresssyncenabled"; + public const string IsContentSecurityPolicyEnabled = "iscontentsecuritypolicyenabled"; + public const string IsContentSecurityPolicyEnabledForCanvas = "iscontentsecuritypolicyenabledforcanvas"; + public const string iscontentsecuritypolicyenabledforcanvasName = "iscontentsecuritypolicyenabledforcanvasname"; + public const string IsContextualEmailEnabled = "iscontextualemailenabled"; + public const string IsContextualHelpEnabled = "iscontextualhelpenabled"; + public const string IsCopilotFeedbackEnabled = "iscopilotfeedbackenabled"; + public const string iscopilotfeedbackenabledName = "iscopilotfeedbackenabledname"; + public const string IsCustomControlsInCanvasAppsEnabled = "iscustomcontrolsincanvasappsenabled"; + public const string IsDefaultCountryCodeCheckEnabled = "isdefaultcountrycodecheckenabled"; + public const string IsDelegateAccessEnabled = "isdelegateaccessenabled"; + public const string IsDelveActionHubIntegrationEnabled = "isdelveactionhubintegrationenabled"; + public const string IsDesktopFlowConnectionEmbeddingEnabled = "isdesktopflowconnectionembeddingenabled"; + public const string isdesktopflowconnectionembeddingenabledName = "isdesktopflowconnectionembeddingenabledname"; + public const string IsDesktopFlowRuntimeRepairAttendedEnabled = "isdesktopflowruntimerepairattendedenabled"; + public const string isdesktopflowruntimerepairattendedenabledName = "isdesktopflowruntimerepairattendedenabledname"; + public const string IsDesktopFlowRuntimeRepairUnattendedEnabled = "isdesktopflowruntimerepairunattendedenabled"; + public const string isdesktopflowruntimerepairunattendedenabledName = "isdesktopflowruntimerepairunattendedenabledname"; + public const string IsDesktopFlowSchemaV2Enabled = "isdesktopflowschemav2enabled"; + public const string isdesktopflowschemav2enabledName = "isdesktopflowschemav2enabledname"; + public const string IsDisabled = "isdisabled"; + public const string IsDisabledName = "isdisabledname"; + public const string IsDuplicateDetectionEnabled = "isduplicatedetectionenabled"; + public const string IsDuplicateDetectionEnabledForImport = "isduplicatedetectionenabledforimport"; + public const string IsDuplicateDetectionEnabledForOfflineSync = "isduplicatedetectionenabledforofflinesync"; + public const string IsDuplicateDetectionEnabledForOnlineCreateUpdate = "isduplicatedetectionenabledforonlinecreateupdate"; + public const string IsEmailAddressValidationEnabled = "isemailaddressvalidationenabled"; + public const string isemailaddressvalidationenabledName = "isemailaddressvalidationenabledname"; + public const string IsEmailMonitoringAllowed = "isemailmonitoringallowed"; + public const string IsEmailServerProfileContentFilteringEnabled = "isemailserverprofilecontentfilteringenabled"; + public const string IsEnabledForAllRoles = "isenabledforallroles"; + public const string IsExternalFileStorageEnabled = "isexternalfilestorageenabled"; + public const string IsExternalSearchIndexEnabled = "isexternalsearchindexenabled"; + public const string IsFiscalPeriodMonthBased = "isfiscalperiodmonthbased"; + public const string IsFolderAutoCreatedonSP = "isfolderautocreatedonsp"; + public const string IsFolderBasedTrackingEnabled = "isfolderbasedtrackingenabled"; + public const string IsFullTextSearchEnabled = "isfulltextsearchenabled"; + public const string IsGeospatialAzureMapsIntegrationEnabled = "isgeospatialazuremapsintegrationenabled"; + public const string IsHierarchicalSecurityModelEnabled = "ishierarchicalsecuritymodelenabled"; + public const string IsIdeasDataCollectionEnabled = "isideasdatacollectionenabled"; + public const string isideasdatacollectionenabledName = "isideasdatacollectionenabledname"; + public const string IsLUISEnabledforD365Bot = "isluisenabledford365bot"; + public const string IsMailboxForcedUnlockingEnabled = "ismailboxforcedunlockingenabled"; + public const string IsMailboxInactiveBackoffEnabled = "ismailboxinactivebackoffenabled"; + public const string IsManualSalesForecastingEnabled = "ismanualsalesforecastingenabled"; + public const string IsMobileClientOnDemandSyncEnabled = "ismobileclientondemandsyncenabled"; + public const string IsMobileOfflineEnabled = "ismobileofflineenabled"; + public const string IsModelDrivenAppsInMSTeamsEnabled = "ismodeldrivenappsinmsteamsenabled"; + public const string IsMSTeamsCollaborationEnabled = "ismsteamscollaborationenabled"; + public const string IsMSTeamsEnabled = "ismsteamsenabled"; + public const string IsMSTeamsSettingChangedByUser = "ismsteamssettingchangedbyuser"; + public const string IsMSTeamsUserSyncEnabled = "ismsteamsusersyncenabled"; + public const string IsNewAddProductExperienceEnabled = "isnewaddproductexperienceenabled"; + public const string IsNotesAnalysisEnabled = "isnotesanalysisenabled"; + public const string IsNotificationForD365InTeamsEnabled = "isnotificationford365inteamsenabled"; + public const string isnotificationford365inteamsenabledName = "isnotificationford365inteamsenabledname"; + public const string IsOfficeGraphEnabled = "isofficegraphenabled"; + public const string IsOneDriveEnabled = "isonedriveenabled"; + public const string IsPAIEnabled = "ispaienabled"; + public const string IsPDFGenerationEnabled = "ispdfgenerationenabled"; + public const string IsPerProcessCapacityOverageEnabled = "isperprocesscapacityoverageenabled"; + public const string isperprocesscapacityoverageenabledName = "isperprocesscapacityoverageenabledname"; + public const string IsPlaybookEnabled = "isplaybookenabled"; + public const string IsPresenceEnabled = "ispresenceenabled"; + public const string IsPresenceEnabledName = "ispresenceenabledname"; + public const string IsPreviewEnabledForActionCard = "ispreviewenabledforactioncard"; + public const string IsPreviewForAutoCaptureEnabled = "ispreviewforautocaptureenabled"; + public const string IsPreviewForEmailMonitoringAllowed = "ispreviewforemailmonitoringallowed"; + public const string IsPriceListMandatory = "ispricelistmandatory"; + public const string IsQuickCreateEnabledForOpportunityClose = "isquickcreateenabledforopportunityclose"; + public const string IsReadAuditEnabled = "isreadauditenabled"; + public const string IsRelationshipInsightsEnabled = "isrelationshipinsightsenabled"; + public const string IsResourceBookingExchangeSyncEnabled = "isresourcebookingexchangesyncenabled"; + public const string IsRichTextNotesEnabled = "isrichtextnotesenabled"; + public const string IsRpaAutoscaleAadJoinEnabled = "isrpaautoscaleaadjoinenabled"; + public const string isrpaautoscaleaadjoinenabledName = "isrpaautoscaleaadjoinenabledname"; + public const string IsRpaAutoscaleEnabled = "isrpaautoscaleenabled"; + public const string isrpaautoscaleenabledName = "isrpaautoscaleenabledname"; + public const string IsRpaBoxCrossGeoEnabled = "isrpaboxcrossgeoenabled"; + public const string isrpaboxcrossgeoenabledName = "isrpaboxcrossgeoenabledname"; + public const string IsRpaBoxEnabled = "isrpaboxenabled"; + public const string isrpaboxenabledName = "isrpaboxenabledname"; + public const string IsRpaUnattendedEnabled = "isrpaunattendedenabled"; + public const string isrpaunattendedenabledName = "isrpaunattendedenabledname"; + public const string IsSalesAssistantEnabled = "issalesassistantenabled"; + public const string IsSharingInOrgAllowed = "issharinginorgallowed"; + public const string issharinginorgallowedName = "issharinginorgallowedname"; + public const string IsSOPIntegrationEnabled = "issopintegrationenabled"; + public const string IsTextWrapEnabled = "istextwrapenabled"; + public const string IsUserAccessAuditEnabled = "isuseraccessauditenabled"; + public const string ISVIntegrationCode = "isvintegrationcode"; + public const string IsWriteInProductsAllowed = "iswriteinproductsallowed"; + public const string KaPrefix = "kaprefix"; + public const string KbPrefix = "kbprefix"; + public const string KMSettings = "kmsettings"; + public const string LanguageCode = "languagecode"; + public const string LanguageCodeName = "languagecodename"; + public const string LegacyAppToggle = "legacyapptoggle"; + public const string legacyapptoggleName = "legacyapptogglename"; + public const string LocaleId = "localeid"; + public const string LongDateFormatCode = "longdateformatcode"; + public const string LookupCharacterCountBeforeResolve = "lookupcharactercountbeforeresolve"; + public const string LookupResolveDelayMS = "lookupresolvedelayms"; + public const string MailboxIntermittentIssueMinRange = "mailboxintermittentissueminrange"; + public const string MailboxPermanentIssueMinRange = "mailboxpermanentissueminrange"; + public const string MaxActionStepsInBPF = "maxactionstepsinbpf"; + public const string MaxAllowedPendingRollupJobCount = "maxallowedpendingrollupjobcount"; + public const string MaxAllowedPendingRollupJobPercentage = "maxallowedpendingrollupjobpercentage"; + public const string MaxAppointmentDurationDays = "maxappointmentdurationdays"; + public const string MaxConditionsForMobileOfflineFilters = "maxconditionsformobileofflinefilters"; + public const string MaxDepthForHierarchicalSecurityModel = "maxdepthforhierarchicalsecuritymodel"; + public const string MaxFolderBasedTrackingMappings = "maxfolderbasedtrackingmappings"; + public const string MaximumActiveBusinessProcessFlowsAllowedPerEntity = "maximumactivebusinessprocessflowsallowedperentity"; + public const string MaximumDynamicPropertiesAllowed = "maximumdynamicpropertiesallowed"; + public const string MaximumEntitiesWithActiveSLA = "maximumentitieswithactivesla"; + public const string MaximumSLAKPIPerEntityWithActiveSLA = "maximumslakpiperentitywithactivesla"; + public const string MaximumTrackingNumber = "maximumtrackingnumber"; + public const string MaxProductsInBundle = "maxproductsinbundle"; + public const string MaxRecordsForExportToExcel = "maxrecordsforexporttoexcel"; + public const string MaxRecordsForLookupFilters = "maxrecordsforlookupfilters"; + public const string MaxRollupFieldsPerEntity = "maxrollupfieldsperentity"; + public const string MaxRollupFieldsPerOrg = "maxrollupfieldsperorg"; + public const string MaxSLAItemsPerSLA = "maxslaitemspersla"; + public const string MaxSupportedInternetExplorerVersion = "maxsupportedinternetexplorerversion"; + public const string MaxUploadFileSize = "maxuploadfilesize"; + public const string MaxVerboseLoggingMailbox = "maxverboseloggingmailbox"; + public const string MaxVerboseLoggingSyncCycles = "maxverboseloggingsynccycles"; + public const string MicrosoftFlowEnvironment = "microsoftflowenvironment"; + public const string MinAddressBookSyncInterval = "minaddressbooksyncinterval"; + public const string MinOfflineSyncInterval = "minofflinesyncinterval"; + public const string MinOutlookSyncInterval = "minoutlooksyncinterval"; + public const string MobileOfflineMinLicenseProd = "mobileofflineminlicenseprod"; + public const string MobileOfflineMinLicenseTrial = "mobileofflineminlicensetrial"; + public const string MobileOfflineSyncInterval = "mobileofflinesyncinterval"; + public const string ModernAdvancedFindFiltering = "modernadvancedfindfiltering"; + public const string modernadvancedfindfilteringName = "modernadvancedfindfilteringname"; + public const string ModernAppDesignerCoauthoringEnabled = "modernappdesignercoauthoringenabled"; + public const string modernappdesignercoauthoringenabledName = "modernappdesignercoauthoringenabledname"; + public const string ModifiedBy = "modifiedby"; + public const string ModifiedByName = "modifiedbyname"; + public const string ModifiedByYomiName = "modifiedbyyominame"; + public const string ModifiedOn = "modifiedon"; + public const string ModifiedOnBehalfBy = "modifiedonbehalfby"; + public const string ModifiedOnBehalfByName = "modifiedonbehalfbyname"; + public const string ModifiedOnBehalfByYomiName = "modifiedonbehalfbyyominame"; + public const string MultiColumnSortEnabled = "multicolumnsortenabled"; + public const string Name = "name"; + public const string NaturalLanguageAssistFilter = "naturallanguageassistfilter"; + public const string naturallanguageassistfilterName = "naturallanguageassistfiltername"; + public const string NegativeCurrencyFormatCode = "negativecurrencyformatcode"; + public const string NegativeFormatCode = "negativeformatcode"; + public const string NegativeFormatCodeName = "negativeformatcodename"; + public const string NewSearchExperienceEnabled = "newsearchexperienceenabled"; + public const string newsearchexperienceenabledName = "newsearchexperienceenabledname"; + public const string NextTrackingNumber = "nexttrackingnumber"; + public const string NotifyMailboxOwnerOfEmailServerLevelAlerts = "notifymailboxownerofemailserverlevelalerts"; + public const string NumberFormat = "numberformat"; + public const string NumberGroupFormat = "numbergroupformat"; + public const string NumberSeparator = "numberseparator"; + public const string OfficeAppsAutoDeploymentEnabled = "officeappsautodeploymentenabled"; + public const string OfficeGraphDelveUrl = "officegraphdelveurl"; + public const string OOBPriceCalculationEnabled = "oobpricecalculationenabled"; + public const string OptOutSchemaV2EnabledByDefault = "optoutschemav2enabledbydefault"; + public const string optoutschemav2enabledbydefaultName = "optoutschemav2enabledbydefaultname"; + public const string OrderPrefix = "orderprefix"; + public const string OrganizationId = "organizationid"; + public const string Id = "organizationid"; + public const string OrganizationState = "organizationstate"; + public const string OrgDbOrgSettings = "orgdborgsettings"; + public const string OrgInsightsEnabled = "orginsightsenabled"; + public const string PaiPreviewScenarioEnabled = "paipreviewscenarioenabled"; + public const string ParsedTableColumnPrefix = "parsedtablecolumnprefix"; + public const string ParsedTablePrefix = "parsedtableprefix"; + public const string PastExpansionWindow = "pastexpansionwindow"; + public const string PcfDatasetGridEnabled = "pcfdatasetgridenabled"; + public const string PerformACTSyncAfter = "performactsyncafter"; + public const string Picture = "picture"; + public const string PinpointLanguageCode = "pinpointlanguagecode"; + public const string PluginTraceLogSetting = "plugintracelogsetting"; + public const string PluginTraceLogSettingName = "plugintracelogsettingname"; + public const string PMDesignator = "pmdesignator"; + public const string PostMessageWhitelistDomains = "postmessagewhitelistdomains"; + public const string PowerAppsMakerBotEnabled = "powerappsmakerbotenabled"; + public const string powerappsmakerbotenabledName = "powerappsmakerbotenabledname"; + public const string PowerBIAllowCrossRegionOperations = "powerbiallowcrossregionoperations"; + public const string powerbiallowcrossregionoperationsName = "powerbiallowcrossregionoperationsname"; + public const string PowerBIAutomaticPermissionsAssignment = "powerbiautomaticpermissionsassignment"; + public const string powerbiautomaticpermissionsassignmentName = "powerbiautomaticpermissionsassignmentname"; + public const string PowerBIComponentsCreate = "powerbicomponentscreate"; + public const string powerbicomponentscreateName = "powerbicomponentscreatename"; + public const string PowerBiFeatureEnabled = "powerbifeatureenabled"; + public const string PricingDecimalPrecision = "pricingdecimalprecision"; + public const string PrivacyStatementUrl = "privacystatementurl"; + public const string PrivilegeUserGroupId = "privilegeusergroupid"; + public const string PrivReportingGroupId = "privreportinggroupid"; + public const string PrivReportingGroupName = "privreportinggroupname"; + public const string ProductRecommendationsEnabled = "productrecommendationsenabled"; + public const string QualifyLeadAdditionalOptions = "qualifyleadadditionaloptions"; + public const string QuickActionToOpenRecordsInSidePaneEnabled = "quickactiontoopenrecordsinsidepaneenabled"; + public const string quickactiontoopenrecordsinsidepaneenabledName = "quickactiontoopenrecordsinsidepaneenabledname"; + public const string QuickFindRecordLimitEnabled = "quickfindrecordlimitenabled"; + public const string QuotePrefix = "quoteprefix"; + public const string RecalculateSLA = "recalculatesla"; + public const string recalculateslaName = "recalculateslaname"; + public const string RecurrenceDefaultNumberOfOccurrences = "recurrencedefaultnumberofoccurrences"; + public const string RecurrenceExpansionJobBatchInterval = "recurrenceexpansionjobbatchinterval"; + public const string RecurrenceExpansionJobBatchSize = "recurrenceexpansionjobbatchsize"; + public const string RecurrenceExpansionSynchCreateMax = "recurrenceexpansionsynchcreatemax"; + public const string ReferenceSiteMapXml = "referencesitemapxml"; + public const string ReleaseCadence = "releasecadence"; + public const string ReleaseChannel = "releasechannel"; + public const string releasechannelName = "releasechannelname"; + public const string ReleaseWaveName = "releasewavename"; + public const string RelevanceSearchEnabledByPlatform = "relevancesearchenabledbyplatform"; + public const string relevancesearchenabledbyplatformName = "relevancesearchenabledbyplatformname"; + public const string RelevanceSearchModifiedOn = "relevancesearchmodifiedon"; + public const string RenderSecureIFrameForEmail = "rendersecureiframeforemail"; + public const string ReportingGroupId = "reportinggroupid"; + public const string ReportingGroupName = "reportinggroupname"; + public const string ReportScriptErrors = "reportscripterrors"; + public const string ReportScriptErrorsName = "reportscripterrorsname"; + public const string RequireApprovalForQueueEmail = "requireapprovalforqueueemail"; + public const string RequireApprovalForUserEmail = "requireapprovalforuseremail"; + public const string ResolveSimilarUnresolvedEmailAddress = "resolvesimilarunresolvedemailaddress"; + public const string RestrictGuestUserAccess = "restrictGuestUserAccess"; + public const string restrictGuestUserAccessName = "restrictguestuseraccessname"; + public const string RestrictStatusUpdate = "restrictstatusupdate"; + public const string ReverseProxyIpAddresses = "reverseproxyipaddresses"; + public const string RiErrorStatus = "rierrorstatus"; + public const string SameSiteModeForSessionCookie = "samesitemodeforsessioncookie"; + public const string samesitemodeforsessioncookieName = "samesitemodeforsessioncookiename"; + public const string SampleDataImportId = "sampledataimportid"; + public const string SchemaNamePrefix = "schemanameprefix"; + public const string SendBulkEmailInUCI = "sendbulkemailinuci"; + public const string ServeStaticResourcesFromAzureCDN = "servestaticresourcesfromazurecdn"; + public const string SessionRecordingEnabled = "sessionrecordingenabled"; + public const string sessionrecordingenabledName = "sessionrecordingenabledname"; + public const string SessionTimeoutEnabled = "sessiontimeoutenabled"; + public const string SessionTimeoutInMins = "sessiontimeoutinmins"; + public const string SessionTimeoutReminderInMins = "sessiontimeoutreminderinmins"; + public const string SharePointDeploymentType = "sharepointdeploymenttype"; + public const string ShareToPreviousOwnerOnAssign = "sharetopreviousowneronassign"; + public const string ShowKBArticleDeprecationNotification = "showkbarticledeprecationnotification"; + public const string ShowWeekNumber = "showweeknumber"; + public const string ShowWeekNumberName = "showweeknumbername"; + public const string SignupOutlookDownloadFWLink = "signupoutlookdownloadfwlink"; + public const string SiteMapXml = "sitemapxml"; + public const string SlaPauseStates = "slapausestates"; + public const string SocialInsightsEnabled = "socialinsightsenabled"; + public const string SocialInsightsInstance = "socialinsightsinstance"; + public const string SocialInsightsTermsAccepted = "socialinsightstermsaccepted"; + public const string SortId = "sortid"; + public const string SqlAccessGroupId = "sqlaccessgroupid"; + public const string SqlAccessGroupName = "sqlaccessgroupname"; + public const string SQMEnabled = "sqmenabled"; + public const string SupportUserId = "supportuserid"; + public const string SuppressSLA = "suppresssla"; + public const string SuppressValidationEmails = "suppressvalidationemails"; + public const string suppressvalidationemailsName = "suppressvalidationemailsname"; + public const string SyncBulkOperationBatchSize = "syncbulkoperationbatchsize"; + public const string SyncBulkOperationMaxLimit = "syncbulkoperationmaxlimit"; + public const string SyncOptInSelection = "syncoptinselection"; + public const string SyncOptInSelectionStatus = "syncoptinselectionstatus"; + public const string SystemUserId = "systemuserid"; + public const string TableScopedDVSearchInApps = "tablescopeddvsearchinapps"; + public const string tablescopeddvsearchinappsName = "tablescopeddvsearchinappsname"; + public const string TagMaxAggressiveCycles = "tagmaxaggressivecycles"; + public const string TagPollingPeriod = "tagpollingperiod"; + public const string TaskBasedFlowEnabled = "taskbasedflowenabled"; + public const string TeamsChatDataSync = "teamschatdatasync"; + public const string teamschatdatasyncName = "teamschatdatasyncname"; + public const string TelemetryInstrumentationKey = "telemetryinstrumentationkey"; + public const string TextAnalyticsEnabled = "textanalyticsenabled"; + public const string TimeFormatCodeName = "timeformatcodename"; + public const string TimeFormatString = "timeformatstring"; + public const string TimeSeparator = "timeseparator"; + public const string TimeZoneRuleVersionNumber = "timezoneruleversionnumber"; + public const string TokenExpiry = "tokenexpiry"; + public const string TokenKey = "tokenkey"; + public const string TraceLogMaximumAgeInDays = "tracelogmaximumageindays"; + public const string TrackingPrefix = "trackingprefix"; + public const string TrackingTokenIdBase = "trackingtokenidbase"; + public const string TrackingTokenIdDigits = "trackingtokeniddigits"; + public const string UniqueSpecifierLength = "uniquespecifierlength"; + public const string UnresolveEmailAddressIfMultipleMatch = "unresolveemailaddressifmultiplematch"; + public const string UseInbuiltRuleForDefaultPricelistSelection = "useinbuiltrulefordefaultpricelistselection"; + public const string UseLegacyRendering = "uselegacyrendering"; + public const string UsePositionHierarchy = "usepositionhierarchy"; + public const string UseQuickFindViewForGridSearch = "usequickfindviewforgridsearch"; + public const string UserAccessAuditingInterval = "useraccessauditinginterval"; + public const string UseReadForm = "usereadform"; + public const string UserGroupId = "usergroupid"; + public const string UserRatingEnabled = "userratingenabled"; + public const string userratingenabledName = "userratingenabledname"; + public const string UseSkypeProtocol = "useskypeprotocol"; + public const string UTCConversionTimeZoneCode = "utcconversiontimezonecode"; + public const string V3CalloutConfigHash = "v3calloutconfighash"; + public const string ValidationMode = "validationmode"; + public const string validationmodeName = "validationmodename"; + public const string VersionNumber = "versionnumber"; + public const string WebResourceHash = "webresourcehash"; + public const string WeekStartDayCodeName = "weekstartdaycodename"; + public const string WidgetProperties = "widgetproperties"; + public const string YammerGroupId = "yammergroupid"; + public const string YammerNetworkPermalink = "yammernetworkpermalink"; + public const string YammerOAuthAccessTokenExpired = "yammeroauthaccesstokenexpired"; + public const string YammerPostMethod = "yammerpostmethod"; + public const string YearStartWeekCode = "yearstartweekcode"; + public const string organization_plugintype = "organization_plugintype"; + public const string organization_sdkmessage = "organization_sdkmessage"; + public const string organization_sdkmessagefilter = "organization_sdkmessagefilter"; + public const string organization_sdkmessageprocessingstep = "organization_sdkmessageprocessingstep"; + public const string organization_sdkmessageprocessingstepsecureconfig = "organization_sdkmessageprocessingstepsecureconfig"; + } + + /// + /// Default Constructor. + /// + public Organization() : + base(EntityLogicalName) + { + } + + public const string EntityLogicalName = "organization"; + + public const string EntityLogicalCollectionName = "organizations"; + + public const string EntitySetName = "organizations"; + + public const int EntityTypeCode = 1019; + + /// + /// ACI Web Endpoint URL. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("aciwebendpointurl")] + public string ACIWebEndpointUrl + { + get + { + return this.GetAttributeValue("aciwebendpointurl"); + } + set + { + this.SetAttributeValue("aciwebendpointurl", value); + } + } + + /// + /// Unique identifier of the template to be used for acknowledgement when a user unsubscribes. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("acknowledgementtemplateid")] + public Microsoft.Xrm.Sdk.EntityReference AcknowledgementTemplateId + { + get + { + return this.GetAttributeValue("acknowledgementtemplateid"); + } + set + { + this.SetAttributeValue("acknowledgementtemplateid", value); + } + } + + /// + /// Name of the template to be used for unsubscription acknowledgement. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("acknowledgementtemplateidname")] + public string AcknowledgementTemplateIdName + { + get + { + if (this.FormattedValues.Contains("acknowledgementtemplateid")) + { + return this.FormattedValues["acknowledgementtemplateid"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information on whether filtering activity based on entity in app. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("activitytypefilter")] + public System.Nullable ActivityTypeFilter + { + get + { + return this.GetAttributeValue>("activitytypefilter"); + } + set + { + this.SetAttributeValue("activitytypefilter", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("activitytypefiltername")] + public string activitytypefilterName + { + get + { + if (this.FormattedValues.Contains("activitytypefilter")) + { + return this.FormattedValues["activitytypefilter"]; + } + else + { + return default(string); + } + } + } + + /// + /// Whether to show only activities configured in this app or all activities in the 'New activity' button. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("activitytypefilterv2")] + public System.Nullable ActivityTypeFilterV2 + { + get + { + return this.GetAttributeValue>("activitytypefilterv2"); + } + set + { + this.SetAttributeValue("activitytypefilterv2", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("activitytypefilterv2name")] + public string activitytypefilterv2Name + { + get + { + if (this.FormattedValues.Contains("activitytypefilterv2")) + { + return this.FormattedValues["activitytypefilterv2"]; + } + else + { + return default(string); + } + } + } + + /// + /// Flag to indicate if the display column options on a view in model-driven apps is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("advancedcolumneditorenabled")] + public System.Nullable AdvancedColumnEditorEnabled + { + get + { + return this.GetAttributeValue>("advancedcolumneditorenabled"); + } + set + { + this.SetAttributeValue("advancedcolumneditorenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("advancedcolumneditorenabledname")] + public string advancedcolumneditorenabledName + { + get + { + if (this.FormattedValues.Contains("advancedcolumneditorenabled")) + { + return this.FormattedValues["advancedcolumneditorenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Flag to indicate if the advanced column filtering in a view in model-driven apps is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("advancedcolumnfilteringenabled")] + public System.Nullable AdvancedColumnFilteringEnabled + { + get + { + return this.GetAttributeValue>("advancedcolumnfilteringenabled"); + } + set + { + this.SetAttributeValue("advancedcolumnfilteringenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("advancedcolumnfilteringenabledname")] + public string advancedcolumnfilteringenabledName + { + get + { + if (this.FormattedValues.Contains("advancedcolumnfilteringenabled")) + { + return this.FormattedValues["advancedcolumnfilteringenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Flag to indicate if the advanced filtering on all tables in a model-driven app is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("advancedfilteringenabled")] + public System.Nullable AdvancedFilteringEnabled + { + get + { + return this.GetAttributeValue>("advancedfilteringenabled"); + } + set + { + this.SetAttributeValue("advancedfilteringenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("advancedfilteringenabledname")] + public string advancedfilteringenabledName + { + get + { + if (this.FormattedValues.Contains("advancedfilteringenabled")) + { + return this.FormattedValues["advancedfilteringenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Flag to indicate if the Advanced Lookup feature is enabled for lookup controls + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("advancedlookupenabled")] + public System.Nullable AdvancedLookupEnabled + { + get + { + return this.GetAttributeValue>("advancedlookupenabled"); + } + set + { + this.SetAttributeValue("advancedlookupenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("advancedlookupenabledname")] + public string advancedlookupenabledName + { + get + { + if (this.FormattedValues.Contains("advancedlookupenabled")) + { + return this.FormattedValues["advancedlookupenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Enables advanced lookup in grid edit filter panel + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("advancedlookupineditfilter")] + public System.Nullable AdvancedLookupInEditFilter + { + get + { + return this.GetAttributeValue>("advancedlookupineditfilter"); + } + set + { + this.SetAttributeValue("advancedlookupineditfilter", value); + } + } + + /// + /// Indicates whether AI Prompts feature is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("aipromptsenabled")] + public System.Nullable AiPromptsEnabled + { + get + { + return this.GetAttributeValue>("aipromptsenabled"); + } + set + { + this.SetAttributeValue("aipromptsenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("aipromptsenabledname")] + public string aipromptsenabledName + { + get + { + if (this.FormattedValues.Contains("aipromptsenabled")) + { + return this.FormattedValues["aipromptsenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether background address book synchronization in Microsoft Office Outlook is allowed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowaddressbooksyncs")] + public System.Nullable AllowAddressBookSyncs + { + get + { + return this.GetAttributeValue>("allowaddressbooksyncs"); + } + set + { + this.SetAttributeValue("allowaddressbooksyncs", value); + } + } + + /// + /// Information that specifies whether all application users are allowed to access the environment + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowapplicationuseraccess")] + public System.Nullable AllowApplicationUserAccess + { + get + { + return this.GetAttributeValue>("allowapplicationuseraccess"); + } + set + { + this.SetAttributeValue("allowapplicationuseraccess", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowapplicationuseraccessname")] + public string allowapplicationuseraccessName + { + get + { + if (this.FormattedValues.Contains("allowapplicationuseraccess")) + { + return this.FormattedValues["allowapplicationuseraccess"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether automatic response creation is allowed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowautoresponsecreation")] + public System.Nullable AllowAutoResponseCreation + { + get + { + return this.GetAttributeValue>("allowautoresponsecreation"); + } + set + { + this.SetAttributeValue("allowautoresponsecreation", value); + } + } + + /// + /// Indicates whether automatic unsubscribe is allowed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowautounsubscribe")] + public System.Nullable AllowAutoUnsubscribe + { + get + { + return this.GetAttributeValue>("allowautounsubscribe"); + } + set + { + this.SetAttributeValue("allowautounsubscribe", value); + } + } + + /// + /// Indicates whether automatic unsubscribe acknowledgement email is allowed to send. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowautounsubscribeacknowledgement")] + public System.Nullable AllowAutoUnsubscribeAcknowledgement + { + get + { + return this.GetAttributeValue>("allowautounsubscribeacknowledgement"); + } + set + { + this.SetAttributeValue("allowautounsubscribeacknowledgement", value); + } + } + + /// + /// Indicates whether Outlook Client message bar advertisement is allowed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowclientmessagebarad")] + public System.Nullable AllowClientMessageBarAd + { + get + { + return this.GetAttributeValue>("allowclientmessagebarad"); + } + set + { + this.SetAttributeValue("allowclientmessagebarad", value); + } + } + + /// + /// Information on whether connectors on power fx actions is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowconnectorsonpowerfxactions")] + public System.Nullable AllowConnectorsOnPowerFXActions + { + get + { + return this.GetAttributeValue>("allowconnectorsonpowerfxactions"); + } + set + { + this.SetAttributeValue("allowconnectorsonpowerfxactions", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowconnectorsonpowerfxactionsname")] + public string allowconnectorsonpowerfxactionsName + { + get + { + if (this.FormattedValues.Contains("allowconnectorsonpowerfxactions")) + { + return this.FormattedValues["allowconnectorsonpowerfxactions"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information that specifies the Applications that are in allow list for the accessing DV resources. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowedapplicationsfordvaccess")] + public string AllowedApplicationsForDVAccess + { + get + { + return this.GetAttributeValue("allowedapplicationsfordvaccess"); + } + set + { + this.SetAttributeValue("allowedapplicationsfordvaccess", value); + } + } + + /// + /// Information that specifies the range of IP addresses that are in allow list for the firewall. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowediprangeforfirewall")] + public string AllowedIpRangeForFirewall + { + get + { + return this.GetAttributeValue("allowediprangeforfirewall"); + } + set + { + this.SetAttributeValue("allowediprangeforfirewall", value); + } + } + + /// + /// Information that specifies the range of IP addresses that are in allowed list for generating the SAS URIs. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowediprangeforstorageaccesssignatures")] + public string AllowedIpRangeForStorageAccessSignatures + { + get + { + return this.GetAttributeValue("allowediprangeforstorageaccesssignatures"); + } + set + { + this.SetAttributeValue("allowediprangeforstorageaccesssignatures", value); + } + } + + /// + /// Allow upload or download of certain mime types. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowedmimetypes")] + public string AllowedMimeTypes + { + get + { + return this.GetAttributeValue("allowedmimetypes"); + } + set + { + this.SetAttributeValue("allowedmimetypes", value); + } + } + + /// + /// Information that specifies the List of Service Tags that should be allowed by the firewall. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowedservicetagsforfirewall")] + public string AllowedServiceTagsForFirewall + { + get + { + return this.GetAttributeValue("allowedservicetagsforfirewall"); + } + set + { + this.SetAttributeValue("allowedservicetagsforfirewall", value); + } + } + + /// + /// Indicates whether auditing of changes to entity is allowed when no attributes have changed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowentityonlyaudit")] + public System.Nullable AllowEntityOnlyAudit + { + get + { + return this.GetAttributeValue>("allowentityonlyaudit"); + } + set + { + this.SetAttributeValue("allowentityonlyaudit", value); + } + } + + /// + /// Enables ends-with searches in grids with the use of a leading wildcard on all tables in the environment + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowleadingwildcardsingridsearch")] + public System.Nullable AllowLeadingWildcardsInGridSearch + { + get + { + return this.GetAttributeValue>("allowleadingwildcardsingridsearch"); + } + set + { + this.SetAttributeValue("allowleadingwildcardsingridsearch", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowleadingwildcardsingridsearchname")] + public string allowleadingwildcardsingridsearchName + { + get + { + if (this.FormattedValues.Contains("allowleadingwildcardsingridsearch")) + { + return this.FormattedValues["allowleadingwildcardsingridsearch"]; + } + else + { + return default(string); + } + } + } + + /// + /// Enables ends-with searches in grids with the use of a leading wildcard on all tables in the environment + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowleadingwildcardsinquickfind")] + public System.Nullable AllowLeadingWildcardsInQuickFind + { + get + { + return this.GetAttributeValue>("allowleadingwildcardsinquickfind"); + } + set + { + this.SetAttributeValue("allowleadingwildcardsinquickfind", value); + } + } + + /// + /// Enable access to legacy web client UI + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowlegacyclientexperience")] + public System.Nullable AllowLegacyClientExperience + { + get + { + return this.GetAttributeValue>("allowlegacyclientexperience"); + } + set + { + this.SetAttributeValue("allowlegacyclientexperience", value); + } + } + + /// + /// Enable embedding of certain legacy dialogs in Unified Interface browser client + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowlegacydialogsembedding")] + public System.Nullable AllowLegacyDialogsEmbedding + { + get + { + return this.GetAttributeValue>("allowlegacydialogsembedding"); + } + set + { + this.SetAttributeValue("allowlegacydialogsembedding", value); + } + } + + /// + /// Indicates whether marketing emails execution is allowed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowmarketingemailexecution")] + public System.Nullable AllowMarketingEmailExecution + { + get + { + return this.GetAttributeValue>("allowmarketingemailexecution"); + } + set + { + this.SetAttributeValue("allowmarketingemailexecution", value); + } + } + + /// + /// Information that specifies whether Microsoft Trusted Service Tags are allowed + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowmicrosofttrustedservicetags")] + public System.Nullable AllowMicrosoftTrustedServiceTags + { + get + { + return this.GetAttributeValue>("allowmicrosofttrustedservicetags"); + } + set + { + this.SetAttributeValue("allowmicrosofttrustedservicetags", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowmicrosofttrustedservicetagsname")] + public string allowmicrosofttrustedservicetagsName + { + get + { + if (this.FormattedValues.Contains("allowmicrosofttrustedservicetags")) + { + return this.FormattedValues["allowmicrosofttrustedservicetags"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether background offline synchronization in Microsoft Office Outlook is allowed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowofflinescheduledsyncs")] + public System.Nullable AllowOfflineScheduledSyncs + { + get + { + return this.GetAttributeValue>("allowofflinescheduledsyncs"); + } + set + { + this.SetAttributeValue("allowofflinescheduledsyncs", value); + } + } + + /// + /// Indicates whether scheduled synchronizations to Outlook are allowed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowoutlookscheduledsyncs")] + public System.Nullable AllowOutlookScheduledSyncs + { + get + { + return this.GetAttributeValue>("allowoutlookscheduledsyncs"); + } + set + { + this.SetAttributeValue("allowoutlookscheduledsyncs", value); + } + } + + /// + /// Control whether the organization Allow Redirect Legacy Admin Settings To Modern UI + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowredirectadminsettingstomodernui")] + public System.Nullable AllowRedirectAdminSettingsToModernUI + { + get + { + return this.GetAttributeValue>("allowredirectadminsettingstomodernui"); + } + set + { + this.SetAttributeValue("allowredirectadminsettingstomodernui", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowredirectadminsettingstomodernuiname")] + public string allowredirectadminsettingstomodernuiName + { + get + { + if (this.FormattedValues.Contains("allowredirectadminsettingstomodernui")) + { + return this.FormattedValues["allowredirectadminsettingstomodernui"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether users are allowed to send email to unresolved parties (parties must still have an email address). + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowunresolvedpartiesonemailsend")] + public System.Nullable AllowUnresolvedPartiesOnEmailSend + { + get + { + return this.GetAttributeValue>("allowunresolvedpartiesonemailsend"); + } + set + { + this.SetAttributeValue("allowunresolvedpartiesonemailsend", value); + } + } + + /// + /// Indicates whether individuals can select their form mode preference in their personal options. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowuserformmodepreference")] + public System.Nullable AllowUserFormModePreference + { + get + { + return this.GetAttributeValue>("allowuserformmodepreference"); + } + set + { + this.SetAttributeValue("allowuserformmodepreference", value); + } + } + + /// + /// Flag to indicate if allow end users to hide system views in model-driven apps is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowusershidingsystemviews")] + public System.Nullable AllowUsersHidingSystemViews + { + get + { + return this.GetAttributeValue>("allowusershidingsystemviews"); + } + set + { + this.SetAttributeValue("allowusershidingsystemviews", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowusershidingsystemviewsname")] + public string allowusershidingsystemviewsName + { + get + { + if (this.FormattedValues.Contains("allowusershidingsystemviews")) + { + return this.FormattedValues["allowusershidingsystemviews"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether the showing tablet application notification bars in a browser is allowed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowusersseeappdownloadmessage")] + public System.Nullable AllowUsersSeeAppdownloadMessage + { + get + { + return this.GetAttributeValue>("allowusersseeappdownloadmessage"); + } + set + { + this.SetAttributeValue("allowusersseeappdownloadmessage", value); + } + } + + /// + /// Indicates whether Web-based export of grids to Microsoft Office Excel is allowed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("allowwebexcelexport")] + public System.Nullable AllowWebExcelExport + { + get + { + return this.GetAttributeValue>("allowwebexcelexport"); + } + set + { + this.SetAttributeValue("allowwebexcelexport", value); + } + } + + /// + /// AM designator to use throughout Microsoft Dynamics CRM. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("amdesignator")] + public string AMDesignator + { + get + { + return this.GetAttributeValue("amdesignator"); + } + set + { + this.SetAttributeValue("amdesignator", value); + } + } + + /// + /// Indicates whether the appDesignerExperience is enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("appdesignerexperienceenabled")] + public System.Nullable AppDesignerExperienceEnabled + { + get + { + return this.GetAttributeValue>("appdesignerexperienceenabled"); + } + set + { + this.SetAttributeValue("appdesignerexperienceenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("applicationbasedaccesscontrolmodename")] + public string applicationbasedaccesscontrolmodeName + { + get + { + if (this.FormattedValues.Contains("applicationbasedaccesscontrolmode")) + { + return this.FormattedValues["applicationbasedaccesscontrolmode"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information on whether rich editing experience for Appointment is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("appointmentricheditorexperience")] + public System.Nullable AppointmentRichEditorExperience + { + get + { + return this.GetAttributeValue>("appointmentricheditorexperience"); + } + set + { + this.SetAttributeValue("appointmentricheditorexperience", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("appointmentricheditorexperiencename")] + public string appointmentricheditorexperienceName + { + get + { + if (this.FormattedValues.Contains("appointmentricheditorexperience")) + { + return this.FormattedValues["appointmentricheditorexperience"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information on whether Teams meeting experience for Appointment is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("appointmentwithteamsmeeting")] + public System.Nullable AppointmentWithTeamsMeeting + { + get + { + return this.GetAttributeValue>("appointmentwithteamsmeeting"); + } + set + { + this.SetAttributeValue("appointmentwithteamsmeeting", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("appointmentwithteamsmeetingname")] + public string appointmentwithteamsmeetingName + { + get + { + if (this.FormattedValues.Contains("appointmentwithteamsmeeting")) + { + return this.FormattedValues["appointmentwithteamsmeeting"]; + } + else + { + return default(string); + } + } + } + + /// + /// Whether Teams meetings experience for appointments is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("appointmentwithteamsmeetingv2")] + public System.Nullable AppointmentWithTeamsMeetingV2 + { + get + { + return this.GetAttributeValue>("appointmentwithteamsmeetingv2"); + } + set + { + this.SetAttributeValue("appointmentwithteamsmeetingv2", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("appointmentwithteamsmeetingv2name")] + public string appointmentwithteamsmeetingv2Name + { + get + { + if (this.FormattedValues.Contains("appointmentwithteamsmeetingv2")) + { + return this.FormattedValues["appointmentwithteamsmeetingv2"]; + } + else + { + return default(string); + } + } + } + + /// + /// Audit Retention Period settings stored in Organization Database. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("auditretentionperiod")] + public System.Nullable AuditRetentionPeriod + { + get + { + return this.GetAttributeValue>("auditretentionperiod"); + } + set + { + this.SetAttributeValue("auditretentionperiod", value); + } + } + + /// + /// Audit Retention Period settings stored in Organization Database. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("auditretentionperiodv2")] + public System.Nullable AuditRetentionPeriodV2 + { + get + { + return this.GetAttributeValue>("auditretentionperiodv2"); + } + set + { + this.SetAttributeValue("auditretentionperiodv2", value); + } + } + + /// + /// Audit Settings of the organization + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("auditsettings")] + public string AuditSettings + { + get + { + return this.GetAttributeValue("auditsettings"); + } + set + { + this.SetAttributeValue("auditsettings", value); + } + } + + /// + /// Select whether to auto apply the default customer entitlement on case creation. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("autoapplydefaultoncasecreate")] + public System.Nullable AutoApplyDefaultonCaseCreate + { + get + { + return this.GetAttributeValue>("autoapplydefaultoncasecreate"); + } + set + { + this.SetAttributeValue("autoapplydefaultoncasecreate", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("autoapplydefaultoncasecreatename")] + public string AutoApplyDefaultonCaseCreateName + { + get + { + if (this.FormattedValues.Contains("autoapplydefaultoncasecreate")) + { + return this.FormattedValues["autoapplydefaultoncasecreate"]; + } + else + { + return default(string); + } + } + } + + /// + /// Select whether to auto apply the default customer entitlement on case update. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("autoapplydefaultoncaseupdate")] + public System.Nullable AutoApplyDefaultonCaseUpdate + { + get + { + return this.GetAttributeValue>("autoapplydefaultoncaseupdate"); + } + set + { + this.SetAttributeValue("autoapplydefaultoncaseupdate", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("autoapplydefaultoncaseupdatename")] + public string AutoApplyDefaultonCaseUpdateName + { + get + { + if (this.FormattedValues.Contains("autoapplydefaultoncaseupdate")) + { + return this.FormattedValues["autoapplydefaultoncaseupdate"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether to Auto-apply SLA on case record update after SLA was manually applied. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("autoapplysla")] + public System.Nullable AutoApplySLA + { + get + { + return this.GetAttributeValue>("autoapplysla"); + } + set + { + this.SetAttributeValue("autoapplysla", value); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("azureschedulerjobcollectionname")] + public string AzureSchedulerJobCollectionName + { + get + { + return this.GetAttributeValue("azureschedulerjobcollectionname"); + } + set + { + this.SetAttributeValue("azureschedulerjobcollectionname", value); + } + } + + /// + /// Unique identifier of the base currency of the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("basecurrencyid")] + public Microsoft.Xrm.Sdk.EntityReference BaseCurrencyId + { + get + { + return this.GetAttributeValue("basecurrencyid"); + } + set + { + this.SetAttributeValue("basecurrencyid", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("basecurrencyidname")] + public string BaseCurrencyIdName + { + get + { + if (this.FormattedValues.Contains("basecurrencyid")) + { + return this.FormattedValues["basecurrencyid"]; + } + else + { + return default(string); + } + } + } + + /// + /// Number of decimal places that can be used for the base currency. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("basecurrencyprecision")] + public System.Nullable BaseCurrencyPrecision + { + get + { + return this.GetAttributeValue>("basecurrencyprecision"); + } + } + + /// + /// Symbol used for the base currency. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("basecurrencysymbol")] + public string BaseCurrencySymbol + { + get + { + return this.GetAttributeValue("basecurrencysymbol"); + } + } + + /// + /// Api Key to be used in requests to Bing Maps services. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("bingmapsapikey")] + public string BingMapsApiKey + { + get + { + return this.GetAttributeValue("bingmapsapikey"); + } + set + { + this.SetAttributeValue("bingmapsapikey", value); + } + } + + /// + /// Information that specifies the Applications that are in block list for the accessing DV resources. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("blockedapplicationsfordvaccess")] + public string BlockedApplicationsForDVAccess + { + get + { + return this.GetAttributeValue("blockedapplicationsfordvaccess"); + } + set + { + this.SetAttributeValue("blockedapplicationsfordvaccess", value); + } + } + + /// + /// Prevent upload or download of certain attachment types that are considered dangerous. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("blockedattachments")] + public string BlockedAttachments + { + get + { + return this.GetAttributeValue("blockedattachments"); + } + set + { + this.SetAttributeValue("blockedattachments", value); + } + } + + /// + /// Prevent upload or download of certain mime types that are considered dangerous. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("blockedmimetypes")] + public string BlockedMimeTypes + { + get + { + return this.GetAttributeValue("blockedmimetypes"); + } + set + { + this.SetAttributeValue("blockedmimetypes", value); + } + } + + /// + /// Display cards in expanded state for interactive dashboard + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("bounddashboarddefaultcardexpanded")] + public System.Nullable BoundDashboardDefaultCardExpanded + { + get + { + return this.GetAttributeValue>("bounddashboarddefaultcardexpanded"); + } + set + { + this.SetAttributeValue("bounddashboarddefaultcardexpanded", value); + } + } + + /// + /// Prefix used for bulk operation numbering. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("bulkoperationprefix")] + public string BulkOperationPrefix + { + get + { + return this.GetAttributeValue("bulkoperationprefix"); + } + set + { + this.SetAttributeValue("bulkoperationprefix", value); + } + } + + /// + /// BusinessCardOptions + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("businesscardoptions")] + public string BusinessCardOptions + { + get + { + return this.GetAttributeValue("businesscardoptions"); + } + set + { + this.SetAttributeValue("businesscardoptions", value); + } + } + + /// + /// Unique identifier of the business closure calendar of organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("businessclosurecalendarid")] + public System.Nullable BusinessClosureCalendarId + { + get + { + return this.GetAttributeValue>("businessclosurecalendarid"); + } + set + { + this.SetAttributeValue("businessclosurecalendarid", value); + } + } + + /// + /// Calendar type for the system. Set to Gregorian US by default. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("calendartype")] + public System.Nullable CalendarType + { + get + { + return this.GetAttributeValue>("calendartype"); + } + set + { + this.SetAttributeValue("calendartype", value); + } + } + + /// + /// Prefix used for campaign numbering. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("campaignprefix")] + public string CampaignPrefix + { + get + { + return this.GetAttributeValue("campaignprefix"); + } + set + { + this.SetAttributeValue("campaignprefix", value); + } + } + + /// + /// Indicates whether the organization can opt out of the new Relevance search experience (released in Oct 2020) + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("canoptoutnewsearchexperience")] + public System.Nullable CanOptOutNewSearchExperience + { + get + { + return this.GetAttributeValue>("canoptoutnewsearchexperience"); + } + set + { + this.SetAttributeValue("canoptoutnewsearchexperience", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("canoptoutnewsearchexperiencename")] + public string canoptoutnewsearchexperienceName + { + get + { + if (this.FormattedValues.Contains("canoptoutnewsearchexperience")) + { + return this.FormattedValues["canoptoutnewsearchexperience"]; + } + else + { + return default(string); + } + } + } + + /// + /// Flag to cascade Update on incident. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("cascadestatusupdate")] + public System.Nullable CascadeStatusUpdate + { + get + { + return this.GetAttributeValue>("cascadestatusupdate"); + } + set + { + this.SetAttributeValue("cascadestatusupdate", value); + } + } + + /// + /// Prefix to use for all cases throughout Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("caseprefix")] + public string CasePrefix + { + get + { + return this.GetAttributeValue("caseprefix"); + } + set + { + this.SetAttributeValue("caseprefix", value); + } + } + + /// + /// Type the prefix to use for all categories in Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("categoryprefix")] + public string CategoryPrefix + { + get + { + return this.GetAttributeValue("categoryprefix"); + } + set + { + this.SetAttributeValue("categoryprefix", value); + } + } + + /// + /// Client Features to be enabled as an XML BLOB. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("clientfeatureset")] + public string ClientFeatureSet + { + get + { + return this.GetAttributeValue("clientfeatureset"); + } + set + { + this.SetAttributeValue("clientfeatureset", value); + } + } + + /// + /// Policy configuration for CSP + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("contentsecuritypolicyconfiguration")] + public string ContentSecurityPolicyConfiguration + { + get + { + return this.GetAttributeValue("contentsecuritypolicyconfiguration"); + } + set + { + this.SetAttributeValue("contentsecuritypolicyconfiguration", value); + } + } + + /// + /// Content Security Policy configuration for Canvas apps. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("contentsecuritypolicyconfigurationforcanvas")] + public string ContentSecurityPolicyConfigurationForCanvas + { + get + { + return this.GetAttributeValue("contentsecuritypolicyconfigurationforcanvas"); + } + set + { + this.SetAttributeValue("contentsecuritypolicyconfigurationforcanvas", value); + } + } + + /// + /// Content Security Policy Options. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("contentsecuritypolicyoptions")] + public System.Nullable ContentSecurityPolicyOptions + { + get + { + return this.GetAttributeValue>("contentsecuritypolicyoptions"); + } + set + { + this.SetAttributeValue("contentsecuritypolicyoptions", value); + } + } + + /// + /// Content Security Policy Report Uri. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("contentsecuritypolicyreporturi")] + public string ContentSecurityPolicyReportUri + { + get + { + return this.GetAttributeValue("contentsecuritypolicyreporturi"); + } + set + { + this.SetAttributeValue("contentsecuritypolicyreporturi", value); + } + } + + /// + /// Prefix to use for all contracts throughout Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("contractprefix")] + public string ContractPrefix + { + get + { + return this.GetAttributeValue("contractprefix"); + } + set + { + this.SetAttributeValue("contractprefix", value); + } + } + + /// + /// Refresh rate for copresence data in seconds. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("copresencerefreshrate")] + public System.Nullable CopresenceRefreshRate + { + get + { + return this.GetAttributeValue>("copresencerefreshrate"); + } + set + { + this.SetAttributeValue("copresencerefreshrate", value); + } + } + + /// + /// Indicates whether the feature CortanaProactiveExperience Flow processes should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("cortanaproactiveexperienceenabled")] + public System.Nullable CortanaProactiveExperienceEnabled + { + get + { + return this.GetAttributeValue>("cortanaproactiveexperienceenabled"); + } + set + { + this.SetAttributeValue("cortanaproactiveexperienceenabled", value); + } + } + + /// + /// Unique identifier of the user who created the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createdby")] + public Microsoft.Xrm.Sdk.EntityReference CreatedBy + { + get + { + return this.GetAttributeValue("createdby"); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createdbyname")] + public string CreatedByName + { + get + { + if (this.FormattedValues.Contains("createdby")) + { + return this.FormattedValues["createdby"]; + } + else + { + return default(string); + } + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createdbyyominame")] + public string CreatedByYomiName + { + get + { + if (this.FormattedValues.Contains("createdby")) + { + return this.FormattedValues["createdby"]; + } + else + { + return default(string); + } + } + } + + /// + /// Date and time when the organization was created. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createdon")] + public System.Nullable CreatedOn + { + get + { + return this.GetAttributeValue>("createdon"); + } + } + + /// + /// Unique identifier of the delegate user who created the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createdonbehalfby")] + public Microsoft.Xrm.Sdk.EntityReference CreatedOnBehalfBy + { + get + { + return this.GetAttributeValue("createdonbehalfby"); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createdonbehalfbyname")] + public string CreatedOnBehalfByName + { + get + { + if (this.FormattedValues.Contains("createdonbehalfby")) + { + return this.FormattedValues["createdonbehalfby"]; + } + else + { + return default(string); + } + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createdonbehalfbyyominame")] + public string CreatedOnBehalfByYomiName + { + get + { + if (this.FormattedValues.Contains("createdonbehalfby")) + { + return this.FormattedValues["createdonbehalfby"]; + } + else + { + return default(string); + } + } + } + + /// + /// Enable Initial state of newly created products to be Active instead of Draft + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("createproductswithoutparentinactivestate")] + public System.Nullable CreateProductsWithoutParentInActiveState + { + get + { + return this.GetAttributeValue>("createproductswithoutparentinactivestate"); + } + set + { + this.SetAttributeValue("createproductswithoutparentinactivestate", value); + } + } + + /// + /// Number of decimal places that can be used for currency. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currencydecimalprecision")] + public System.Nullable CurrencyDecimalPrecision + { + get + { + return this.GetAttributeValue>("currencydecimalprecision"); + } + set + { + this.SetAttributeValue("currencydecimalprecision", value); + } + } + + /// + /// Indicates whether to display money fields with currency code or currency symbol. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currencydisplayoption")] + public virtual organization_currencydisplayoption? CurrencyDisplayOption + { + get + { + return ((organization_currencydisplayoption?)(EntityOptionSetEnum.GetEnum(this, "currencydisplayoption"))); + } + set + { + this.SetAttributeValue("currencydisplayoption", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + /// + /// Information about how currency symbols are placed throughout Microsoft Dynamics CRM. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currencyformatcode")] + public virtual organization_currencyformatcode? CurrencyFormatCode + { + get + { + return ((organization_currencyformatcode?)(EntityOptionSetEnum.GetEnum(this, "currencyformatcode"))); + } + set + { + this.SetAttributeValue("currencyformatcode", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currencyformatcodename")] + public string CurrencyFormatCodeName + { + get + { + if (this.FormattedValues.Contains("currencyformatcode")) + { + return this.FormattedValues["currencyformatcode"]; + } + else + { + return default(string); + } + } + } + + /// + /// Symbol used for currency throughout Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currencysymbol")] + public string CurrencySymbol + { + get + { + return this.GetAttributeValue("currencysymbol"); + } + set + { + this.SetAttributeValue("currencysymbol", value); + } + } + + /// + /// Current bulk operation number. Deprecated. Use SetAutoNumberSeed message. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currentbulkoperationnumber")] + [System.ObsoleteAttribute()] + public System.Nullable CurrentBulkOperationNumber + { + get + { + return this.GetAttributeValue>("currentbulkoperationnumber"); + } + set + { + this.SetAttributeValue("currentbulkoperationnumber", value); + } + } + + /// + /// Current campaign number. Deprecated. Use SetAutoNumberSeed message. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currentcampaignnumber")] + [System.ObsoleteAttribute()] + public System.Nullable CurrentCampaignNumber + { + get + { + return this.GetAttributeValue>("currentcampaignnumber"); + } + set + { + this.SetAttributeValue("currentcampaignnumber", value); + } + } + + /// + /// First case number to use. Deprecated. Use SetAutoNumberSeed message. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currentcasenumber")] + [System.ObsoleteAttribute()] + public System.Nullable CurrentCaseNumber + { + get + { + return this.GetAttributeValue>("currentcasenumber"); + } + set + { + this.SetAttributeValue("currentcasenumber", value); + } + } + + /// + /// Enter the first number to use for Categories. Deprecated. Use SetAutoNumberSeed message. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currentcategorynumber")] + [System.ObsoleteAttribute()] + public System.Nullable CurrentCategoryNumber + { + get + { + return this.GetAttributeValue>("currentcategorynumber"); + } + set + { + this.SetAttributeValue("currentcategorynumber", value); + } + } + + /// + /// First contract number to use. Deprecated. Use SetAutoNumberSeed message. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currentcontractnumber")] + [System.ObsoleteAttribute()] + public System.Nullable CurrentContractNumber + { + get + { + return this.GetAttributeValue>("currentcontractnumber"); + } + set + { + this.SetAttributeValue("currentcontractnumber", value); + } + } + + /// + /// Import sequence to use. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currentimportsequencenumber")] + public System.Nullable CurrentImportSequenceNumber + { + get + { + return this.GetAttributeValue>("currentimportsequencenumber"); + } + } + + /// + /// First invoice number to use. Deprecated. Use SetAutoNumberSeed message. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currentinvoicenumber")] + [System.ObsoleteAttribute()] + public System.Nullable CurrentInvoiceNumber + { + get + { + return this.GetAttributeValue>("currentinvoicenumber"); + } + set + { + this.SetAttributeValue("currentinvoicenumber", value); + } + } + + /// + /// Enter the first number to use for knowledge articles. Deprecated. Use SetAutoNumberSeed message. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currentkanumber")] + [System.ObsoleteAttribute()] + public System.Nullable CurrentKaNumber + { + get + { + return this.GetAttributeValue>("currentkanumber"); + } + set + { + this.SetAttributeValue("currentkanumber", value); + } + } + + /// + /// First article number to use. Deprecated. Use SetAutoNumberSeed message. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currentkbnumber")] + [System.ObsoleteAttribute()] + public System.Nullable CurrentKbNumber + { + get + { + return this.GetAttributeValue>("currentkbnumber"); + } + set + { + this.SetAttributeValue("currentkbnumber", value); + } + } + + /// + /// First order number to use. Deprecated. Use SetAutoNumberSeed message. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currentordernumber")] + [System.ObsoleteAttribute()] + public System.Nullable CurrentOrderNumber + { + get + { + return this.GetAttributeValue>("currentordernumber"); + } + set + { + this.SetAttributeValue("currentordernumber", value); + } + } + + /// + /// First parsed table number to use. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currentparsedtablenumber")] + public System.Nullable CurrentParsedTableNumber + { + get + { + return this.GetAttributeValue>("currentparsedtablenumber"); + } + } + + /// + /// First quote number to use. Deprecated. Use SetAutoNumberSeed message. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("currentquotenumber")] + [System.ObsoleteAttribute()] + public System.Nullable CurrentQuoteNumber + { + get + { + return this.GetAttributeValue>("currentquotenumber"); + } + set + { + this.SetAttributeValue("currentquotenumber", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("dateformatcodename")] + public string DateFormatCodeName + { + get + { + if (this.FormattedValues.Contains("dateformatcode")) + { + return this.FormattedValues["dateformatcode"]; + } + else + { + return default(string); + } + } + } + + /// + /// String showing how the date is displayed throughout Microsoft CRM. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("dateformatstring")] + public string DateFormatString + { + get + { + return this.GetAttributeValue("dateformatstring"); + } + set + { + this.SetAttributeValue("dateformatstring", value); + } + } + + /// + /// Character used to separate the month, the day, and the year in dates throughout Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("dateseparator")] + public string DateSeparator + { + get + { + return this.GetAttributeValue("dateseparator"); + } + set + { + this.SetAttributeValue("dateseparator", value); + } + } + + /// + /// Number of days before we migrate email description to blob. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("daysbeforeemaildescriptionismigrated")] + public System.Nullable DaysBeforeEmailDescriptionIsMigrated + { + get + { + return this.GetAttributeValue>("daysbeforeemaildescriptionismigrated"); + } + set + { + this.SetAttributeValue("daysbeforeemaildescriptionismigrated", value); + } + } + + /// + /// Days of inactivity before sync is disabled for a Teams Chat. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("daysbeforeinactiveteamschatsyncdisabled")] + public System.Nullable DaysBeforeInactiveTeamsChatSyncDisabled + { + get + { + return this.GetAttributeValue>("daysbeforeinactiveteamschatsyncdisabled"); + } + set + { + this.SetAttributeValue("daysbeforeinactiveteamschatsyncdisabled", value); + } + } + + /// + /// The maximum value for the Mobile Offline setting Days since record last modified + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("dayssincerecordlastmodifiedmaxvalue")] + public System.Nullable DaysSinceRecordLastModifiedMaxValue + { + get + { + return this.GetAttributeValue>("dayssincerecordlastmodifiedmaxvalue"); + } + } + + /// + /// Symbol used for decimal in Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("decimalsymbol")] + public string DecimalSymbol + { + get + { + return this.GetAttributeValue("decimalsymbol"); + } + set + { + this.SetAttributeValue("decimalsymbol", value); + } + } + + /// + /// Text area to enter default country code. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("defaultcountrycode")] + public string DefaultCountryCode + { + get + { + return this.GetAttributeValue("defaultcountrycode"); + } + set + { + this.SetAttributeValue("defaultcountrycode", value); + } + } + + /// + /// Name of the default crm custom. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("defaultcrmcustomname")] + public string DefaultCrmCustomName + { + get + { + return this.GetAttributeValue("defaultcrmcustomname"); + } + set + { + this.SetAttributeValue("defaultcrmcustomname", value); + } + } + + /// + /// Unique identifier of the default email server profile. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("defaultemailserverprofileid")] + public Microsoft.Xrm.Sdk.EntityReference DefaultEmailServerProfileId + { + get + { + return this.GetAttributeValue("defaultemailserverprofileid"); + } + set + { + this.SetAttributeValue("defaultemailserverprofileid", value); + } + } + + /// + /// Name of the email server profile to be used as default profile for the mailboxes. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("defaultemailserverprofileidname")] + public string DefaultEmailServerProfileIdName + { + get + { + if (this.FormattedValues.Contains("defaultemailserverprofileid")) + { + return this.FormattedValues["defaultemailserverprofileid"]; + } + else + { + return default(string); + } + } + } + + /// + /// XML string containing the default email settings that are applied when a user or queue is created. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("defaultemailsettings")] + public string DefaultEmailSettings + { + get + { + return this.GetAttributeValue("defaultemailsettings"); + } + set + { + this.SetAttributeValue("defaultemailsettings", value); + } + } + + /// + /// Unique identifier of the default mobile offline profile. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("defaultmobileofflineprofileid")] + public Microsoft.Xrm.Sdk.EntityReference DefaultMobileOfflineProfileId + { + get + { + return this.GetAttributeValue("defaultmobileofflineprofileid"); + } + set + { + this.SetAttributeValue("defaultmobileofflineprofileid", value); + } + } + + /// + /// Name of the default mobile offline profile to be used as default profile for mobile offline. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("defaultmobileofflineprofileidname")] + public string DefaultMobileOfflineProfileIdName + { + get + { + if (this.FormattedValues.Contains("defaultmobileofflineprofileid")) + { + return this.FormattedValues["defaultmobileofflineprofileid"]; + } + else + { + return default(string); + } + } + } + + /// + /// Type of default recurrence end range date. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("defaultrecurrenceendrangetype")] + public virtual organization_defaultrecurrenceendrangetype? DefaultRecurrenceEndRangeType + { + get + { + return ((organization_defaultrecurrenceendrangetype?)(EntityOptionSetEnum.GetEnum(this, "defaultrecurrenceendrangetype"))); + } + set + { + this.SetAttributeValue("defaultrecurrenceendrangetype", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("defaultrecurrenceendrangetypename")] + public string DefaultRecurrenceEndRangeTypeName + { + get + { + if (this.FormattedValues.Contains("defaultrecurrenceendrangetype")) + { + return this.FormattedValues["defaultrecurrenceendrangetype"]; + } + else + { + return default(string); + } + } + set + { + this.SetAttributeValue("defaultrecurrenceendrangetypename", value); + } + } + + /// + /// Default theme data for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("defaultthemedata")] + public string DefaultThemeData + { + get + { + return this.GetAttributeValue("defaultthemedata"); + } + set + { + this.SetAttributeValue("defaultthemedata", value); + } + } + + /// + /// Unique identifier of the delegated admin user for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("delegatedadminuserid")] + public System.Nullable DelegatedAdminUserId + { + get + { + return this.GetAttributeValue>("delegatedadminuserid"); + } + set + { + this.SetAttributeValue("delegatedadminuserid", value); + } + } + + /// + /// Default time to live in minutes for new desktop flow queue log records. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("desktopflowqueuelogsttlinminutes")] + public System.Nullable DesktopFlowQueueLogsTtlInMinutes + { + get + { + return this.GetAttributeValue>("desktopflowqueuelogsttlinminutes"); + } + set + { + this.SetAttributeValue("desktopflowqueuelogsttlinminutes", value); + } + } + + /// + /// Toggle the activation of the Power Automate Desktop Flow run action logs. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("desktopflowrunactionlogsstatus")] + public virtual organization_desktopflowrunactionlogsstatus? DesktopFlowRunActionLogsStatus + { + get + { + return ((organization_desktopflowrunactionlogsstatus?)(EntityOptionSetEnum.GetEnum(this, "desktopflowrunactionlogsstatus"))); + } + set + { + this.SetAttributeValue("desktopflowrunactionlogsstatus", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("desktopflowrunactionlogsstatusname")] + public string desktopflowrunactionlogsstatusName + { + get + { + if (this.FormattedValues.Contains("desktopflowrunactionlogsstatus")) + { + return this.FormattedValues["desktopflowrunactionlogsstatus"]; + } + else + { + return default(string); + } + } + } + + /// + /// Where the Power Automate Desktop Flow Run Action logs are stored. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("desktopflowrunactionlogversion")] + public virtual organization_desktopflowrunactionlogversion? DesktopFlowRunActionLogVersion + { + get + { + return ((organization_desktopflowrunactionlogversion?)(EntityOptionSetEnum.GetEnum(this, "desktopflowrunactionlogversion"))); + } + set + { + this.SetAttributeValue("desktopflowrunactionlogversion", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("desktopflowrunactionlogversionname")] + public string desktopflowrunactionlogversionName + { + get + { + if (this.FormattedValues.Contains("desktopflowrunactionlogversion")) + { + return this.FormattedValues["desktopflowrunactionlogversion"]; + } + else + { + return default(string); + } + } + } + + /// + /// Reason for disabling the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("disabledreason")] + public string DisabledReason + { + get + { + return this.GetAttributeValue("disabledreason"); + } + } + + /// + /// Indicates whether Social Care is disabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("disablesocialcare")] + public System.Nullable DisableSocialCare + { + get + { + return this.GetAttributeValue>("disablesocialcare"); + } + set + { + this.SetAttributeValue("disablesocialcare", value); + } + } + + /// + /// Disable sharing system labels for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("disablesystemlabelscachesharing")] + public System.Nullable DisableSystemLabelsCacheSharing + { + get + { + return this.GetAttributeValue>("disablesystemlabelscachesharing"); + } + set + { + this.SetAttributeValue("disablesystemlabelscachesharing", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("disablesystemlabelscachesharingname")] + public string disablesystemlabelscachesharingName + { + get + { + if (this.FormattedValues.Contains("disablesystemlabelscachesharing")) + { + return this.FormattedValues["disablesystemlabelscachesharing"]; + } + else + { + return default(string); + } + } + } + + /// + /// Discount calculation method for the QOOI product. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("discountcalculationmethod")] + public virtual organization_discountcalculationmethod? DiscountCalculationMethod + { + get + { + return ((organization_discountcalculationmethod?)(EntityOptionSetEnum.GetEnum(this, "discountcalculationmethod"))); + } + set + { + this.SetAttributeValue("discountcalculationmethod", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + /// + /// Indicates whether or not navigation tour is displayed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("displaynavigationtour")] + public System.Nullable DisplayNavigationTour + { + get + { + return this.GetAttributeValue>("displaynavigationtour"); + } + set + { + this.SetAttributeValue("displaynavigationtour", value); + } + } + + /// + /// Select if you want to use the Email Router or server-side synchronization for email processing. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("emailconnectionchannel")] + public virtual organization_emailconnectionchannel? EmailConnectionChannel + { + get + { + return ((organization_emailconnectionchannel?)(EntityOptionSetEnum.GetEnum(this, "emailconnectionchannel"))); + } + set + { + this.SetAttributeValue("emailconnectionchannel", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + /// + /// Flag to turn email correlation on or off. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("emailcorrelationenabled")] + public System.Nullable EmailCorrelationEnabled + { + get + { + return this.GetAttributeValue>("emailcorrelationenabled"); + } + set + { + this.SetAttributeValue("emailcorrelationenabled", value); + } + } + + /// + /// Normal polling frequency used for sending email in Microsoft Office Outlook. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("emailsendpollingperiod")] + public System.Nullable EmailSendPollingPeriod + { + get + { + return this.GetAttributeValue>("emailsendpollingperiod"); + } + set + { + this.SetAttributeValue("emailsendpollingperiod", value); + } + } + + /// + /// Determines whether records merged through the merge dialog in UCI are merged asynchronously + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableasyncmergeapiforuci")] + public System.Nullable EnableAsyncMergeAPIForUCI + { + get + { + return this.GetAttributeValue>("enableasyncmergeapiforuci"); + } + set + { + this.SetAttributeValue("enableasyncmergeapiforuci", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableasyncmergeapiforuciname")] + public string enableasyncmergeapiforuciName + { + get + { + if (this.FormattedValues.Contains("enableasyncmergeapiforuci")) + { + return this.FormattedValues["enableasyncmergeapiforuci"]; + } + else + { + return default(string); + } + } + } + + /// + /// Enable Integration with Bing Maps + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enablebingmapsintegration")] + public System.Nullable EnableBingMapsIntegration + { + get + { + return this.GetAttributeValue>("enablebingmapsintegration"); + } + set + { + this.SetAttributeValue("enablebingmapsintegration", value); + } + } + + /// + /// Note: By enabling this feature, you will also enable the automatic creation of enviornment variables when adding data sources for your apps. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enablecanvasappsinsolutionsbydefault")] + public System.Nullable EnableCanvasAppsInSolutionsByDefault + { + get + { + return this.GetAttributeValue>("enablecanvasappsinsolutionsbydefault"); + } + set + { + this.SetAttributeValue("enablecanvasappsinsolutionsbydefault", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enablecanvasappsinsolutionsbydefaultname")] + public string enablecanvasappsinsolutionsbydefaultName + { + get + { + if (this.FormattedValues.Contains("enablecanvasappsinsolutionsbydefault")) + { + return this.FormattedValues["enablecanvasappsinsolutionsbydefault"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether the creation of flows is within a solution by default for this organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableflowsinsolutionbydefault")] + public System.Nullable EnableFlowsInSolutionByDefault + { + get + { + return this.GetAttributeValue>("enableflowsinsolutionbydefault"); + } + set + { + this.SetAttributeValue("enableflowsinsolutionbydefault", value); + } + } + + /// + /// Organizations with this attribute set to true will be granted a grace period and excluded from the initial world wide enablement of 'creation of flows within a solution by default' functionality. Once the grace period expires, the functionality will be enabled in your organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableflowsinsolutionbydefaultgraceperiod")] + public System.Nullable EnableFlowsInSolutionByDefaultGracePeriod + { + get + { + return this.GetAttributeValue>("enableflowsinsolutionbydefaultgraceperiod"); + } + set + { + this.SetAttributeValue("enableflowsinsolutionbydefaultgraceperiod", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableflowsinsolutionbydefaultgraceperiodname")] + public string enableflowsinsolutionbydefaultgraceperiodName + { + get + { + if (this.FormattedValues.Contains("enableflowsinsolutionbydefaultgraceperiod")) + { + return this.FormattedValues["enableflowsinsolutionbydefaultgraceperiod"]; + } + else + { + return default(string); + } + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableflowsinsolutionbydefaultname")] + public string enableflowsinsolutionbydefaultName + { + get + { + if (this.FormattedValues.Contains("enableflowsinsolutionbydefault")) + { + return this.FormattedValues["enableflowsinsolutionbydefault"]; + } + else + { + return default(string); + } + } + } + + /// + /// Enable Integration with Immersive Skype + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableimmersiveskypeintegration")] + public System.Nullable EnableImmersiveSkypeIntegration + { + get + { + return this.GetAttributeValue>("enableimmersiveskypeintegration"); + } + set + { + this.SetAttributeValue("enableimmersiveskypeintegration", value); + } + } + + /// + /// Information that specifies whether IP based cookie binding is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableipbasedcookiebinding")] + public System.Nullable EnableIpBasedCookieBinding + { + get + { + return this.GetAttributeValue>("enableipbasedcookiebinding"); + } + set + { + this.SetAttributeValue("enableipbasedcookiebinding", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableipbasedcookiebindingname")] + public string enableipbasedcookiebindingName + { + get + { + if (this.FormattedValues.Contains("enableipbasedcookiebinding")) + { + return this.FormattedValues["enableipbasedcookiebinding"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information that specifies whether IP based firewall rule is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableipbasedfirewallrule")] + public System.Nullable EnableIpBasedFirewallRule + { + get + { + return this.GetAttributeValue>("enableipbasedfirewallrule"); + } + set + { + this.SetAttributeValue("enableipbasedfirewallrule", value); + } + } + + /// + /// Information that specifies whether IP based firewall rule is enabled in Audit Only Mode + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableipbasedfirewallruleinauditmode")] + public System.Nullable EnableIpBasedFirewallRuleInAuditMode + { + get + { + return this.GetAttributeValue>("enableipbasedfirewallruleinauditmode"); + } + set + { + this.SetAttributeValue("enableipbasedfirewallruleinauditmode", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableipbasedfirewallruleinauditmodename")] + public string enableipbasedfirewallruleinauditmodeName + { + get + { + if (this.FormattedValues.Contains("enableipbasedfirewallruleinauditmode")) + { + return this.FormattedValues["enableipbasedfirewallruleinauditmode"]; + } + else + { + return default(string); + } + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableipbasedfirewallrulename")] + public string enableipbasedfirewallruleName + { + get + { + if (this.FormattedValues.Contains("enableipbasedfirewallrule")) + { + return this.FormattedValues["enableipbasedfirewallrule"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information that specifies whether IP based SAS URI generation rule is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableipbasedstorageaccesssignaturerule")] + public System.Nullable EnableIpBasedStorageAccessSignatureRule + { + get + { + return this.GetAttributeValue>("enableipbasedstorageaccesssignaturerule"); + } + set + { + this.SetAttributeValue("enableipbasedstorageaccesssignaturerule", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableipbasedstorageaccesssignaturerulename")] + public string enableipbasedstorageaccesssignatureruleName + { + get + { + if (this.FormattedValues.Contains("enableipbasedstorageaccesssignaturerule")) + { + return this.FormattedValues["enableipbasedstorageaccesssignaturerule"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether the user has enabled or disabled Live Persona Card feature in UCI. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enablelivepersonacarduci")] + public System.Nullable EnableLivePersonaCardUCI + { + get + { + return this.GetAttributeValue>("enablelivepersonacarduci"); + } + set + { + this.SetAttributeValue("enablelivepersonacarduci", value); + } + } + + /// + /// Indicates whether the user has enabled or disabled LivePersonCardIntegration in Office. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enablelivepersoncardintegrationinoffice")] + public System.Nullable EnableLivePersonCardIntegrationInOffice + { + get + { + return this.GetAttributeValue>("enablelivepersoncardintegrationinoffice"); + } + set + { + this.SetAttributeValue("enablelivepersoncardintegrationinoffice", value); + } + } + + /// + /// Select to enable learning path auhtoring. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enablelpauthoring")] + public System.Nullable EnableLPAuthoring + { + get + { + return this.GetAttributeValue>("enablelpauthoring"); + } + set + { + this.SetAttributeValue("enablelpauthoring", value); + } + } + + /// + /// Control whether the organization Switch Maker Portal to Classic + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enablemakerswitchtoclassic")] + public System.Nullable EnableMakerSwitchToClassic + { + get + { + return this.GetAttributeValue>("enablemakerswitchtoclassic"); + } + set + { + this.SetAttributeValue("enablemakerswitchtoclassic", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enablemakerswitchtoclassicname")] + public string enablemakerswitchtoclassicName + { + get + { + if (this.FormattedValues.Contains("enablemakerswitchtoclassic")) + { + return this.FormattedValues["enablemakerswitchtoclassic"]; + } + else + { + return default(string); + } + } + } + + /// + /// Enable Integration with Microsoft Flow + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enablemicrosoftflowintegration")] + public System.Nullable EnableMicrosoftFlowIntegration + { + get + { + return this.GetAttributeValue>("enablemicrosoftflowintegration"); + } + set + { + this.SetAttributeValue("enablemicrosoftflowintegration", value); + } + } + + /// + /// Enable pricing calculations on a Create call. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enablepricingoncreate")] + public System.Nullable EnablePricingOnCreate + { + get + { + return this.GetAttributeValue>("enablepricingoncreate"); + } + set + { + this.SetAttributeValue("enablepricingoncreate", value); + } + } + + /// + /// Use Smart Matching. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enablesmartmatching")] + public System.Nullable EnableSmartMatching + { + get + { + return this.GetAttributeValue>("enablesmartmatching"); + } + set + { + this.SetAttributeValue("enablesmartmatching", value); + } + } + + /// + /// Leave empty to use default setting. Set to on/off to enable/disable CDN for UCI. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableunifiedclientcdn")] + public System.Nullable EnableUnifiedClientCDN + { + get + { + return this.GetAttributeValue>("enableunifiedclientcdn"); + } + set + { + this.SetAttributeValue("enableunifiedclientcdn", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableunifiedclientcdnname")] + public string enableunifiedclientcdnName + { + get + { + if (this.FormattedValues.Contains("enableunifiedclientcdn")) + { + return this.FormattedValues["enableunifiedclientcdn"]; + } + else + { + return default(string); + } + } + } + + /// + /// Enable site map and commanding update + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enableunifiedinterfaceshellrefresh")] + public System.Nullable EnableUnifiedInterfaceShellRefresh + { + get + { + return this.GetAttributeValue>("enableunifiedinterfaceshellrefresh"); + } + set + { + this.SetAttributeValue("enableunifiedinterfaceshellrefresh", value); + } + } + + /// + /// Organization setting to enforce read only plugins. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("enforcereadonlyplugins")] + public System.Nullable EnforceReadOnlyPlugins + { + get + { + return this.GetAttributeValue>("enforcereadonlyplugins"); + } + set + { + this.SetAttributeValue("enforcereadonlyplugins", value); + } + } + + /// + /// The default image for the entity. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("entityimage")] + public byte[] EntityImage + { + get + { + return this.GetAttributeValue("entityimage"); + } + set + { + this.SetAttributeValue("entityimage", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("entityimage_timestamp")] + public System.Nullable EntityImage_Timestamp + { + get + { + return this.GetAttributeValue>("entityimage_timestamp"); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("entityimage_url")] + public string EntityImage_URL + { + get + { + return this.GetAttributeValue("entityimage_url"); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("entityimageid")] + public System.Nullable EntityImageId + { + get + { + return this.GetAttributeValue>("entityimageid"); + } + } + + /// + /// Maximum number of days to keep change tracking deleted records + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("expirechangetrackingindays")] + public System.Nullable ExpireChangeTrackingInDays + { + get + { + return this.GetAttributeValue>("expirechangetrackingindays"); + } + set + { + this.SetAttributeValue("expirechangetrackingindays", value); + } + } + + /// + /// Maximum number of days before deleting inactive subscriptions. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("expiresubscriptionsindays")] + public System.Nullable ExpireSubscriptionsInDays + { + get + { + return this.GetAttributeValue>("expiresubscriptionsindays"); + } + set + { + this.SetAttributeValue("expiresubscriptionsindays", value); + } + } + + /// + /// Specify the base URL to use to look for external document suggestions. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("externalbaseurl")] + public string ExternalBaseUrl + { + get + { + return this.GetAttributeValue("externalbaseurl"); + } + set + { + this.SetAttributeValue("externalbaseurl", value); + } + } + + /// + /// XML string containing the ExternalPartyEnabled entities correlation keys for association of existing External Party instance entities to newly created IsExternalPartyEnabled entities.For internal use only + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("externalpartycorrelationkeys")] + public string ExternalPartyCorrelationKeys + { + get + { + return this.GetAttributeValue("externalpartycorrelationkeys"); + } + set + { + this.SetAttributeValue("externalpartycorrelationkeys", value); + } + } + + /// + /// XML string containing the ExternalPartyEnabled entities settings. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("externalpartyentitysettings")] + public string ExternalPartyEntitySettings + { + get + { + return this.GetAttributeValue("externalpartyentitysettings"); + } + set + { + this.SetAttributeValue("externalpartyentitysettings", value); + } + } + + /// + /// Features to be enabled as an XML BLOB. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("featureset")] + public string FeatureSet + { + get + { + return this.GetAttributeValue("featureset"); + } + set + { + this.SetAttributeValue("featureset", value); + } + } + + /// + /// Start date for the fiscal period that is to be used throughout Microsoft CRM. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalcalendarstart")] + public System.Nullable FiscalCalendarStart + { + get + { + return this.GetAttributeValue>("fiscalcalendarstart"); + } + set + { + this.SetAttributeValue("fiscalcalendarstart", value); + } + } + + /// + /// Information that specifies how the name of the fiscal period is displayed throughout Microsoft CRM. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalperiodformat")] + public string FiscalPeriodFormat + { + get + { + return this.GetAttributeValue("fiscalperiodformat"); + } + set + { + this.SetAttributeValue("fiscalperiodformat", value); + } + } + + /// + /// Format in which the fiscal period will be displayed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalperiodformatperiod")] + public virtual organization_fiscalperiodformat? FiscalPeriodFormatPeriod + { + get + { + return ((organization_fiscalperiodformat?)(EntityOptionSetEnum.GetEnum(this, "fiscalperiodformatperiod"))); + } + set + { + this.SetAttributeValue("fiscalperiodformatperiod", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalperiodformatperiodname")] + public string FiscalPeriodFormatPeriodName + { + get + { + if (this.FormattedValues.Contains("fiscalperiodformatperiod")) + { + return this.FormattedValues["fiscalperiodformatperiod"]; + } + else + { + return default(string); + } + } + } + + /// + /// Type of fiscal period used throughout Microsoft CRM. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalperiodtype")] + public System.Nullable FiscalPeriodType + { + get + { + return this.GetAttributeValue>("fiscalperiodtype"); + } + set + { + this.SetAttributeValue("fiscalperiodtype", value); + } + } + + /// + /// Information that specifies whether the fiscal settings have been updated. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalsettingsupdated")] + [System.ObsoleteAttribute()] + public System.Nullable FiscalSettingsUpdated + { + get + { + return this.GetAttributeValue>("fiscalsettingsupdated"); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalsettingsupdatedname")] + [System.ObsoleteAttribute()] + public string FiscalSettingsUpdatedName + { + get + { + if (this.FormattedValues.Contains("fiscalsettingsupdated")) + { + return this.FormattedValues["fiscalsettingsupdated"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information that specifies whether the fiscal year should be displayed based on the start date or the end date of the fiscal year. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalyeardisplaycode")] + public System.Nullable FiscalYearDisplayCode + { + get + { + return this.GetAttributeValue>("fiscalyeardisplaycode"); + } + set + { + this.SetAttributeValue("fiscalyeardisplaycode", value); + } + } + + /// + /// Information that specifies how the name of the fiscal year is displayed throughout Microsoft CRM. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalyearformat")] + public string FiscalYearFormat + { + get + { + return this.GetAttributeValue("fiscalyearformat"); + } + set + { + this.SetAttributeValue("fiscalyearformat", value); + } + } + + /// + /// Prefix for the display of the fiscal year. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalyearformatprefix")] + public virtual organization_fiscalyearformatprefix? FiscalYearFormatPrefix + { + get + { + return ((organization_fiscalyearformatprefix?)(EntityOptionSetEnum.GetEnum(this, "fiscalyearformatprefix"))); + } + set + { + this.SetAttributeValue("fiscalyearformatprefix", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalyearformatprefixname")] + public string FiscalYearFormatPrefixName + { + get + { + if (this.FormattedValues.Contains("fiscalyearformatprefix")) + { + return this.FormattedValues["fiscalyearformatprefix"]; + } + else + { + return default(string); + } + } + } + + /// + /// Suffix for the display of the fiscal year. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalyearformatsuffix")] + public virtual organization_fiscalyearformatsuffix? FiscalYearFormatSuffix + { + get + { + return ((organization_fiscalyearformatsuffix?)(EntityOptionSetEnum.GetEnum(this, "fiscalyearformatsuffix"))); + } + set + { + this.SetAttributeValue("fiscalyearformatsuffix", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalyearformatsuffixname")] + public string FiscalYearFormatSuffixName + { + get + { + if (this.FormattedValues.Contains("fiscalyearformatsuffix")) + { + return this.FormattedValues["fiscalyearformatsuffix"]; + } + else + { + return default(string); + } + } + } + + /// + /// Format for the year. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalyearformatyear")] + public virtual organization_fiscalyearformatyear? FiscalYearFormatYear + { + get + { + return ((organization_fiscalyearformatyear?)(EntityOptionSetEnum.GetEnum(this, "fiscalyearformatyear"))); + } + set + { + this.SetAttributeValue("fiscalyearformatyear", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalyearformatyearname")] + public string FiscalYearFormatYearName + { + get + { + if (this.FormattedValues.Contains("fiscalyearformatyear")) + { + return this.FormattedValues["fiscalyearformatyear"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information that specifies how the names of the fiscal year and the fiscal period should be connected when displayed together. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fiscalyearperiodconnect")] + public string FiscalYearPeriodConnect + { + get + { + return this.GetAttributeValue("fiscalyearperiodconnect"); + } + set + { + this.SetAttributeValue("fiscalyearperiodconnect", value); + } + } + + /// + /// Default time to live in minutes for new records in the Flow Logs entity. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("flowlogsttlinminutes")] + public System.Nullable FlowLogsTtlInMinutes + { + get + { + return this.GetAttributeValue>("flowlogsttlinminutes"); + } + set + { + this.SetAttributeValue("flowlogsttlinminutes", value); + } + } + + /// + /// Time to live (in seconds) for flow run + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("flowruntimetoliveinseconds")] + public System.Nullable FlowRunTimeToLiveInSeconds + { + get + { + return this.GetAttributeValue>("flowruntimetoliveinseconds"); + } + set + { + this.SetAttributeValue("flowruntimetoliveinseconds", value); + } + } + + /// + /// Order in which names are to be displayed throughout Microsoft CRM. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fullnameconventioncode")] + public virtual organization_fullnameconventioncode? FullNameConventionCode + { + get + { + return ((organization_fullnameconventioncode?)(EntityOptionSetEnum.GetEnum(this, "fullnameconventioncode"))); + } + set + { + this.SetAttributeValue("fullnameconventioncode", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("fullnameconventioncodename")] + public string FullNameConventionCodeName + { + get + { + if (this.FormattedValues.Contains("fullnameconventioncode")) + { + return this.FormattedValues["fullnameconventioncode"]; + } + else + { + return default(string); + } + } + } + + /// + /// Specifies the maximum number of months in future for which the recurring activities can be created. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("futureexpansionwindow")] + public System.Nullable FutureExpansionWindow + { + get + { + return this.GetAttributeValue>("futureexpansionwindow"); + } + set + { + this.SetAttributeValue("futureexpansionwindow", value); + } + } + + /// + /// Indicates whether alerts will be generated for errors. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("generatealertsforerrors")] + public System.Nullable GenerateAlertsForErrors + { + get + { + return this.GetAttributeValue>("generatealertsforerrors"); + } + set + { + this.SetAttributeValue("generatealertsforerrors", value); + } + } + + /// + /// Indicates whether alerts will be generated for information. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("generatealertsforinformation")] + public System.Nullable GenerateAlertsForInformation + { + get + { + return this.GetAttributeValue>("generatealertsforinformation"); + } + set + { + this.SetAttributeValue("generatealertsforinformation", value); + } + } + + /// + /// Indicates whether alerts will be generated for warnings. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("generatealertsforwarnings")] + public System.Nullable GenerateAlertsForWarnings + { + get + { + return this.GetAttributeValue>("generatealertsforwarnings"); + } + set + { + this.SetAttributeValue("generatealertsforwarnings", value); + } + } + + /// + /// Indicates whether Get Started content is enabled for this organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("getstartedpanecontentenabled")] + public System.Nullable GetStartedPaneContentEnabled + { + get + { + return this.GetAttributeValue>("getstartedpanecontentenabled"); + } + set + { + this.SetAttributeValue("getstartedpanecontentenabled", value); + } + } + + /// + /// Indicates whether the append URL parameters is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("globalappendurlparametersenabled")] + public System.Nullable GlobalAppendUrlParametersEnabled + { + get + { + return this.GetAttributeValue>("globalappendurlparametersenabled"); + } + set + { + this.SetAttributeValue("globalappendurlparametersenabled", value); + } + } + + /// + /// URL for the web page global help. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("globalhelpurl")] + public string GlobalHelpUrl + { + get + { + return this.GetAttributeValue("globalhelpurl"); + } + set + { + this.SetAttributeValue("globalhelpurl", value); + } + } + + /// + /// Indicates whether the customizable global help is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("globalhelpurlenabled")] + public System.Nullable GlobalHelpUrlEnabled + { + get + { + return this.GetAttributeValue>("globalhelpurlenabled"); + } + set + { + this.SetAttributeValue("globalhelpurlenabled", value); + } + } + + /// + /// Number of days after the goal's end date after which the rollup of the goal stops automatically. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("goalrollupexpirytime")] + public System.Nullable GoalRollupExpiryTime + { + get + { + return this.GetAttributeValue>("goalrollupexpirytime"); + } + set + { + this.SetAttributeValue("goalrollupexpirytime", value); + } + } + + /// + /// Number of hours between automatic rollup jobs . + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("goalrollupfrequency")] + public System.Nullable GoalRollupFrequency + { + get + { + return this.GetAttributeValue>("goalrollupfrequency"); + } + set + { + this.SetAttributeValue("goalrollupfrequency", value); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("grantaccesstonetworkservice")] + public System.Nullable GrantAccessToNetworkService + { + get + { + return this.GetAttributeValue>("grantaccesstonetworkservice"); + } + set + { + this.SetAttributeValue("grantaccesstonetworkservice", value); + } + } + + /// + /// Maximum difference allowed between subject keywords count of the email messaged to be correlated + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("hashdeltasubjectcount")] + public System.Nullable HashDeltaSubjectCount + { + get + { + return this.GetAttributeValue>("hashdeltasubjectcount"); + } + set + { + this.SetAttributeValue("hashdeltasubjectcount", value); + } + } + + /// + /// Filter Subject Keywords + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("hashfilterkeywords")] + public string HashFilterKeywords + { + get + { + return this.GetAttributeValue("hashfilterkeywords"); + } + set + { + this.SetAttributeValue("hashfilterkeywords", value); + } + } + + /// + /// Maximum number of subject keywords or recipients used for correlation + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("hashmaxcount")] + public System.Nullable HashMaxCount + { + get + { + return this.GetAttributeValue>("hashmaxcount"); + } + set + { + this.SetAttributeValue("hashmaxcount", value); + } + } + + /// + /// Minimum number of recipients required to match for email messaged to be correlated + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("hashminaddresscount")] + public System.Nullable HashMinAddressCount + { + get + { + return this.GetAttributeValue>("hashminaddresscount"); + } + set + { + this.SetAttributeValue("hashminaddresscount", value); + } + } + + /// + /// High contrast theme data for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("highcontrastthemedata")] + public string HighContrastThemeData + { + get + { + return this.GetAttributeValue("highcontrastthemedata"); + } + set + { + this.SetAttributeValue("highcontrastthemedata", value); + } + } + + /// + /// Indicates whether incoming email sent by internal Microsoft Dynamics 365 users or queues should be tracked. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ignoreinternalemail")] + public System.Nullable IgnoreInternalEmail + { + get + { + return this.GetAttributeValue>("ignoreinternalemail"); + } + set + { + this.SetAttributeValue("ignoreinternalemail", value); + } + } + + /// + /// Indicates whether an organization has consented to sharing search query data to help improve search results + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("improvesearchloggingenabled")] + public System.Nullable ImproveSearchLoggingEnabled + { + get + { + return this.GetAttributeValue>("improvesearchloggingenabled"); + } + set + { + this.SetAttributeValue("improvesearchloggingenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("improvesearchloggingenabledname")] + public string improvesearchloggingenabledName + { + get + { + if (this.FormattedValues.Contains("improvesearchloggingenabled")) + { + return this.FormattedValues["improvesearchloggingenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information that specifies whether Inactivity timeout is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("inactivitytimeoutenabled")] + public System.Nullable InactivityTimeoutEnabled + { + get + { + return this.GetAttributeValue>("inactivitytimeoutenabled"); + } + set + { + this.SetAttributeValue("inactivitytimeoutenabled", value); + } + } + + /// + /// Inactivity timeout in minutes + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("inactivitytimeoutinmins")] + public System.Nullable InactivityTimeoutInMins + { + get + { + return this.GetAttributeValue>("inactivitytimeoutinmins"); + } + set + { + this.SetAttributeValue("inactivitytimeoutinmins", value); + } + } + + /// + /// Inactivity timeout reminder in minutes + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("inactivitytimeoutreminderinmins")] + public System.Nullable InactivityTimeoutReminderInMins + { + get + { + return this.GetAttributeValue>("inactivitytimeoutreminderinmins"); + } + set + { + this.SetAttributeValue("inactivitytimeoutreminderinmins", value); + } + } + + /// + /// Setting for the Async Service Mailbox Queue. Defines the retrieval batch size of exchange server. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("incomingemailexchangeemailretrievalbatchsize")] + public System.Nullable IncomingEmailExchangeEmailRetrievalBatchSize + { + get + { + return this.GetAttributeValue>("incomingemailexchangeemailretrievalbatchsize"); + } + set + { + this.SetAttributeValue("incomingemailexchangeemailretrievalbatchsize", value); + } + } + + /// + /// Initial version of the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("initialversion")] + public string InitialVersion + { + get + { + return this.GetAttributeValue("initialversion"); + } + set + { + this.SetAttributeValue("initialversion", value); + } + } + + /// + /// Unique identifier of the integration user for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("integrationuserid")] + public System.Nullable IntegrationUserId + { + get + { + return this.GetAttributeValue>("integrationuserid"); + } + set + { + this.SetAttributeValue("integrationuserid", value); + } + } + + /// + /// Prefix to use for all invoice numbers throughout Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("invoiceprefix")] + public string InvoicePrefix + { + get + { + return this.GetAttributeValue("invoiceprefix"); + } + set + { + this.SetAttributeValue("invoiceprefix", value); + } + } + + /// + /// IP Based SAS mode. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ipbasedstorageaccesssignaturemode")] + public virtual ipbasedstorageaccesssignaturemode? IpBasedStorageAccessSignatureMode + { + get + { + return ((ipbasedstorageaccesssignaturemode?)(EntityOptionSetEnum.GetEnum(this, "ipbasedstorageaccesssignaturemode"))); + } + set + { + this.SetAttributeValue("ipbasedstorageaccesssignaturemode", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ipbasedstorageaccesssignaturemodename")] + public string ipbasedstorageaccesssignaturemodeName + { + get + { + if (this.FormattedValues.Contains("ipbasedstorageaccesssignaturemode")) + { + return this.FormattedValues["ipbasedstorageaccesssignaturemode"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether the feature Action Card should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isactioncardenabled")] + public System.Nullable IsActionCardEnabled + { + get + { + return this.GetAttributeValue>("isactioncardenabled"); + } + set + { + this.SetAttributeValue("isactioncardenabled", value); + } + } + + /// + /// Information that specifies whether Action Support Feature is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isactionsupportfeatureenabled")] + public System.Nullable IsActionSupportFeatureEnabled + { + get + { + return this.GetAttributeValue>("isactionsupportfeatureenabled"); + } + set + { + this.SetAttributeValue("isactionsupportfeatureenabled", value); + } + } + + /// + /// Indicates whether the feature Relationship Analytics should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isactivityanalysisenabled")] + public System.Nullable IsActivityAnalysisEnabled + { + get + { + return this.GetAttributeValue>("isactivityanalysisenabled"); + } + set + { + this.SetAttributeValue("isactivityanalysisenabled", value); + } + } + + /// + /// Indicates whether all money attributes are converted to decimal. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isallmoneydecimal")] + public System.Nullable IsAllMoneyDecimal + { + get + { + return this.GetAttributeValue>("isallmoneydecimal"); + } + } + + /// + /// Indicates whether loading of Microsoft Dynamics 365 in a browser window that does not have address, tool, and menu bars is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isappmode")] + public System.Nullable IsAppMode + { + get + { + return this.GetAttributeValue>("isappmode"); + } + set + { + this.SetAttributeValue("isappmode", value); + } + } + + /// + /// Enable or disable attachments sync for outlook and exchange. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isappointmentattachmentsyncenabled")] + public System.Nullable IsAppointmentAttachmentSyncEnabled + { + get + { + return this.GetAttributeValue>("isappointmentattachmentsyncenabled"); + } + set + { + this.SetAttributeValue("isappointmentattachmentsyncenabled", value); + } + } + + /// + /// Enable or disable assigned tasks sync for outlook and exchange. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isassignedtaskssyncenabled")] + public System.Nullable IsAssignedTasksSyncEnabled + { + get + { + return this.GetAttributeValue>("isassignedtaskssyncenabled"); + } + set + { + this.SetAttributeValue("isassignedtaskssyncenabled", value); + } + } + + /// + /// Enable or disable auditing of changes. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isauditenabled")] + public System.Nullable IsAuditEnabled + { + get + { + return this.GetAttributeValue>("isauditenabled"); + } + set + { + this.SetAttributeValue("isauditenabled", value); + } + } + + /// + /// Indicates whether the feature Auto Capture should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isautodatacaptureenabled")] + public System.Nullable IsAutoDataCaptureEnabled + { + get + { + return this.GetAttributeValue>("isautodatacaptureenabled"); + } + set + { + this.SetAttributeValue("isautodatacaptureenabled", value); + } + } + + /// + /// Indicates whether the V2 feature of Auto Capture should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isautodatacapturev2enabled")] + public System.Nullable IsAutoDataCaptureV2Enabled + { + get + { + return this.GetAttributeValue>("isautodatacapturev2enabled"); + } + set + { + this.SetAttributeValue("isautodatacapturev2enabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isautoinstallappford365inteamsenabled")] + public System.Nullable IsAutoInstallAppForD365InTeamsEnabled + { + get + { + return this.GetAttributeValue>("isautoinstallappford365inteamsenabled"); + } + set + { + this.SetAttributeValue("isautoinstallappford365inteamsenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isautoinstallappford365inteamsenabledname")] + public string isautoinstallappford365inteamsenabledName + { + get + { + if (this.FormattedValues.Contains("isautoinstallappford365inteamsenabled")) + { + return this.FormattedValues["isautoinstallappford365inteamsenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information on whether auto save is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isautosaveenabled")] + public System.Nullable IsAutoSaveEnabled + { + get + { + return this.GetAttributeValue>("isautosaveenabled"); + } + set + { + this.SetAttributeValue("isautosaveenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isbasecardstaticfielddataenabled")] + public System.Nullable IsBaseCardStaticFieldDataEnabled + { + get + { + return this.GetAttributeValue>("isbasecardstaticfielddataenabled"); + } + set + { + this.SetAttributeValue("isbasecardstaticfielddataenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isbasecardstaticfielddataenabledname")] + public string isbasecardstaticfielddataenabledName + { + get + { + if (this.FormattedValues.Contains("isbasecardstaticfielddataenabled")) + { + return this.FormattedValues["isbasecardstaticfielddataenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Determines whether users can make use of basic Geospatial featuers in Canvas apps. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isbasicgeospatialintegrationenabled")] + public System.Nullable IsBasicGeospatialIntegrationEnabled + { + get + { + return this.GetAttributeValue>("isbasicgeospatialintegrationenabled"); + } + set + { + this.SetAttributeValue("isbasicgeospatialintegrationenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isbasicgeospatialintegrationenabledname")] + public string isbasicgeospatialintegrationenabledName + { + get + { + if (this.FormattedValues.Contains("isbasicgeospatialintegrationenabled")) + { + return this.FormattedValues["isbasicgeospatialintegrationenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information that specifies whether BPF Entity Customization Feature is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isbpfentitycustomizationfeatureenabled")] + public System.Nullable IsBPFEntityCustomizationFeatureEnabled + { + get + { + return this.GetAttributeValue>("isbpfentitycustomizationfeatureenabled"); + } + set + { + this.SetAttributeValue("isbpfentitycustomizationfeatureenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("iscollaborationexperienceenabled")] + public System.Nullable IsCollaborationExperienceEnabled + { + get + { + return this.GetAttributeValue>("iscollaborationexperienceenabled"); + } + set + { + this.SetAttributeValue("iscollaborationexperienceenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("iscollaborationexperienceenabledname")] + public string iscollaborationexperienceenabledName + { + get + { + if (this.FormattedValues.Contains("iscollaborationexperienceenabled")) + { + return this.FormattedValues["iscollaborationexperienceenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information that specifies whether conflict detection for mobile client is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isconflictdetectionenabledformobileclient")] + public System.Nullable IsConflictDetectionEnabledForMobileClient + { + get + { + return this.GetAttributeValue>("isconflictdetectionenabledformobileclient"); + } + set + { + this.SetAttributeValue("isconflictdetectionenabledformobileclient", value); + } + } + + /// + /// Enable or disable mailing address sync for outlook and exchange. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("iscontactmailingaddresssyncenabled")] + public System.Nullable IsContactMailingAddressSyncEnabled + { + get + { + return this.GetAttributeValue>("iscontactmailingaddresssyncenabled"); + } + set + { + this.SetAttributeValue("iscontactmailingaddresssyncenabled", value); + } + } + + /// + /// Indicates whether Content Security Policy has been enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("iscontentsecuritypolicyenabled")] + public System.Nullable IsContentSecurityPolicyEnabled + { + get + { + return this.GetAttributeValue>("iscontentsecuritypolicyenabled"); + } + set + { + this.SetAttributeValue("iscontentsecuritypolicyenabled", value); + } + } + + /// + /// Indicates whether Content Security Policy has been enabled for this organization's Canvas apps. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("iscontentsecuritypolicyenabledforcanvas")] + public System.Nullable IsContentSecurityPolicyEnabledForCanvas + { + get + { + return this.GetAttributeValue>("iscontentsecuritypolicyenabledforcanvas"); + } + set + { + this.SetAttributeValue("iscontentsecuritypolicyenabledforcanvas", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("iscontentsecuritypolicyenabledforcanvasname")] + public string iscontentsecuritypolicyenabledforcanvasName + { + get + { + if (this.FormattedValues.Contains("iscontentsecuritypolicyenabledforcanvas")) + { + return this.FormattedValues["iscontentsecuritypolicyenabledforcanvas"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether Contextual email experience is enabled on this organization + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("iscontextualemailenabled")] + public System.Nullable IsContextualEmailEnabled + { + get + { + return this.GetAttributeValue>("iscontextualemailenabled"); + } + set + { + this.SetAttributeValue("iscontextualemailenabled", value); + } + } + + /// + /// Select to enable Contextual Help in UCI. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("iscontextualhelpenabled")] + public System.Nullable IsContextualHelpEnabled + { + get + { + return this.GetAttributeValue>("iscontextualhelpenabled"); + } + set + { + this.SetAttributeValue("iscontextualhelpenabled", value); + } + } + + /// + /// Determines whether users can provide feedback Copilot experiences. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("iscopilotfeedbackenabled")] + public System.Nullable IsCopilotFeedbackEnabled + { + get + { + return this.GetAttributeValue>("iscopilotfeedbackenabled"); + } + set + { + this.SetAttributeValue("iscopilotfeedbackenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("iscopilotfeedbackenabledname")] + public string iscopilotfeedbackenabledName + { + get + { + if (this.FormattedValues.Contains("iscopilotfeedbackenabled")) + { + return this.FormattedValues["iscopilotfeedbackenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether Custom Controls in canvas PowerApps feature has been enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("iscustomcontrolsincanvasappsenabled")] + public System.Nullable IsCustomControlsInCanvasAppsEnabled + { + get + { + return this.GetAttributeValue>("iscustomcontrolsincanvasappsenabled"); + } + set + { + this.SetAttributeValue("iscustomcontrolsincanvasappsenabled", value); + } + } + + /// + /// Enable or disable country code selection. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isdefaultcountrycodecheckenabled")] + public System.Nullable IsDefaultCountryCodeCheckEnabled + { + get + { + return this.GetAttributeValue>("isdefaultcountrycodecheckenabled"); + } + set + { + this.SetAttributeValue("isdefaultcountrycodecheckenabled", value); + } + } + + /// + /// Enable Delegation Access content + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isdelegateaccessenabled")] + public System.Nullable IsDelegateAccessEnabled + { + get + { + return this.GetAttributeValue>("isdelegateaccessenabled"); + } + set + { + this.SetAttributeValue("isdelegateaccessenabled", value); + } + } + + /// + /// Indicates whether the feature Action Hub should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isdelveactionhubintegrationenabled")] + public System.Nullable IsDelveActionHubIntegrationEnabled + { + get + { + return this.GetAttributeValue>("isdelveactionhubintegrationenabled"); + } + set + { + this.SetAttributeValue("isdelveactionhubintegrationenabled", value); + } + } + + /// + /// Indicates whether connection embedding in Desktop Flows is enabled in this organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isdesktopflowconnectionembeddingenabled")] + public System.Nullable IsDesktopFlowConnectionEmbeddingEnabled + { + get + { + return this.GetAttributeValue>("isdesktopflowconnectionembeddingenabled"); + } + set + { + this.SetAttributeValue("isdesktopflowconnectionembeddingenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isdesktopflowconnectionembeddingenabledname")] + public string isdesktopflowconnectionembeddingenabledName + { + get + { + if (this.FormattedValues.Contains("isdesktopflowconnectionembeddingenabled")) + { + return this.FormattedValues["isdesktopflowconnectionembeddingenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether the Desktop Flows UI Automation Runtime Repair for Attended feature for this organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isdesktopflowruntimerepairattendedenabled")] + public System.Nullable IsDesktopFlowRuntimeRepairAttendedEnabled + { + get + { + return this.GetAttributeValue>("isdesktopflowruntimerepairattendedenabled"); + } + set + { + this.SetAttributeValue("isdesktopflowruntimerepairattendedenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isdesktopflowruntimerepairattendedenabledname")] + public string isdesktopflowruntimerepairattendedenabledName + { + get + { + if (this.FormattedValues.Contains("isdesktopflowruntimerepairattendedenabled")) + { + return this.FormattedValues["isdesktopflowruntimerepairattendedenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether the Desktop Flows UI Automation Runtime Repair for Unattended feature for this organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isdesktopflowruntimerepairunattendedenabled")] + public System.Nullable IsDesktopFlowRuntimeRepairUnattendedEnabled + { + get + { + return this.GetAttributeValue>("isdesktopflowruntimerepairunattendedenabled"); + } + set + { + this.SetAttributeValue("isdesktopflowruntimerepairunattendedenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isdesktopflowruntimerepairunattendedenabledname")] + public string isdesktopflowruntimerepairunattendedenabledName + { + get + { + if (this.FormattedValues.Contains("isdesktopflowruntimerepairunattendedenabled")) + { + return this.FormattedValues["isdesktopflowruntimerepairunattendedenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether v2 schema for Desktop Flows is enabled in this organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isdesktopflowschemav2enabled")] + public System.Nullable IsDesktopFlowSchemaV2Enabled + { + get + { + return this.GetAttributeValue>("isdesktopflowschemav2enabled"); + } + set + { + this.SetAttributeValue("isdesktopflowschemav2enabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isdesktopflowschemav2enabledname")] + public string isdesktopflowschemav2enabledName + { + get + { + if (this.FormattedValues.Contains("isdesktopflowschemav2enabled")) + { + return this.FormattedValues["isdesktopflowschemav2enabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information that specifies whether the organization is disabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isdisabled")] + public System.Nullable IsDisabled + { + get + { + return this.GetAttributeValue>("isdisabled"); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isdisabledname")] + public string IsDisabledName + { + get + { + if (this.FormattedValues.Contains("isdisabled")) + { + return this.FormattedValues["isdisabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether duplicate detection of records is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isduplicatedetectionenabled")] + public System.Nullable IsDuplicateDetectionEnabled + { + get + { + return this.GetAttributeValue>("isduplicatedetectionenabled"); + } + set + { + this.SetAttributeValue("isduplicatedetectionenabled", value); + } + } + + /// + /// Indicates whether duplicate detection of records during import is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isduplicatedetectionenabledforimport")] + public System.Nullable IsDuplicateDetectionEnabledForImport + { + get + { + return this.GetAttributeValue>("isduplicatedetectionenabledforimport"); + } + set + { + this.SetAttributeValue("isduplicatedetectionenabledforimport", value); + } + } + + /// + /// Indicates whether duplicate detection of records during offline synchronization is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isduplicatedetectionenabledforofflinesync")] + public System.Nullable IsDuplicateDetectionEnabledForOfflineSync + { + get + { + return this.GetAttributeValue>("isduplicatedetectionenabledforofflinesync"); + } + set + { + this.SetAttributeValue("isduplicatedetectionenabledforofflinesync", value); + } + } + + /// + /// Indicates whether duplicate detection during online create or update is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isduplicatedetectionenabledforonlinecreateupdate")] + public System.Nullable IsDuplicateDetectionEnabledForOnlineCreateUpdate + { + get + { + return this.GetAttributeValue>("isduplicatedetectionenabledforonlinecreateupdate"); + } + set + { + this.SetAttributeValue("isduplicatedetectionenabledforonlinecreateupdate", value); + } + } + + /// + /// Information on whether Smart Email Address Validation is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isemailaddressvalidationenabled")] + public System.Nullable IsEmailAddressValidationEnabled + { + get + { + return this.GetAttributeValue>("isemailaddressvalidationenabled"); + } + set + { + this.SetAttributeValue("isemailaddressvalidationenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isemailaddressvalidationenabledname")] + public string isemailaddressvalidationenabledName + { + get + { + if (this.FormattedValues.Contains("isemailaddressvalidationenabled")) + { + return this.FormattedValues["isemailaddressvalidationenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Allow tracking recipient activity on sent emails. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isemailmonitoringallowed")] + public System.Nullable IsEmailMonitoringAllowed + { + get + { + return this.GetAttributeValue>("isemailmonitoringallowed"); + } + set + { + this.SetAttributeValue("isemailmonitoringallowed", value); + } + } + + /// + /// Enable Email Server Profile content filtering + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isemailserverprofilecontentfilteringenabled")] + public System.Nullable IsEmailServerProfileContentFilteringEnabled + { + get + { + return this.GetAttributeValue>("isemailserverprofilecontentfilteringenabled"); + } + set + { + this.SetAttributeValue("isemailserverprofilecontentfilteringenabled", value); + } + } + + /// + /// Indicates whether appmodule is enabled for all roles + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isenabledforallroles")] + public System.Nullable IsEnabledForAllRoles + { + get + { + return this.GetAttributeValue>("isenabledforallroles"); + } + set + { + this.SetAttributeValue("isenabledforallroles", value); + } + } + + /// + /// Indicates whether the organization's files are being stored in Azure. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isexternalfilestorageenabled")] + public System.Nullable IsExternalFileStorageEnabled + { + get + { + return this.GetAttributeValue>("isexternalfilestorageenabled"); + } + set + { + this.SetAttributeValue("isexternalfilestorageenabled", value); + } + } + + /// + /// Select whether data can be synchronized with an external search index. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isexternalsearchindexenabled")] + public System.Nullable IsExternalSearchIndexEnabled + { + get + { + return this.GetAttributeValue>("isexternalsearchindexenabled"); + } + set + { + this.SetAttributeValue("isexternalsearchindexenabled", value); + } + } + + /// + /// Indicates whether the fiscal period is displayed as the month number. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isfiscalperiodmonthbased")] + public System.Nullable IsFiscalPeriodMonthBased + { + get + { + return this.GetAttributeValue>("isfiscalperiodmonthbased"); + } + set + { + this.SetAttributeValue("isfiscalperiodmonthbased", value); + } + } + + /// + /// Select whether folders should be automatically created on SharePoint. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isfolderautocreatedonsp")] + public System.Nullable IsFolderAutoCreatedonSP + { + get + { + return this.GetAttributeValue>("isfolderautocreatedonsp"); + } + set + { + this.SetAttributeValue("isfolderautocreatedonsp", value); + } + } + + /// + /// Enable or disable folder based tracking for Server Side Sync. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isfolderbasedtrackingenabled")] + public System.Nullable IsFolderBasedTrackingEnabled + { + get + { + return this.GetAttributeValue>("isfolderbasedtrackingenabled"); + } + set + { + this.SetAttributeValue("isfolderbasedtrackingenabled", value); + } + } + + /// + /// Indicates whether full-text search for Quick Find entities should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isfulltextsearchenabled")] + public System.Nullable IsFullTextSearchEnabled + { + get + { + return this.GetAttributeValue>("isfulltextsearchenabled"); + } + set + { + this.SetAttributeValue("isfulltextsearchenabled", value); + } + } + + /// + /// Indicates whether geospatial capabilities leveraging Azure Maps are enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isgeospatialazuremapsintegrationenabled")] + public System.Nullable IsGeospatialAzureMapsIntegrationEnabled + { + get + { + return this.GetAttributeValue>("isgeospatialazuremapsintegrationenabled"); + } + set + { + this.SetAttributeValue("isgeospatialazuremapsintegrationenabled", value); + } + } + + /// + /// Enable Hierarchical Security Model + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ishierarchicalsecuritymodelenabled")] + public System.Nullable IsHierarchicalSecurityModelEnabled + { + get + { + return this.GetAttributeValue>("ishierarchicalsecuritymodelenabled"); + } + set + { + this.SetAttributeValue("ishierarchicalsecuritymodelenabled", value); + } + } + + /// + /// Indicates whether data collection for ideas in canvas PowerApps has been enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isideasdatacollectionenabled")] + public System.Nullable IsIdeasDataCollectionEnabled + { + get + { + return this.GetAttributeValue>("isideasdatacollectionenabled"); + } + set + { + this.SetAttributeValue("isideasdatacollectionenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isideasdatacollectionenabledname")] + public string isideasdatacollectionenabledName + { + get + { + if (this.FormattedValues.Contains("isideasdatacollectionenabled")) + { + return this.FormattedValues["isideasdatacollectionenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Give Consent to use LUIS in Dynamics 365 Bot + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isluisenabledford365bot")] + public System.Nullable IsLUISEnabledforD365Bot + { + get + { + return this.GetAttributeValue>("isluisenabledford365bot"); + } + set + { + this.SetAttributeValue("isluisenabledford365bot", value); + } + } + + /// + /// Enable or disable forced unlocking for Server Side Sync mailboxes. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ismailboxforcedunlockingenabled")] + public System.Nullable IsMailboxForcedUnlockingEnabled + { + get + { + return this.GetAttributeValue>("ismailboxforcedunlockingenabled"); + } + set + { + this.SetAttributeValue("ismailboxforcedunlockingenabled", value); + } + } + + /// + /// Enable or disable mailbox keep alive for Server Side Sync. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ismailboxinactivebackoffenabled")] + public System.Nullable IsMailboxInactiveBackoffEnabled + { + get + { + return this.GetAttributeValue>("ismailboxinactivebackoffenabled"); + } + set + { + this.SetAttributeValue("ismailboxinactivebackoffenabled", value); + } + } + + /// + /// Indicates whether Manual Sales Forecasting feature has been enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ismanualsalesforecastingenabled")] + public System.Nullable IsManualSalesForecastingEnabled + { + get + { + return this.GetAttributeValue>("ismanualsalesforecastingenabled"); + } + set + { + this.SetAttributeValue("ismanualsalesforecastingenabled", value); + } + } + + /// + /// Information that specifies whether mobile client on demand sync is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ismobileclientondemandsyncenabled")] + public System.Nullable IsMobileClientOnDemandSyncEnabled + { + get + { + return this.GetAttributeValue>("ismobileclientondemandsyncenabled"); + } + set + { + this.SetAttributeValue("ismobileclientondemandsyncenabled", value); + } + } + + /// + /// Indicates whether the feature MobileOffline should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ismobileofflineenabled")] + public System.Nullable IsMobileOfflineEnabled + { + get + { + return this.GetAttributeValue>("ismobileofflineenabled"); + } + set + { + this.SetAttributeValue("ismobileofflineenabled", value); + } + } + + /// + /// Indicates whether Model Apps can be embedded within Microsoft Teams. This is a tenant admin controlled preview/experimental feature. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ismodeldrivenappsinmsteamsenabled")] + public System.Nullable IsModelDrivenAppsInMSTeamsEnabled + { + get + { + return this.GetAttributeValue>("ismodeldrivenappsinmsteamsenabled"); + } + set + { + this.SetAttributeValue("ismodeldrivenappsinmsteamsenabled", value); + } + } + + /// + /// Indicates whether Microsoft Teams Collaboration feature has been enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ismsteamscollaborationenabled")] + public System.Nullable IsMSTeamsCollaborationEnabled + { + get + { + return this.GetAttributeValue>("ismsteamscollaborationenabled"); + } + set + { + this.SetAttributeValue("ismsteamscollaborationenabled", value); + } + } + + /// + /// Indicates whether Microsoft Teams integration has been enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ismsteamsenabled")] + public System.Nullable IsMSTeamsEnabled + { + get + { + return this.GetAttributeValue>("ismsteamsenabled"); + } + set + { + this.SetAttributeValue("ismsteamsenabled", value); + } + } + + /// + /// Indicates whether the user has enabled or disabled Microsoft Teams integration. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ismsteamssettingchangedbyuser")] + public System.Nullable IsMSTeamsSettingChangedByUser + { + get + { + return this.GetAttributeValue>("ismsteamssettingchangedbyuser"); + } + set + { + this.SetAttributeValue("ismsteamssettingchangedbyuser", value); + } + } + + /// + /// Indicates whether Microsoft Teams User Sync feature has been enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ismsteamsusersyncenabled")] + public System.Nullable IsMSTeamsUserSyncEnabled + { + get + { + return this.GetAttributeValue>("ismsteamsusersyncenabled"); + } + set + { + this.SetAttributeValue("ismsteamsusersyncenabled", value); + } + } + + /// + /// Indicates whether new add product experience is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isnewaddproductexperienceenabled")] + public System.Nullable IsNewAddProductExperienceEnabled + { + get + { + return this.GetAttributeValue>("isnewaddproductexperienceenabled"); + } + set + { + this.SetAttributeValue("isnewaddproductexperienceenabled", value); + } + } + + /// + /// Indicates whether the feature Notes Analysis should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isnotesanalysisenabled")] + public System.Nullable IsNotesAnalysisEnabled + { + get + { + return this.GetAttributeValue>("isnotesanalysisenabled"); + } + set + { + this.SetAttributeValue("isnotesanalysisenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isnotificationford365inteamsenabled")] + public System.Nullable IsNotificationForD365InTeamsEnabled + { + get + { + return this.GetAttributeValue>("isnotificationford365inteamsenabled"); + } + set + { + this.SetAttributeValue("isnotificationford365inteamsenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isnotificationford365inteamsenabledname")] + public string isnotificationford365inteamsenabledName + { + get + { + if (this.FormattedValues.Contains("isnotificationford365inteamsenabled")) + { + return this.FormattedValues["isnotificationford365inteamsenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether the feature OfficeGraph should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isofficegraphenabled")] + public System.Nullable IsOfficeGraphEnabled + { + get + { + return this.GetAttributeValue>("isofficegraphenabled"); + } + set + { + this.SetAttributeValue("isofficegraphenabled", value); + } + } + + /// + /// Indicates whether the feature One Drive should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isonedriveenabled")] + public System.Nullable IsOneDriveEnabled + { + get + { + return this.GetAttributeValue>("isonedriveenabled"); + } + set + { + this.SetAttributeValue("isonedriveenabled", value); + } + } + + /// + /// Indicates whether PAI feature has been enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ispaienabled")] + public System.Nullable IsPAIEnabled + { + get + { + return this.GetAttributeValue>("ispaienabled"); + } + set + { + this.SetAttributeValue("ispaienabled", value); + } + } + + /// + /// Indicates whether PDF Generation feature has been enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ispdfgenerationenabled")] + public string IsPDFGenerationEnabled + { + get + { + return this.GetAttributeValue("ispdfgenerationenabled"); + } + set + { + this.SetAttributeValue("ispdfgenerationenabled", value); + } + } + + /// + /// Indicates whether the Per Process overage feature is enabled in this organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isperprocesscapacityoverageenabled")] + public System.Nullable IsPerProcessCapacityOverageEnabled + { + get + { + return this.GetAttributeValue>("isperprocesscapacityoverageenabled"); + } + set + { + this.SetAttributeValue("isperprocesscapacityoverageenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isperprocesscapacityoverageenabledname")] + public string isperprocesscapacityoverageenabledName + { + get + { + if (this.FormattedValues.Contains("isperprocesscapacityoverageenabled")) + { + return this.FormattedValues["isperprocesscapacityoverageenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether playbook feature has been enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isplaybookenabled")] + public System.Nullable IsPlaybookEnabled + { + get + { + return this.GetAttributeValue>("isplaybookenabled"); + } + set + { + this.SetAttributeValue("isplaybookenabled", value); + } + } + + /// + /// Information on whether IM presence is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ispresenceenabled")] + public System.Nullable IsPresenceEnabled + { + get + { + return this.GetAttributeValue>("ispresenceenabled"); + } + set + { + this.SetAttributeValue("ispresenceenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ispresenceenabledname")] + public string IsPresenceEnabledName + { + get + { + if (this.FormattedValues.Contains("ispresenceenabled")) + { + return this.FormattedValues["ispresenceenabled"]; + } + else + { + return default(string); + } + } + set + { + this.SetAttributeValue("ispresenceenabledname", value); + } + } + + /// + /// Indicates whether the Preview feature for Action Card should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ispreviewenabledforactioncard")] + public System.Nullable IsPreviewEnabledForActionCard + { + get + { + return this.GetAttributeValue>("ispreviewenabledforactioncard"); + } + set + { + this.SetAttributeValue("ispreviewenabledforactioncard", value); + } + } + + /// + /// Indicates whether the feature Auto Capture should be enabled for the organization at Preview Settings. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ispreviewforautocaptureenabled")] + public System.Nullable IsPreviewForAutoCaptureEnabled + { + get + { + return this.GetAttributeValue>("ispreviewforautocaptureenabled"); + } + set + { + this.SetAttributeValue("ispreviewforautocaptureenabled", value); + } + } + + /// + /// Is Preview For Email Monitoring Allowed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ispreviewforemailmonitoringallowed")] + public System.Nullable IsPreviewForEmailMonitoringAllowed + { + get + { + return this.GetAttributeValue>("ispreviewforemailmonitoringallowed"); + } + set + { + this.SetAttributeValue("ispreviewforemailmonitoringallowed", value); + } + } + + /// + /// Indicates whether PriceList is mandatory for adding existing products to sales entities. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("ispricelistmandatory")] + public System.Nullable IsPriceListMandatory + { + get + { + return this.GetAttributeValue>("ispricelistmandatory"); + } + set + { + this.SetAttributeValue("ispricelistmandatory", value); + } + } + + /// + /// Select whether to use the standard Out-of-box Opportunity Close experience or opt to for a customized experience. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isquickcreateenabledforopportunityclose")] + public System.Nullable IsQuickCreateEnabledForOpportunityClose + { + get + { + return this.GetAttributeValue>("isquickcreateenabledforopportunityclose"); + } + set + { + this.SetAttributeValue("isquickcreateenabledforopportunityclose", value); + } + } + + /// + /// Enable or disable auditing of read operations. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isreadauditenabled")] + public System.Nullable IsReadAuditEnabled + { + get + { + return this.GetAttributeValue>("isreadauditenabled"); + } + set + { + this.SetAttributeValue("isreadauditenabled", value); + } + } + + /// + /// Indicates whether the feature Relationship Insights should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isrelationshipinsightsenabled")] + public System.Nullable IsRelationshipInsightsEnabled + { + get + { + return this.GetAttributeValue>("isrelationshipinsightsenabled"); + } + set + { + this.SetAttributeValue("isrelationshipinsightsenabled", value); + } + } + + /// + /// Indicates if the synchronization of user resource booking with Exchange is enabled at organization level. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isresourcebookingexchangesyncenabled")] + public System.Nullable IsResourceBookingExchangeSyncEnabled + { + get + { + return this.GetAttributeValue>("isresourcebookingexchangesyncenabled"); + } + set + { + this.SetAttributeValue("isresourcebookingexchangesyncenabled", value); + } + } + + /// + /// Indicates whether rich text editor for notes experience is enabled on this organization + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isrichtextnotesenabled")] + public System.Nullable IsRichTextNotesEnabled + { + get + { + return this.GetAttributeValue>("isrichtextnotesenabled"); + } + set + { + this.SetAttributeValue("isrichtextnotesenabled", value); + } + } + + /// + /// Indicates whether AAD Join for RPA Autoscale is enabled in this organization.. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isrpaautoscaleaadjoinenabled")] + public System.Nullable IsRpaAutoscaleAadJoinEnabled + { + get + { + return this.GetAttributeValue>("isrpaautoscaleaadjoinenabled"); + } + set + { + this.SetAttributeValue("isrpaautoscaleaadjoinenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isrpaautoscaleaadjoinenabledname")] + public string isrpaautoscaleaadjoinenabledName + { + get + { + if (this.FormattedValues.Contains("isrpaautoscaleaadjoinenabled")) + { + return this.FormattedValues["isrpaautoscaleaadjoinenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether Autoscale feature for RPA is enabled in this organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isrpaautoscaleenabled")] + public System.Nullable IsRpaAutoscaleEnabled + { + get + { + return this.GetAttributeValue>("isrpaautoscaleenabled"); + } + set + { + this.SetAttributeValue("isrpaautoscaleenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isrpaautoscaleenabledname")] + public string isrpaautoscaleenabledName + { + get + { + if (this.FormattedValues.Contains("isrpaautoscaleenabled")) + { + return this.FormattedValues["isrpaautoscaleenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether RPA Box feature is enabled in this organization in locations outside the tenant's geographical location. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isrpaboxcrossgeoenabled")] + public System.Nullable IsRpaBoxCrossGeoEnabled + { + get + { + return this.GetAttributeValue>("isrpaboxcrossgeoenabled"); + } + set + { + this.SetAttributeValue("isrpaboxcrossgeoenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isrpaboxcrossgeoenabledname")] + public string isrpaboxcrossgeoenabledName + { + get + { + if (this.FormattedValues.Contains("isrpaboxcrossgeoenabled")) + { + return this.FormattedValues["isrpaboxcrossgeoenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether RPA Box feature is enabled in this organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isrpaboxenabled")] + public System.Nullable IsRpaBoxEnabled + { + get + { + return this.GetAttributeValue>("isrpaboxenabled"); + } + set + { + this.SetAttributeValue("isrpaboxenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isrpaboxenabledname")] + public string isrpaboxenabledName + { + get + { + if (this.FormattedValues.Contains("isrpaboxenabled")) + { + return this.FormattedValues["isrpaboxenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether Unattended runs feature for RPA is enabled in this organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isrpaunattendedenabled")] + public System.Nullable IsRpaUnattendedEnabled + { + get + { + return this.GetAttributeValue>("isrpaunattendedenabled"); + } + set + { + this.SetAttributeValue("isrpaunattendedenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isrpaunattendedenabledname")] + public string isrpaunattendedenabledName + { + get + { + if (this.FormattedValues.Contains("isrpaunattendedenabled")) + { + return this.FormattedValues["isrpaunattendedenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether Sales Assistant mobile app has been enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("issalesassistantenabled")] + public System.Nullable IsSalesAssistantEnabled + { + get + { + return this.GetAttributeValue>("issalesassistantenabled"); + } + set + { + this.SetAttributeValue("issalesassistantenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("issharinginorgallowed")] + public System.Nullable IsSharingInOrgAllowed + { + get + { + return this.GetAttributeValue>("issharinginorgallowed"); + } + set + { + this.SetAttributeValue("issharinginorgallowed", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("issharinginorgallowedname")] + public string issharinginorgallowedName + { + get + { + if (this.FormattedValues.Contains("issharinginorgallowed")) + { + return this.FormattedValues["issharinginorgallowed"]; + } + else + { + return default(string); + } + } + } + + /// + /// Enable sales order processing integration. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("issopintegrationenabled")] + public System.Nullable IsSOPIntegrationEnabled + { + get + { + return this.GetAttributeValue>("issopintegrationenabled"); + } + set + { + this.SetAttributeValue("issopintegrationenabled", value); + } + } + + /// + /// Information on whether text wrap is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("istextwrapenabled")] + public System.Nullable IsTextWrapEnabled + { + get + { + return this.GetAttributeValue>("istextwrapenabled"); + } + set + { + this.SetAttributeValue("istextwrapenabled", value); + } + } + + /// + /// Enable or disable auditing of user access. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isuseraccessauditenabled")] + public System.Nullable IsUserAccessAuditEnabled + { + get + { + return this.GetAttributeValue>("isuseraccessauditenabled"); + } + set + { + this.SetAttributeValue("isuseraccessauditenabled", value); + } + } + + /// + /// Indicates whether loading of Microsoft Dynamics 365 in a browser window that does not have address, tool, and menu bars is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("isvintegrationcode")] + public virtual organization_isvintegrationcode? ISVIntegrationCode + { + get + { + return ((organization_isvintegrationcode?)(EntityOptionSetEnum.GetEnum(this, "isvintegrationcode"))); + } + set + { + this.SetAttributeValue("isvintegrationcode", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + /// + /// Indicates whether Write-in Products can be added to Opportunity/Quote/Order/Invoice or not. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("iswriteinproductsallowed")] + public System.Nullable IsWriteInProductsAllowed + { + get + { + return this.GetAttributeValue>("iswriteinproductsallowed"); + } + set + { + this.SetAttributeValue("iswriteinproductsallowed", value); + } + } + + /// + /// Type the prefix to use for all knowledge articles in Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("kaprefix")] + public string KaPrefix + { + get + { + return this.GetAttributeValue("kaprefix"); + } + set + { + this.SetAttributeValue("kaprefix", value); + } + } + + /// + /// Prefix to use for all articles in Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("kbprefix")] + public string KbPrefix + { + get + { + return this.GetAttributeValue("kbprefix"); + } + set + { + this.SetAttributeValue("kbprefix", value); + } + } + + /// + /// XML string containing the Knowledge Management settings that are applied in Knowledge Management Wizard. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("kmsettings")] + public string KMSettings + { + get + { + return this.GetAttributeValue("kmsettings"); + } + set + { + this.SetAttributeValue("kmsettings", value); + } + } + + /// + /// Preferred language for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("languagecode")] + public System.Nullable LanguageCode + { + get + { + return this.GetAttributeValue>("languagecode"); + } + set + { + this.SetAttributeValue("languagecode", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("languagecodename")] + public string LanguageCodeName + { + get + { + if (this.FormattedValues.Contains("languagecode")) + { + return this.FormattedValues["languagecode"]; + } + else + { + return default(string); + } + } + } + + /// + /// Show legacy app for admins + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("legacyapptoggle")] + public virtual organization_legacyapptoggle? LegacyAppToggle + { + get + { + return ((organization_legacyapptoggle?)(EntityOptionSetEnum.GetEnum(this, "legacyapptoggle"))); + } + set + { + this.SetAttributeValue("legacyapptoggle", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("legacyapptogglename")] + public string legacyapptoggleName + { + get + { + if (this.FormattedValues.Contains("legacyapptoggle")) + { + return this.FormattedValues["legacyapptoggle"]; + } + else + { + return default(string); + } + } + } + + /// + /// Unique identifier of the locale of the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("localeid")] + public System.Nullable LocaleId + { + get + { + return this.GetAttributeValue>("localeid"); + } + set + { + this.SetAttributeValue("localeid", value); + } + } + + /// + /// Information that specifies how the Long Date format is displayed in Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("longdateformatcode")] + public System.Nullable LongDateFormatCode + { + get + { + return this.GetAttributeValue>("longdateformatcode"); + } + set + { + this.SetAttributeValue("longdateformatcode", value); + } + } + + /// + /// Minimum number of characters that should be entered in the lookup control before resolving for suggestions + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("lookupcharactercountbeforeresolve")] + public System.Nullable LookupCharacterCountBeforeResolve + { + get + { + return this.GetAttributeValue>("lookupcharactercountbeforeresolve"); + } + set + { + this.SetAttributeValue("lookupcharactercountbeforeresolve", value); + } + } + + /// + /// Minimum delay (in milliseconds) between consecutive inputs in a lookup control that will trigger a search for suggestions + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("lookupresolvedelayms")] + public System.Nullable LookupResolveDelayMS + { + get + { + return this.GetAttributeValue>("lookupresolvedelayms"); + } + set + { + this.SetAttributeValue("lookupresolvedelayms", value); + } + } + + /// + /// Lower Threshold For Mailbox Intermittent Issue. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("mailboxintermittentissueminrange")] + public System.Nullable MailboxIntermittentIssueMinRange + { + get + { + return this.GetAttributeValue>("mailboxintermittentissueminrange"); + } + set + { + this.SetAttributeValue("mailboxintermittentissueminrange", value); + } + } + + /// + /// Lower Threshold For Mailbox Permanent Issue. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("mailboxpermanentissueminrange")] + public System.Nullable MailboxPermanentIssueMinRange + { + get + { + return this.GetAttributeValue>("mailboxpermanentissueminrange"); + } + set + { + this.SetAttributeValue("mailboxpermanentissueminrange", value); + } + } + + /// + /// Maximum number of actionsteps allowed in a BPF + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxactionstepsinbpf")] + public System.Nullable MaxActionStepsInBPF + { + get + { + return this.GetAttributeValue>("maxactionstepsinbpf"); + } + set + { + this.SetAttributeValue("maxactionstepsinbpf", value); + } + } + + /// + /// Maximum Allowed Pending Rollup Job Count + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxallowedpendingrollupjobcount")] + public System.Nullable MaxAllowedPendingRollupJobCount + { + get + { + return this.GetAttributeValue>("maxallowedpendingrollupjobcount"); + } + set + { + this.SetAttributeValue("maxallowedpendingrollupjobcount", value); + } + } + + /// + /// Percentage Of Entity Table Size For Kicking Off Bootstrap Job + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxallowedpendingrollupjobpercentage")] + public System.Nullable MaxAllowedPendingRollupJobPercentage + { + get + { + return this.GetAttributeValue>("maxallowedpendingrollupjobpercentage"); + } + set + { + this.SetAttributeValue("maxallowedpendingrollupjobpercentage", value); + } + } + + /// + /// Maximum number of days an appointment can last. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxappointmentdurationdays")] + public System.Nullable MaxAppointmentDurationDays + { + get + { + return this.GetAttributeValue>("maxappointmentdurationdays"); + } + set + { + this.SetAttributeValue("maxappointmentdurationdays", value); + } + } + + /// + /// Maximum number of conditions allowed for mobile offline filters + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxconditionsformobileofflinefilters")] + public System.Nullable MaxConditionsForMobileOfflineFilters + { + get + { + return this.GetAttributeValue>("maxconditionsformobileofflinefilters"); + } + set + { + this.SetAttributeValue("maxconditionsformobileofflinefilters", value); + } + } + + /// + /// Maximum depth for hierarchy security propagation. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxdepthforhierarchicalsecuritymodel")] + public System.Nullable MaxDepthForHierarchicalSecurityModel + { + get + { + return this.GetAttributeValue>("maxdepthforhierarchicalsecuritymodel"); + } + set + { + this.SetAttributeValue("maxdepthforhierarchicalsecuritymodel", value); + } + } + + /// + /// Maximum number of Folder Based Tracking mappings user can add + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxfolderbasedtrackingmappings")] + public System.Nullable MaxFolderBasedTrackingMappings + { + get + { + return this.GetAttributeValue>("maxfolderbasedtrackingmappings"); + } + set + { + this.SetAttributeValue("maxfolderbasedtrackingmappings", value); + } + } + + /// + /// Maximum number of active business process flows allowed per entity + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maximumactivebusinessprocessflowsallowedperentity")] + public System.Nullable MaximumActiveBusinessProcessFlowsAllowedPerEntity + { + get + { + return this.GetAttributeValue>("maximumactivebusinessprocessflowsallowedperentity"); + } + set + { + this.SetAttributeValue("maximumactivebusinessprocessflowsallowedperentity", value); + } + } + + /// + /// Restrict the maximum number of product properties for a product family/bundle + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maximumdynamicpropertiesallowed")] + public System.Nullable MaximumDynamicPropertiesAllowed + { + get + { + return this.GetAttributeValue>("maximumdynamicpropertiesallowed"); + } + set + { + this.SetAttributeValue("maximumdynamicpropertiesallowed", value); + } + } + + /// + /// Maximum number of active SLA allowed per entity in online + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maximumentitieswithactivesla")] + public System.Nullable MaximumEntitiesWithActiveSLA + { + get + { + return this.GetAttributeValue>("maximumentitieswithactivesla"); + } + set + { + this.SetAttributeValue("maximumentitieswithactivesla", value); + } + } + + /// + /// Maximum number of SLA KPI per active SLA allowed for entity in online + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maximumslakpiperentitywithactivesla")] + public System.Nullable MaximumSLAKPIPerEntityWithActiveSLA + { + get + { + return this.GetAttributeValue>("maximumslakpiperentitywithactivesla"); + } + set + { + this.SetAttributeValue("maximumslakpiperentitywithactivesla", value); + } + } + + /// + /// Maximum tracking number before recycling takes place. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maximumtrackingnumber")] + public System.Nullable MaximumTrackingNumber + { + get + { + return this.GetAttributeValue>("maximumtrackingnumber"); + } + set + { + this.SetAttributeValue("maximumtrackingnumber", value); + } + } + + /// + /// Restrict the maximum no of items in a bundle + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxproductsinbundle")] + public System.Nullable MaxProductsInBundle + { + get + { + return this.GetAttributeValue>("maxproductsinbundle"); + } + set + { + this.SetAttributeValue("maxproductsinbundle", value); + } + } + + /// + /// Maximum number of records that will be exported to a static Microsoft Office Excel worksheet when exporting from the grid. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxrecordsforexporttoexcel")] + public System.Nullable MaxRecordsForExportToExcel + { + get + { + return this.GetAttributeValue>("maxrecordsforexporttoexcel"); + } + set + { + this.SetAttributeValue("maxrecordsforexporttoexcel", value); + } + } + + /// + /// Maximum number of lookup and picklist records that can be selected by user for filtering. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxrecordsforlookupfilters")] + public System.Nullable MaxRecordsForLookupFilters + { + get + { + return this.GetAttributeValue>("maxrecordsforlookupfilters"); + } + set + { + this.SetAttributeValue("maxrecordsforlookupfilters", value); + } + } + + /// + /// Maximum Rollup Fields Per Entity + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxrollupfieldsperentity")] + public System.Nullable MaxRollupFieldsPerEntity + { + get + { + return this.GetAttributeValue>("maxrollupfieldsperentity"); + } + set + { + this.SetAttributeValue("maxrollupfieldsperentity", value); + } + } + + /// + /// Maximum Rollup Fields Per Organization + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxrollupfieldsperorg")] + public System.Nullable MaxRollupFieldsPerOrg + { + get + { + return this.GetAttributeValue>("maxrollupfieldsperorg"); + } + set + { + this.SetAttributeValue("maxrollupfieldsperorg", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxslaitemspersla")] + public System.Nullable MaxSLAItemsPerSLA + { + get + { + return this.GetAttributeValue>("maxslaitemspersla"); + } + set + { + this.SetAttributeValue("maxslaitemspersla", value); + } + } + + /// + /// The maximum version of IE to run browser emulation for in Outlook client + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxsupportedinternetexplorerversion")] + public System.Nullable MaxSupportedInternetExplorerVersion + { + get + { + return this.GetAttributeValue>("maxsupportedinternetexplorerversion"); + } + } + + /// + /// Maximum allowed size of an attachment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxuploadfilesize")] + public System.Nullable MaxUploadFileSize + { + get + { + return this.GetAttributeValue>("maxuploadfilesize"); + } + set + { + this.SetAttributeValue("maxuploadfilesize", value); + } + } + + /// + /// Maximum number of mailboxes that can be toggled for verbose logging + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxverboseloggingmailbox")] + public System.Nullable MaxVerboseLoggingMailbox + { + get + { + return this.GetAttributeValue>("maxverboseloggingmailbox"); + } + } + + /// + /// Maximum number of sync cycles for which verbose logging will be enabled by default + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("maxverboseloggingsynccycles")] + public System.Nullable MaxVerboseLoggingSyncCycles + { + get + { + return this.GetAttributeValue>("maxverboseloggingsynccycles"); + } + } + + /// + /// (Deprecated) Environment selected for Integration with Microsoft Flow + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("microsoftflowenvironment")] + public string MicrosoftFlowEnvironment + { + get + { + return this.GetAttributeValue("microsoftflowenvironment"); + } + set + { + this.SetAttributeValue("microsoftflowenvironment", value); + } + } + + /// + /// Normal polling frequency used for address book synchronization in Microsoft Office Outlook. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("minaddressbooksyncinterval")] + public System.Nullable MinAddressBookSyncInterval + { + get + { + return this.GetAttributeValue>("minaddressbooksyncinterval"); + } + set + { + this.SetAttributeValue("minaddressbooksyncinterval", value); + } + } + + /// + /// Normal polling frequency used for background offline synchronization in Microsoft Office Outlook. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("minofflinesyncinterval")] + public System.Nullable MinOfflineSyncInterval + { + get + { + return this.GetAttributeValue>("minofflinesyncinterval"); + } + set + { + this.SetAttributeValue("minofflinesyncinterval", value); + } + } + + /// + /// Minimum allowed time between scheduled Outlook synchronizations. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("minoutlooksyncinterval")] + public System.Nullable MinOutlookSyncInterval + { + get + { + return this.GetAttributeValue>("minoutlooksyncinterval"); + } + set + { + this.SetAttributeValue("minoutlooksyncinterval", value); + } + } + + /// + /// Minimum number of user license required for mobile offline service by production/preview organization + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("mobileofflineminlicenseprod")] + public System.Nullable MobileOfflineMinLicenseProd + { + get + { + return this.GetAttributeValue>("mobileofflineminlicenseprod"); + } + } + + /// + /// Minimum number of user license required for mobile offline service by trial organization + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("mobileofflineminlicensetrial")] + public System.Nullable MobileOfflineMinLicenseTrial + { + get + { + return this.GetAttributeValue>("mobileofflineminlicensetrial"); + } + } + + /// + /// Sync interval for mobile offline. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("mobileofflinesyncinterval")] + public System.Nullable MobileOfflineSyncInterval + { + get + { + return this.GetAttributeValue>("mobileofflinesyncinterval"); + } + set + { + this.SetAttributeValue("mobileofflinesyncinterval", value); + } + } + + /// + /// Flag to indicate if the modern advanced find filtering on all tables in a model-driven app is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modernadvancedfindfiltering")] + public System.Nullable ModernAdvancedFindFiltering + { + get + { + return this.GetAttributeValue>("modernadvancedfindfiltering"); + } + set + { + this.SetAttributeValue("modernadvancedfindfiltering", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modernadvancedfindfilteringname")] + public string modernadvancedfindfilteringName + { + get + { + if (this.FormattedValues.Contains("modernadvancedfindfiltering")) + { + return this.FormattedValues["modernadvancedfindfiltering"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether coauthoring is enabled in modern app designer + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modernappdesignercoauthoringenabled")] + public System.Nullable ModernAppDesignerCoauthoringEnabled + { + get + { + return this.GetAttributeValue>("modernappdesignercoauthoringenabled"); + } + set + { + this.SetAttributeValue("modernappdesignercoauthoringenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modernappdesignercoauthoringenabledname")] + public string modernappdesignercoauthoringenabledName + { + get + { + if (this.FormattedValues.Contains("modernappdesignercoauthoringenabled")) + { + return this.FormattedValues["modernappdesignercoauthoringenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Unique identifier of the user who last modified the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modifiedby")] + public Microsoft.Xrm.Sdk.EntityReference ModifiedBy + { + get + { + return this.GetAttributeValue("modifiedby"); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modifiedbyname")] + public string ModifiedByName + { + get + { + if (this.FormattedValues.Contains("modifiedby")) + { + return this.FormattedValues["modifiedby"]; + } + else + { + return default(string); + } + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modifiedbyyominame")] + public string ModifiedByYomiName + { + get + { + if (this.FormattedValues.Contains("modifiedby")) + { + return this.FormattedValues["modifiedby"]; + } + else + { + return default(string); + } + } + } + + /// + /// Date and time when the organization was last modified. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modifiedon")] + public System.Nullable ModifiedOn + { + get + { + return this.GetAttributeValue>("modifiedon"); + } + } + + /// + /// Unique identifier of the delegate user who last modified the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modifiedonbehalfby")] + public Microsoft.Xrm.Sdk.EntityReference ModifiedOnBehalfBy + { + get + { + return this.GetAttributeValue("modifiedonbehalfby"); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modifiedonbehalfbyname")] + public string ModifiedOnBehalfByName + { + get + { + if (this.FormattedValues.Contains("modifiedonbehalfby")) + { + return this.FormattedValues["modifiedonbehalfby"]; + } + else + { + return default(string); + } + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("modifiedonbehalfbyyominame")] + public string ModifiedOnBehalfByYomiName + { + get + { + if (this.FormattedValues.Contains("modifiedonbehalfby")) + { + return this.FormattedValues["modifiedonbehalfby"]; + } + else + { + return default(string); + } + } + } + + /// + /// Show the sort by button on views + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("multicolumnsortenabled")] + public System.Nullable MultiColumnSortEnabled + { + get + { + return this.GetAttributeValue>("multicolumnsortenabled"); + } + set + { + this.SetAttributeValue("multicolumnsortenabled", value); + } + } + + /// + /// Name of the organization. The name is set when Microsoft CRM is installed and should not be changed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("name")] + public string Name + { + get + { + return this.GetAttributeValue("name"); + } + set + { + this.SetAttributeValue("name", value); + } + } + + /// + /// Enables Natural Language Assist Filter. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("naturallanguageassistfilter")] + public System.Nullable NaturalLanguageAssistFilter + { + get + { + return this.GetAttributeValue>("naturallanguageassistfilter"); + } + set + { + this.SetAttributeValue("naturallanguageassistfilter", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("naturallanguageassistfiltername")] + public string naturallanguageassistfilterName + { + get + { + if (this.FormattedValues.Contains("naturallanguageassistfilter")) + { + return this.FormattedValues["naturallanguageassistfilter"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information that specifies how negative currency numbers are displayed throughout Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("negativecurrencyformatcode")] + public System.Nullable NegativeCurrencyFormatCode + { + get + { + return this.GetAttributeValue>("negativecurrencyformatcode"); + } + set + { + this.SetAttributeValue("negativecurrencyformatcode", value); + } + } + + /// + /// Information that specifies how negative numbers are displayed throughout Microsoft CRM. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("negativeformatcode")] + public virtual organization_negativeformatcode? NegativeFormatCode + { + get + { + return ((organization_negativeformatcode?)(EntityOptionSetEnum.GetEnum(this, "negativeformatcode"))); + } + set + { + this.SetAttributeValue("negativeformatcode", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("negativeformatcodename")] + public string NegativeFormatCodeName + { + get + { + if (this.FormattedValues.Contains("negativeformatcode")) + { + return this.FormattedValues["negativeformatcode"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether an organization has enabled the new Relevance search experience (released in Oct 2020) for the organization + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("newsearchexperienceenabled")] + public System.Nullable NewSearchExperienceEnabled + { + get + { + return this.GetAttributeValue>("newsearchexperienceenabled"); + } + set + { + this.SetAttributeValue("newsearchexperienceenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("newsearchexperienceenabledname")] + public string newsearchexperienceenabledName + { + get + { + if (this.FormattedValues.Contains("newsearchexperienceenabled")) + { + return this.FormattedValues["newsearchexperienceenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Next token to be placed on the subject line of an email message. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("nexttrackingnumber")] + public System.Nullable NextTrackingNumber + { + get + { + return this.GetAttributeValue>("nexttrackingnumber"); + } + set + { + this.SetAttributeValue("nexttrackingnumber", value); + } + } + + /// + /// Indicates whether mailbox owners will be notified of email server profile level alerts. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("notifymailboxownerofemailserverlevelalerts")] + public System.Nullable NotifyMailboxOwnerOfEmailServerLevelAlerts + { + get + { + return this.GetAttributeValue>("notifymailboxownerofemailserverlevelalerts"); + } + set + { + this.SetAttributeValue("notifymailboxownerofemailserverlevelalerts", value); + } + } + + /// + /// Specification of how numbers are displayed throughout Microsoft CRM. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("numberformat")] + public string NumberFormat + { + get + { + return this.GetAttributeValue("numberformat"); + } + set + { + this.SetAttributeValue("numberformat", value); + } + } + + /// + /// Specifies how numbers are grouped in Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("numbergroupformat")] + public string NumberGroupFormat + { + get + { + return this.GetAttributeValue("numbergroupformat"); + } + set + { + this.SetAttributeValue("numbergroupformat", value); + } + } + + /// + /// Symbol used for number separation in Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("numberseparator")] + public string NumberSeparator + { + get + { + return this.GetAttributeValue("numberseparator"); + } + set + { + this.SetAttributeValue("numberseparator", value); + } + } + + /// + /// Indicates whether the Office Apps auto deployment is enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("officeappsautodeploymentenabled")] + public System.Nullable OfficeAppsAutoDeploymentEnabled + { + get + { + return this.GetAttributeValue>("officeappsautodeploymentenabled"); + } + set + { + this.SetAttributeValue("officeappsautodeploymentenabled", value); + } + } + + /// + /// The url to open the Delve for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("officegraphdelveurl")] + public string OfficeGraphDelveUrl + { + get + { + return this.GetAttributeValue("officegraphdelveurl"); + } + set + { + this.SetAttributeValue("officegraphdelveurl", value); + } + } + + /// + /// Enable OOB pricing calculation logic for Opportunity, Quote, Order and Invoice entities. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("oobpricecalculationenabled")] + public System.Nullable OOBPriceCalculationEnabled + { + get + { + return this.GetAttributeValue>("oobpricecalculationenabled"); + } + set + { + this.SetAttributeValue("oobpricecalculationenabled", value); + } + } + + /// + /// Indicates if this organization will opt-out from automatically enabling schema v2 on the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("optoutschemav2enabledbydefault")] + public System.Nullable OptOutSchemaV2EnabledByDefault + { + get + { + return this.GetAttributeValue>("optoutschemav2enabledbydefault"); + } + set + { + this.SetAttributeValue("optoutschemav2enabledbydefault", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("optoutschemav2enabledbydefaultname")] + public string optoutschemav2enabledbydefaultName + { + get + { + if (this.FormattedValues.Contains("optoutschemav2enabledbydefault")) + { + return this.FormattedValues["optoutschemav2enabledbydefault"]; + } + else + { + return default(string); + } + } + } + + /// + /// Prefix to use for all orders throughout Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("orderprefix")] + public string OrderPrefix + { + get + { + return this.GetAttributeValue("orderprefix"); + } + set + { + this.SetAttributeValue("orderprefix", value); + } + } + + /// + /// Unique identifier of the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("organizationid")] + public System.Nullable OrganizationId + { + get + { + return this.GetAttributeValue>("organizationid"); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("organizationid")] + public override System.Guid Id + { + get + { + return base.Id; + } + set + { + base.Id = value; + } + } + + /// + /// Indicates the organization lifecycle state + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("organizationstate")] + public virtual organization_organizationstate? OrganizationState + { + get + { + return ((organization_organizationstate?)(EntityOptionSetEnum.GetEnum(this, "organizationstate"))); + } + } + + /// + /// Organization settings stored in Organization Database. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("orgdborgsettings")] + public string OrgDbOrgSettings + { + get + { + return this.GetAttributeValue("orgdborgsettings"); + } + set + { + this.SetAttributeValue("orgdborgsettings", value); + } + } + + /// + /// Select whether to turn on OrgInsights for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("orginsightsenabled")] + public System.Nullable OrgInsightsEnabled + { + get + { + return this.GetAttributeValue>("orginsightsenabled"); + } + set + { + this.SetAttributeValue("orginsightsenabled", value); + } + } + + /// + /// Indicates whether Preview feature has been enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("paipreviewscenarioenabled")] + public System.Nullable PaiPreviewScenarioEnabled + { + get + { + return this.GetAttributeValue>("paipreviewscenarioenabled"); + } + set + { + this.SetAttributeValue("paipreviewscenarioenabled", value); + } + } + + /// + /// Prefix used for parsed table columns. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("parsedtablecolumnprefix")] + public string ParsedTableColumnPrefix + { + get + { + return this.GetAttributeValue("parsedtablecolumnprefix"); + } + } + + /// + /// Prefix used for parsed tables. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("parsedtableprefix")] + public string ParsedTablePrefix + { + get + { + return this.GetAttributeValue("parsedtableprefix"); + } + } + + /// + /// Specifies the maximum number of months in past for which the recurring activities can be created. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("pastexpansionwindow")] + public System.Nullable PastExpansionWindow + { + get + { + return this.GetAttributeValue>("pastexpansionwindow"); + } + set + { + this.SetAttributeValue("pastexpansionwindow", value); + } + } + + /// + /// Leave empty to use default setting. Set to on/off to enable/disable replacement of default grids with modern ones in model-driven apps. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("pcfdatasetgridenabled")] + public string PcfDatasetGridEnabled + { + get + { + return this.GetAttributeValue("pcfdatasetgridenabled"); + } + set + { + this.SetAttributeValue("pcfdatasetgridenabled", value); + } + } + + /// + /// This setting contains the date time before an ACT sync can execute. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("performactsyncafter")] + public System.Nullable PerformACTSyncAfter + { + get + { + return this.GetAttributeValue>("performactsyncafter"); + } + set + { + this.SetAttributeValue("performactsyncafter", value); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("picture")] + public string Picture + { + get + { + return this.GetAttributeValue("picture"); + } + set + { + this.SetAttributeValue("picture", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("pinpointlanguagecode")] + public System.Nullable PinpointLanguageCode + { + get + { + return this.GetAttributeValue>("pinpointlanguagecode"); + } + set + { + this.SetAttributeValue("pinpointlanguagecode", value); + } + } + + /// + /// Plug-in Trace Log Setting for the Organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("plugintracelogsetting")] + public virtual organization_plugintracelogsetting? PluginTraceLogSetting + { + get + { + return ((organization_plugintracelogsetting?)(EntityOptionSetEnum.GetEnum(this, "plugintracelogsetting"))); + } + set + { + this.SetAttributeValue("plugintracelogsetting", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("plugintracelogsettingname")] + public string PluginTraceLogSettingName + { + get + { + if (this.FormattedValues.Contains("plugintracelogsetting")) + { + return this.FormattedValues["plugintracelogsetting"]; + } + else + { + return default(string); + } + } + } + + /// + /// PM designator to use throughout Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("pmdesignator")] + public string PMDesignator + { + get + { + return this.GetAttributeValue("pmdesignator"); + } + set + { + this.SetAttributeValue("pmdesignator", value); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("postmessagewhitelistdomains")] + public string PostMessageWhitelistDomains + { + get + { + return this.GetAttributeValue("postmessagewhitelistdomains"); + } + set + { + this.SetAttributeValue("postmessagewhitelistdomains", value); + } + } + + /// + /// Indicates whether bot for makers is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("powerappsmakerbotenabled")] + public System.Nullable PowerAppsMakerBotEnabled + { + get + { + return this.GetAttributeValue>("powerappsmakerbotenabled"); + } + set + { + this.SetAttributeValue("powerappsmakerbotenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("powerappsmakerbotenabledname")] + public string powerappsmakerbotenabledName + { + get + { + if (this.FormattedValues.Contains("powerappsmakerbotenabled")) + { + return this.FormattedValues["powerappsmakerbotenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether cross region operations are allowed for the organization + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("powerbiallowcrossregionoperations")] + public System.Nullable PowerBIAllowCrossRegionOperations + { + get + { + return this.GetAttributeValue>("powerbiallowcrossregionoperations"); + } + set + { + this.SetAttributeValue("powerbiallowcrossregionoperations", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("powerbiallowcrossregionoperationsname")] + public string powerbiallowcrossregionoperationsName + { + get + { + if (this.FormattedValues.Contains("powerbiallowcrossregionoperations")) + { + return this.FormattedValues["powerbiallowcrossregionoperations"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether automatic permissions assignment to Power BI has been enabled for the organization + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("powerbiautomaticpermissionsassignment")] + public System.Nullable PowerBIAutomaticPermissionsAssignment + { + get + { + return this.GetAttributeValue>("powerbiautomaticpermissionsassignment"); + } + set + { + this.SetAttributeValue("powerbiautomaticpermissionsassignment", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("powerbiautomaticpermissionsassignmentname")] + public string powerbiautomaticpermissionsassignmentName + { + get + { + if (this.FormattedValues.Contains("powerbiautomaticpermissionsassignment")) + { + return this.FormattedValues["powerbiautomaticpermissionsassignment"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether creation of Power BI components has been enabled for the organization + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("powerbicomponentscreate")] + public System.Nullable PowerBIComponentsCreate + { + get + { + return this.GetAttributeValue>("powerbicomponentscreate"); + } + set + { + this.SetAttributeValue("powerbicomponentscreate", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("powerbicomponentscreatename")] + public string powerbicomponentscreateName + { + get + { + if (this.FormattedValues.Contains("powerbicomponentscreate")) + { + return this.FormattedValues["powerbicomponentscreate"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether the Power BI feature should be enabled for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("powerbifeatureenabled")] + public System.Nullable PowerBiFeatureEnabled + { + get + { + return this.GetAttributeValue>("powerbifeatureenabled"); + } + set + { + this.SetAttributeValue("powerbifeatureenabled", value); + } + } + + /// + /// Number of decimal places that can be used for prices. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("pricingdecimalprecision")] + public System.Nullable PricingDecimalPrecision + { + get + { + return this.GetAttributeValue>("pricingdecimalprecision"); + } + set + { + this.SetAttributeValue("pricingdecimalprecision", value); + } + } + + /// + /// Privacy Statement URL + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("privacystatementurl")] + public string PrivacyStatementUrl + { + get + { + return this.GetAttributeValue("privacystatementurl"); + } + set + { + this.SetAttributeValue("privacystatementurl", value); + } + } + + /// + /// Unique identifier of the default privilege for users in the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("privilegeusergroupid")] + public System.Nullable PrivilegeUserGroupId + { + get + { + return this.GetAttributeValue>("privilegeusergroupid"); + } + set + { + this.SetAttributeValue("privilegeusergroupid", value); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("privreportinggroupid")] + public System.Nullable PrivReportingGroupId + { + get + { + return this.GetAttributeValue>("privreportinggroupid"); + } + set + { + this.SetAttributeValue("privreportinggroupid", value); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("privreportinggroupname")] + public string PrivReportingGroupName + { + get + { + return this.GetAttributeValue("privreportinggroupname"); + } + set + { + this.SetAttributeValue("privreportinggroupname", value); + } + } + + /// + /// Select whether to turn on product recommendations for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("productrecommendationsenabled")] + public System.Nullable ProductRecommendationsEnabled + { + get + { + return this.GetAttributeValue>("productrecommendationsenabled"); + } + set + { + this.SetAttributeValue("productrecommendationsenabled", value); + } + } + + /// + /// Indicates whether prompt should be shown for new Qualify Lead Experience + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("qualifyleadadditionaloptions")] + public string QualifyLeadAdditionalOptions + { + get + { + return this.GetAttributeValue("qualifyleadadditionaloptions"); + } + set + { + this.SetAttributeValue("qualifyleadadditionaloptions", value); + } + } + + /// + /// Flag to indicate if the feature to use quick action to open records in search side pane is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("quickactiontoopenrecordsinsidepaneenabled")] + public System.Nullable QuickActionToOpenRecordsInSidePaneEnabled + { + get + { + return this.GetAttributeValue>("quickactiontoopenrecordsinsidepaneenabled"); + } + set + { + this.SetAttributeValue("quickactiontoopenrecordsinsidepaneenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("quickactiontoopenrecordsinsidepaneenabledname")] + public string quickactiontoopenrecordsinsidepaneenabledName + { + get + { + if (this.FormattedValues.Contains("quickactiontoopenrecordsinsidepaneenabled")) + { + return this.FormattedValues["quickactiontoopenrecordsinsidepaneenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether a quick find record limit should be enabled for this organization (allows for faster Quick Find queries but prevents overly broad searches). + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("quickfindrecordlimitenabled")] + public System.Nullable QuickFindRecordLimitEnabled + { + get + { + return this.GetAttributeValue>("quickfindrecordlimitenabled"); + } + set + { + this.SetAttributeValue("quickfindrecordlimitenabled", value); + } + } + + /// + /// Prefix to use for all quotes throughout Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("quoteprefix")] + public string QuotePrefix + { + get + { + return this.GetAttributeValue("quoteprefix"); + } + set + { + this.SetAttributeValue("quoteprefix", value); + } + } + + /// + /// Indicates whether SLA Recalculation has been enabled for the organization + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("recalculatesla")] + public System.Nullable RecalculateSLA + { + get + { + return this.GetAttributeValue>("recalculatesla"); + } + set + { + this.SetAttributeValue("recalculatesla", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("recalculateslaname")] + public string recalculateslaName + { + get + { + if (this.FormattedValues.Contains("recalculatesla")) + { + return this.FormattedValues["recalculatesla"]; + } + else + { + return default(string); + } + } + } + + /// + /// Specifies the default value for number of occurrences field in the recurrence dialog. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("recurrencedefaultnumberofoccurrences")] + public System.Nullable RecurrenceDefaultNumberOfOccurrences + { + get + { + return this.GetAttributeValue>("recurrencedefaultnumberofoccurrences"); + } + set + { + this.SetAttributeValue("recurrencedefaultnumberofoccurrences", value); + } + } + + /// + /// Specifies the interval (in seconds) for pausing expansion job. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("recurrenceexpansionjobbatchinterval")] + public System.Nullable RecurrenceExpansionJobBatchInterval + { + get + { + return this.GetAttributeValue>("recurrenceexpansionjobbatchinterval"); + } + set + { + this.SetAttributeValue("recurrenceexpansionjobbatchinterval", value); + } + } + + /// + /// Specifies the value for number of instances created in on demand job in one shot. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("recurrenceexpansionjobbatchsize")] + public System.Nullable RecurrenceExpansionJobBatchSize + { + get + { + return this.GetAttributeValue>("recurrenceexpansionjobbatchsize"); + } + set + { + this.SetAttributeValue("recurrenceexpansionjobbatchsize", value); + } + } + + /// + /// Specifies the maximum number of instances to be created synchronously after creating a recurring appointment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("recurrenceexpansionsynchcreatemax")] + public System.Nullable RecurrenceExpansionSynchCreateMax + { + get + { + return this.GetAttributeValue>("recurrenceexpansionsynchcreatemax"); + } + set + { + this.SetAttributeValue("recurrenceexpansionsynchcreatemax", value); + } + } + + /// + /// XML string that defines the navigation structure for the application. This is the site map from the previously upgraded build and is used in a 3-way merge during upgrade. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("referencesitemapxml")] + [System.ObsoleteAttribute()] + public string ReferenceSiteMapXml + { + get + { + return this.GetAttributeValue("referencesitemapxml"); + } + set + { + this.SetAttributeValue("referencesitemapxml", value); + } + } + + /// + /// Current orgnization release cadence value + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("releasecadence")] + public System.Nullable ReleaseCadence + { + get + { + return this.GetAttributeValue>("releasecadence"); + } + set + { + this.SetAttributeValue("releasecadence", value); + } + } + + /// + /// Model app refresh channel + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("releasechannel")] + public virtual organization_releasechannel? ReleaseChannel + { + get + { + return ((organization_releasechannel?)(EntityOptionSetEnum.GetEnum(this, "releasechannel"))); + } + set + { + this.SetAttributeValue("releasechannel", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("releasechannelname")] + public string releasechannelName + { + get + { + if (this.FormattedValues.Contains("releasechannel")) + { + return this.FormattedValues["releasechannel"]; + } + else + { + return default(string); + } + } + } + + /// + /// Release Wave Applied to Environment. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("releasewavename")] + public string ReleaseWaveName + { + get + { + return this.GetAttributeValue("releasewavename"); + } + set + { + this.SetAttributeValue("releasewavename", value); + } + } + + /// + /// Indicates whether relevance search was enabled for the environment as part of Dataverse's relevance search on-by-default sweep + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("relevancesearchenabledbyplatform")] + public System.Nullable RelevanceSearchEnabledByPlatform + { + get + { + return this.GetAttributeValue>("relevancesearchenabledbyplatform"); + } + set + { + this.SetAttributeValue("relevancesearchenabledbyplatform", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("relevancesearchenabledbyplatformname")] + public string relevancesearchenabledbyplatformName + { + get + { + if (this.FormattedValues.Contains("relevancesearchenabledbyplatform")) + { + return this.FormattedValues["relevancesearchenabledbyplatform"]; + } + else + { + return default(string); + } + } + } + + /// + /// This setting contains the last modified date for relevance search setting that appears as a toggle in PPAC. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("relevancesearchmodifiedon")] + public System.Nullable RelevanceSearchModifiedOn + { + get + { + return this.GetAttributeValue>("relevancesearchmodifiedon"); + } + set + { + this.SetAttributeValue("relevancesearchmodifiedon", value); + } + } + + /// + /// Flag to render the body of email in the Web form in an IFRAME with the security='restricted' attribute set. This is additional security but can cause a credentials prompt. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("rendersecureiframeforemail")] + public System.Nullable RenderSecureIFrameForEmail + { + get + { + return this.GetAttributeValue>("rendersecureiframeforemail"); + } + set + { + this.SetAttributeValue("rendersecureiframeforemail", value); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("reportinggroupid")] + public System.Nullable ReportingGroupId + { + get + { + return this.GetAttributeValue>("reportinggroupid"); + } + set + { + this.SetAttributeValue("reportinggroupid", value); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("reportinggroupname")] + public string ReportingGroupName + { + get + { + return this.GetAttributeValue("reportinggroupname"); + } + set + { + this.SetAttributeValue("reportinggroupname", value); + } + } + + /// + /// Picklist for selecting the organization preference for reporting scripting errors. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("reportscripterrors")] + public virtual organization_reportscripterrors? ReportScriptErrors + { + get + { + return ((organization_reportscripterrors?)(EntityOptionSetEnum.GetEnum(this, "reportscripterrors"))); + } + set + { + this.SetAttributeValue("reportscripterrors", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("reportscripterrorsname")] + public string ReportScriptErrorsName + { + get + { + if (this.FormattedValues.Contains("reportscripterrors")) + { + return this.FormattedValues["reportscripterrors"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates whether Send As Other User privilege is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("requireapprovalforqueueemail")] + public System.Nullable RequireApprovalForQueueEmail + { + get + { + return this.GetAttributeValue>("requireapprovalforqueueemail"); + } + set + { + this.SetAttributeValue("requireapprovalforqueueemail", value); + } + } + + /// + /// Indicates whether Send As Other User privilege is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("requireapprovalforuseremail")] + public System.Nullable RequireApprovalForUserEmail + { + get + { + return this.GetAttributeValue>("requireapprovalforuseremail"); + } + set + { + this.SetAttributeValue("requireapprovalforuseremail", value); + } + } + + /// + /// Apply same email address to all unresolved matches when you manually resolve it for one + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("resolvesimilarunresolvedemailaddress")] + public System.Nullable ResolveSimilarUnresolvedEmailAddress + { + get + { + return this.GetAttributeValue>("resolvesimilarunresolvedemailaddress"); + } + set + { + this.SetAttributeValue("resolvesimilarunresolvedemailaddress", value); + } + } + + /// + /// Information that specifies whether guest user restriction is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("restrictGuestUserAccess")] + public System.Nullable RestrictGuestUserAccess + { + get + { + return this.GetAttributeValue>("restrictGuestUserAccess"); + } + set + { + this.SetAttributeValue("restrictGuestUserAccess", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("restrictguestuseraccessname")] + public string restrictGuestUserAccessName + { + get + { + if (this.FormattedValues.Contains("restrictGuestUserAccess")) + { + return this.FormattedValues["restrictGuestUserAccess"]; + } + else + { + return default(string); + } + } + } + + /// + /// Flag to restrict Update on incident. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("restrictstatusupdate")] + public System.Nullable RestrictStatusUpdate + { + get + { + return this.GetAttributeValue>("restrictstatusupdate"); + } + set + { + this.SetAttributeValue("restrictstatusupdate", value); + } + } + + /// + /// Information that specifies Reverse Proxy IP addresses from which requests have to be allowed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("reverseproxyipaddresses")] + public string ReverseProxyIpAddresses + { + get + { + return this.GetAttributeValue("reverseproxyipaddresses"); + } + set + { + this.SetAttributeValue("reverseproxyipaddresses", value); + } + } + + /// + /// Error status of Relationship Insights provisioning. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("rierrorstatus")] + public System.Nullable RiErrorStatus + { + get + { + return this.GetAttributeValue>("rierrorstatus"); + } + set + { + this.SetAttributeValue("rierrorstatus", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("samesitemodeforsessioncookiename")] + public string samesitemodeforsessioncookieName + { + get + { + if (this.FormattedValues.Contains("samesitemodeforsessioncookie")) + { + return this.FormattedValues["samesitemodeforsessioncookie"]; + } + else + { + return default(string); + } + } + } + + /// + /// Unique identifier of the sample data import job. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sampledataimportid")] + public System.Nullable SampleDataImportId + { + get + { + return this.GetAttributeValue>("sampledataimportid"); + } + set + { + this.SetAttributeValue("sampledataimportid", value); + } + } + + /// + /// Prefix used for custom entities and attributes. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("schemanameprefix")] + public string SchemaNamePrefix + { + get + { + return this.GetAttributeValue("schemanameprefix"); + } + set + { + this.SetAttributeValue("schemanameprefix", value); + } + } + + /// + /// Indicates whether Send Bulk Email in UCI is enabled for the org. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sendbulkemailinuci")] + public System.Nullable SendBulkEmailInUCI + { + get + { + return this.GetAttributeValue>("sendbulkemailinuci"); + } + set + { + this.SetAttributeValue("sendbulkemailinuci", value); + } + } + + /// + /// Serve Static Content From CDN + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("servestaticresourcesfromazurecdn")] + public System.Nullable ServeStaticResourcesFromAzureCDN + { + get + { + return this.GetAttributeValue>("servestaticresourcesfromazurecdn"); + } + set + { + this.SetAttributeValue("servestaticresourcesfromazurecdn", value); + } + } + + /// + /// Enable the session recording feature to record user sessions in UCI + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sessionrecordingenabled")] + public System.Nullable SessionRecordingEnabled + { + get + { + return this.GetAttributeValue>("sessionrecordingenabled"); + } + set + { + this.SetAttributeValue("sessionrecordingenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sessionrecordingenabledname")] + public string sessionrecordingenabledName + { + get + { + if (this.FormattedValues.Contains("sessionrecordingenabled")) + { + return this.FormattedValues["sessionrecordingenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Information that specifies whether session timeout is enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sessiontimeoutenabled")] + public System.Nullable SessionTimeoutEnabled + { + get + { + return this.GetAttributeValue>("sessiontimeoutenabled"); + } + set + { + this.SetAttributeValue("sessiontimeoutenabled", value); + } + } + + /// + /// Session timeout in minutes + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sessiontimeoutinmins")] + public System.Nullable SessionTimeoutInMins + { + get + { + return this.GetAttributeValue>("sessiontimeoutinmins"); + } + set + { + this.SetAttributeValue("sessiontimeoutinmins", value); + } + } + + /// + /// Session timeout reminder in minutes + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sessiontimeoutreminderinmins")] + public System.Nullable SessionTimeoutReminderInMins + { + get + { + return this.GetAttributeValue>("sessiontimeoutreminderinmins"); + } + set + { + this.SetAttributeValue("sessiontimeoutreminderinmins", value); + } + } + + /// + /// Indicates which SharePoint deployment type is configured for Server to Server. (Online or On-Premises) + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sharepointdeploymenttype")] + public virtual organization_sharepointdeploymenttype? SharePointDeploymentType + { + get + { + return ((organization_sharepointdeploymenttype?)(EntityOptionSetEnum.GetEnum(this, "sharepointdeploymenttype"))); + } + set + { + this.SetAttributeValue("sharepointdeploymenttype", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + /// + /// Information that specifies whether to share to previous owner on assign. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sharetopreviousowneronassign")] + public System.Nullable ShareToPreviousOwnerOnAssign + { + get + { + return this.GetAttributeValue>("sharetopreviousowneronassign"); + } + set + { + this.SetAttributeValue("sharetopreviousowneronassign", value); + } + } + + /// + /// Select whether to display a KB article deprecation notification to the user. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("showkbarticledeprecationnotification")] + public System.Nullable ShowKBArticleDeprecationNotification + { + get + { + return this.GetAttributeValue>("showkbarticledeprecationnotification"); + } + set + { + this.SetAttributeValue("showkbarticledeprecationnotification", value); + } + } + + /// + /// Information that specifies whether to display the week number in calendar displays throughout Microsoft CRM. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("showweeknumber")] + public System.Nullable ShowWeekNumber + { + get + { + return this.GetAttributeValue>("showweeknumber"); + } + set + { + this.SetAttributeValue("showweeknumber", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("showweeknumbername")] + public string ShowWeekNumberName + { + get + { + if (this.FormattedValues.Contains("showweeknumber")) + { + return this.FormattedValues["showweeknumber"]; + } + else + { + return default(string); + } + } + } + + /// + /// CRM for Outlook Download URL + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("signupoutlookdownloadfwlink")] + public string SignupOutlookDownloadFWLink + { + get + { + return this.GetAttributeValue("signupoutlookdownloadfwlink"); + } + set + { + this.SetAttributeValue("signupoutlookdownloadfwlink", value); + } + } + + /// + /// XML string that defines the navigation structure for the application. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sitemapxml")] + [System.ObsoleteAttribute()] + public string SiteMapXml + { + get + { + return this.GetAttributeValue("sitemapxml"); + } + set + { + this.SetAttributeValue("sitemapxml", value); + } + } + + /// + /// Contains the on hold case status values. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("slapausestates")] + public string SlaPauseStates + { + get + { + return this.GetAttributeValue("slapausestates"); + } + set + { + this.SetAttributeValue("slapausestates", value); + } + } + + /// + /// Flag for whether the organization is using Social Insights. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("socialinsightsenabled")] + public System.Nullable SocialInsightsEnabled + { + get + { + return this.GetAttributeValue>("socialinsightsenabled"); + } + set + { + this.SetAttributeValue("socialinsightsenabled", value); + } + } + + /// + /// Identifier for the Social Insights instance for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("socialinsightsinstance")] + public string SocialInsightsInstance + { + get + { + return this.GetAttributeValue("socialinsightsinstance"); + } + set + { + this.SetAttributeValue("socialinsightsinstance", value); + } + } + + /// + /// Flag for whether the organization has accepted the Social Insights terms of use. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("socialinsightstermsaccepted")] + public System.Nullable SocialInsightsTermsAccepted + { + get + { + return this.GetAttributeValue>("socialinsightstermsaccepted"); + } + set + { + this.SetAttributeValue("socialinsightstermsaccepted", value); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sortid")] + public System.Nullable SortId + { + get + { + return this.GetAttributeValue>("sortid"); + } + set + { + this.SetAttributeValue("sortid", value); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sqlaccessgroupid")] + public System.Nullable SqlAccessGroupId + { + get + { + return this.GetAttributeValue>("sqlaccessgroupid"); + } + set + { + this.SetAttributeValue("sqlaccessgroupid", value); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sqlaccessgroupname")] + public string SqlAccessGroupName + { + get + { + return this.GetAttributeValue("sqlaccessgroupname"); + } + set + { + this.SetAttributeValue("sqlaccessgroupname", value); + } + } + + /// + /// Setting for SQM data collection, 0 no, 1 yes enabled + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("sqmenabled")] + public System.Nullable SQMEnabled + { + get + { + return this.GetAttributeValue>("sqmenabled"); + } + set + { + this.SetAttributeValue("sqmenabled", value); + } + } + + /// + /// Unique identifier of the support user for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("supportuserid")] + public System.Nullable SupportUserId + { + get + { + return this.GetAttributeValue>("supportuserid"); + } + set + { + this.SetAttributeValue("supportuserid", value); + } + } + + /// + /// Indicates whether SLA is suppressed. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("suppresssla")] + public System.Nullable SuppressSLA + { + get + { + return this.GetAttributeValue>("suppresssla"); + } + set + { + this.SetAttributeValue("suppresssla", value); + } + } + + /// + /// Leave empty to use default setting. Set to on/off to enable/disable Admin emails when Solution Checker validation fails. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("suppressvalidationemails")] + public System.Nullable SuppressValidationEmails + { + get + { + return this.GetAttributeValue>("suppressvalidationemails"); + } + set + { + this.SetAttributeValue("suppressvalidationemails", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("suppressvalidationemailsname")] + public string suppressvalidationemailsName + { + get + { + if (this.FormattedValues.Contains("suppressvalidationemails")) + { + return this.FormattedValues["suppressvalidationemails"]; + } + else + { + return default(string); + } + } + } + + /// + /// Number of records to update per operation in Sync Bulk Pause/Resume/Cancel + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("syncbulkoperationbatchsize")] + public System.Nullable SyncBulkOperationBatchSize + { + get + { + return this.GetAttributeValue>("syncbulkoperationbatchsize"); + } + set + { + this.SetAttributeValue("syncbulkoperationbatchsize", value); + } + } + + /// + /// Max total number of records to update in database for Sync Bulk Pause/Resume/Cancel + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("syncbulkoperationmaxlimit")] + public System.Nullable SyncBulkOperationMaxLimit + { + get + { + return this.GetAttributeValue>("syncbulkoperationmaxlimit"); + } + set + { + this.SetAttributeValue("syncbulkoperationmaxlimit", value); + } + } + + /// + /// Indicates the selection to use the dynamics 365 azure sync framework or server side sync. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("syncoptinselection")] + public System.Nullable SyncOptInSelection + { + get + { + return this.GetAttributeValue>("syncoptinselection"); + } + set + { + this.SetAttributeValue("syncoptinselection", value); + } + } + + /// + /// Indicates the status of the opt-in or opt-out operation for dynamics 365 azure sync. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("syncoptinselectionstatus")] + public virtual organization_syncoptinselectionstatus? SyncOptInSelectionStatus + { + get + { + return ((organization_syncoptinselectionstatus?)(EntityOptionSetEnum.GetEnum(this, "syncoptinselectionstatus"))); + } + set + { + this.SetAttributeValue("syncoptinselectionstatus", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + /// + /// Unique identifier of the system user for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("systemuserid")] + public System.Nullable SystemUserId + { + get + { + return this.GetAttributeValue>("systemuserid"); + } + set + { + this.SetAttributeValue("systemuserid", value); + } + } + + /// + /// Controls the appearance of option to search over a single DV search indexed table in model-driven apps’ global search in the header. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("tablescopeddvsearchinapps")] + public System.Nullable TableScopedDVSearchInApps + { + get + { + return this.GetAttributeValue>("tablescopeddvsearchinapps"); + } + set + { + this.SetAttributeValue("tablescopeddvsearchinapps", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("tablescopeddvsearchinappsname")] + public string tablescopeddvsearchinappsName + { + get + { + if (this.FormattedValues.Contains("tablescopeddvsearchinapps")) + { + return this.FormattedValues["tablescopeddvsearchinapps"]; + } + else + { + return default(string); + } + } + } + + /// + /// Maximum number of aggressive polling cycles executed for email auto-tagging when a new email is received. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("tagmaxaggressivecycles")] + public System.Nullable TagMaxAggressiveCycles + { + get + { + return this.GetAttributeValue>("tagmaxaggressivecycles"); + } + set + { + this.SetAttributeValue("tagmaxaggressivecycles", value); + } + } + + /// + /// Normal polling frequency used for email receive auto-tagging in outlook. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("tagpollingperiod")] + public System.Nullable TagPollingPeriod + { + get + { + return this.GetAttributeValue>("tagpollingperiod"); + } + set + { + this.SetAttributeValue("tagpollingperiod", value); + } + } + + /// + /// Select whether to turn on task flows for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("taskbasedflowenabled")] + public System.Nullable TaskBasedFlowEnabled + { + get + { + return this.GetAttributeValue>("taskbasedflowenabled"); + } + set + { + this.SetAttributeValue("taskbasedflowenabled", value); + } + } + + /// + /// Information on whether Teams Chat Data Sync is enabled. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("teamschatdatasync")] + public System.Nullable TeamsChatDataSync + { + get + { + return this.GetAttributeValue>("teamschatdatasync"); + } + set + { + this.SetAttributeValue("teamschatdatasync", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("teamschatdatasyncname")] + public string teamschatdatasyncName + { + get + { + if (this.FormattedValues.Contains("teamschatdatasync")) + { + return this.FormattedValues["teamschatdatasync"]; + } + else + { + return default(string); + } + } + } + + /// + /// Instrumentation key for Application Insights used to log plugins telemetry. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("telemetryinstrumentationkey")] + public string TelemetryInstrumentationKey + { + get + { + return this.GetAttributeValue("telemetryinstrumentationkey"); + } + set + { + this.SetAttributeValue("telemetryinstrumentationkey", value); + } + } + + /// + /// Select whether to turn on text analytics for the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("textanalyticsenabled")] + public System.Nullable TextAnalyticsEnabled + { + get + { + return this.GetAttributeValue>("textanalyticsenabled"); + } + set + { + this.SetAttributeValue("textanalyticsenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("timeformatcodename")] + public string TimeFormatCodeName + { + get + { + if (this.FormattedValues.Contains("timeformatcode")) + { + return this.FormattedValues["timeformatcode"]; + } + else + { + return default(string); + } + } + } + + /// + /// Text for how time is displayed in Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("timeformatstring")] + public string TimeFormatString + { + get + { + return this.GetAttributeValue("timeformatstring"); + } + set + { + this.SetAttributeValue("timeformatstring", value); + } + } + + /// + /// Text for how the time separator is displayed throughout Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("timeseparator")] + public string TimeSeparator + { + get + { + return this.GetAttributeValue("timeseparator"); + } + set + { + this.SetAttributeValue("timeseparator", value); + } + } + + /// + /// For internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("timezoneruleversionnumber")] + public System.Nullable TimeZoneRuleVersionNumber + { + get + { + return this.GetAttributeValue>("timezoneruleversionnumber"); + } + set + { + this.SetAttributeValue("timezoneruleversionnumber", value); + } + } + + /// + /// Duration used for token expiration. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("tokenexpiry")] + public System.Nullable TokenExpiry + { + get + { + return this.GetAttributeValue>("tokenexpiry"); + } + set + { + this.SetAttributeValue("tokenexpiry", value); + } + } + + /// + /// Token key. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("tokenkey")] + public string TokenKey + { + get + { + return this.GetAttributeValue("tokenkey"); + } + set + { + this.SetAttributeValue("tokenkey", value); + } + } + + /// + /// Tracelog record maximum age in days + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("tracelogmaximumageindays")] + public System.Nullable TraceLogMaximumAgeInDays + { + get + { + return this.GetAttributeValue>("tracelogmaximumageindays"); + } + set + { + this.SetAttributeValue("tracelogmaximumageindays", value); + } + } + + /// + /// History list of tracking token prefixes. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("trackingprefix")] + public string TrackingPrefix + { + get + { + return this.GetAttributeValue("trackingprefix"); + } + set + { + this.SetAttributeValue("trackingprefix", value); + } + } + + /// + /// Base number used to provide separate tracking token identifiers to users belonging to different deployments. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("trackingtokenidbase")] + public System.Nullable TrackingTokenIdBase + { + get + { + return this.GetAttributeValue>("trackingtokenidbase"); + } + set + { + this.SetAttributeValue("trackingtokenidbase", value); + } + } + + /// + /// Number of digits used to represent a tracking token identifier. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("trackingtokeniddigits")] + public System.Nullable TrackingTokenIdDigits + { + get + { + return this.GetAttributeValue>("trackingtokeniddigits"); + } + set + { + this.SetAttributeValue("trackingtokeniddigits", value); + } + } + + /// + /// Number of characters appended to invoice, quote, and order numbers. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("uniquespecifierlength")] + public System.Nullable UniqueSpecifierLength + { + get + { + return this.GetAttributeValue>("uniquespecifierlength"); + } + set + { + this.SetAttributeValue("uniquespecifierlength", value); + } + } + + /// + /// Indicates whether email address should be unresolved if multiple matches are found + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("unresolveemailaddressifmultiplematch")] + public System.Nullable UnresolveEmailAddressIfMultipleMatch + { + get + { + return this.GetAttributeValue>("unresolveemailaddressifmultiplematch"); + } + set + { + this.SetAttributeValue("unresolveemailaddressifmultiplematch", value); + } + } + + /// + /// Flag indicates whether to Use Inbuilt Rule For DefaultPricelist. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("useinbuiltrulefordefaultpricelistselection")] + public System.Nullable UseInbuiltRuleForDefaultPricelistSelection + { + get + { + return this.GetAttributeValue>("useinbuiltrulefordefaultpricelistselection"); + } + set + { + this.SetAttributeValue("useinbuiltrulefordefaultpricelistselection", value); + } + } + + /// + /// Select whether to use legacy form rendering. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("uselegacyrendering")] + public System.Nullable UseLegacyRendering + { + get + { + return this.GetAttributeValue>("uselegacyrendering"); + } + set + { + this.SetAttributeValue("uselegacyrendering", value); + } + } + + /// + /// Use position hierarchy + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("usepositionhierarchy")] + public System.Nullable UsePositionHierarchy + { + get + { + return this.GetAttributeValue>("usepositionhierarchy"); + } + set + { + this.SetAttributeValue("usepositionhierarchy", value); + } + } + + /// + /// Indicates whether searching in a grid should use the Quick Find view for the entity. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("usequickfindviewforgridsearch")] + public System.Nullable UseQuickFindViewForGridSearch + { + get + { + return this.GetAttributeValue>("usequickfindviewforgridsearch"); + } + set + { + this.SetAttributeValue("usequickfindviewforgridsearch", value); + } + } + + /// + /// The interval at which user access is checked for auditing. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("useraccessauditinginterval")] + public System.Nullable UserAccessAuditingInterval + { + get + { + return this.GetAttributeValue>("useraccessauditinginterval"); + } + set + { + this.SetAttributeValue("useraccessauditinginterval", value); + } + } + + /// + /// Indicates whether the read-optimized form should be enabled for this organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("usereadform")] + public System.Nullable UseReadForm + { + get + { + return this.GetAttributeValue>("usereadform"); + } + set + { + this.SetAttributeValue("usereadform", value); + } + } + + /// + /// Unique identifier of the default group of users in the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("usergroupid")] + public System.Nullable UserGroupId + { + get + { + return this.GetAttributeValue>("usergroupid"); + } + set + { + this.SetAttributeValue("usergroupid", value); + } + } + + /// + /// Enable the user rating feature to show the NSAT score and comment to maker + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("userratingenabled")] + public System.Nullable UserRatingEnabled + { + get + { + return this.GetAttributeValue>("userratingenabled"); + } + set + { + this.SetAttributeValue("userratingenabled", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("userratingenabledname")] + public string userratingenabledName + { + get + { + if (this.FormattedValues.Contains("userratingenabled")) + { + return this.FormattedValues["userratingenabled"]; + } + else + { + return default(string); + } + } + } + + /// + /// Indicates default protocol selected for organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("useskypeprotocol")] + public System.Nullable UseSkypeProtocol + { + get + { + return this.GetAttributeValue>("useskypeprotocol"); + } + set + { + this.SetAttributeValue("useskypeprotocol", value); + } + } + + /// + /// Time zone code that was in use when the record was created. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("utcconversiontimezonecode")] + public System.Nullable UTCConversionTimeZoneCode + { + get + { + return this.GetAttributeValue>("utcconversiontimezonecode"); + } + set + { + this.SetAttributeValue("utcconversiontimezonecode", value); + } + } + + /// + /// Hash of the V3 callout configuration file. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("v3calloutconfighash")] + public string V3CalloutConfigHash + { + get + { + return this.GetAttributeValue("v3calloutconfighash"); + } + } + + /// + /// Validation mode for apps in this environment + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("validationmode")] + public virtual organization_validationmode? ValidationMode + { + get + { + return ((organization_validationmode?)(EntityOptionSetEnum.GetEnum(this, "validationmode"))); + } + set + { + this.SetAttributeValue("validationmode", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("validationmodename")] + public string validationmodeName + { + get + { + if (this.FormattedValues.Contains("validationmode")) + { + return this.FormattedValues["validationmode"]; + } + else + { + return default(string); + } + } + } + + /// + /// Version number of the organization. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("versionnumber")] + public System.Nullable VersionNumber + { + get + { + return this.GetAttributeValue>("versionnumber"); + } + } + + /// + /// Hash value of web resources. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("webresourcehash")] + public string WebResourceHash + { + get + { + return this.GetAttributeValue("webresourcehash"); + } + set + { + this.SetAttributeValue("webresourcehash", value); + } + } + + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("weekstartdaycodename")] + public string WeekStartDayCodeName + { + get + { + if (this.FormattedValues.Contains("weekstartdaycode")) + { + return this.FormattedValues["weekstartdaycode"]; + } + else + { + return default(string); + } + } + } + + /// + /// For Internal use only. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("widgetproperties")] + public string WidgetProperties + { + get + { + return this.GetAttributeValue("widgetproperties"); + } + set + { + this.SetAttributeValue("widgetproperties", value); + } + } + + /// + /// Denotes the Yammer group ID + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("yammergroupid")] + public System.Nullable YammerGroupId + { + get + { + return this.GetAttributeValue>("yammergroupid"); + } + set + { + this.SetAttributeValue("yammergroupid", value); + } + } + + /// + /// Denotes the Yammer network permalink + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("yammernetworkpermalink")] + public string YammerNetworkPermalink + { + get + { + return this.GetAttributeValue("yammernetworkpermalink"); + } + set + { + this.SetAttributeValue("yammernetworkpermalink", value); + } + } + + /// + /// Denotes whether the OAuth access token for Yammer network has expired + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("yammeroauthaccesstokenexpired")] + public System.Nullable YammerOAuthAccessTokenExpired + { + get + { + return this.GetAttributeValue>("yammeroauthaccesstokenexpired"); + } + set + { + this.SetAttributeValue("yammeroauthaccesstokenexpired", value); + } + } + + /// + /// Internal Use Only + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("yammerpostmethod")] + public virtual organization_yammerpostmethod? YammerPostMethod + { + get + { + return ((organization_yammerpostmethod?)(EntityOptionSetEnum.GetEnum(this, "yammerpostmethod"))); + } + set + { + this.SetAttributeValue("yammerpostmethod", value.HasValue ? new Microsoft.Xrm.Sdk.OptionSetValue((int)value) : null); + } + } + + /// + /// Information that specifies how the first week of the year is specified in Microsoft Dynamics 365. + /// + [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("yearstartweekcode")] + public System.Nullable YearStartWeekCode + { + get { return this.GetAttributeValue>("yearstartweekcode"); } + set { this.SetAttributeValue("yearstartweekcode", value); } + } + } +} +#pragma warning restore CS1591 diff --git a/tests/FakeXrmEasy.Core.Tests/FakeXrmEasy.Core.Tests.csproj b/tests/FakeXrmEasy.Core.Tests/FakeXrmEasy.Core.Tests.csproj index e3abace7..62acf5de 100644 --- a/tests/FakeXrmEasy.Core.Tests/FakeXrmEasy.Core.Tests.csproj +++ b/tests/FakeXrmEasy.Core.Tests/FakeXrmEasy.Core.Tests.csproj @@ -11,7 +11,7 @@ true FakeXrmEasy.CoreTests - 2.5.2 + 2.6.0 Jordi Montaña Dynamics Value S.L. Internal Unit test suite for FakeXrmEasy.Core package @@ -137,22 +137,22 @@ - + - + - + - + - + - + diff --git a/tests/FakeXrmEasy.Core.Tests/FileStorage/FileStorageTests.cs b/tests/FakeXrmEasy.Core.Tests/FileStorage/FileStorageTests.cs new file mode 100644 index 00000000..c38277e0 --- /dev/null +++ b/tests/FakeXrmEasy.Core.Tests/FileStorage/FileStorageTests.cs @@ -0,0 +1,78 @@ +using System.Linq; +using System.Reflection; +using DataverseEntities; +using FakeXrmEasy.Core.FileStorage; +using Microsoft.Xrm.Sdk.Metadata; +using Xunit; + +namespace FakeXrmEasy.Core.Tests.FileStorage +{ + public class FileStorageTests: FakeXrmEasyTestsBase + { + [Fact] + public void Should_return_default_max_file_size() + { + var fileStorageSettings = _context.GetProperty(); + Assert.NotNull(fileStorageSettings); + Assert.Equal(FileStorageSettings.DEFAULT_MAX_FILE_SIZE_IN_KB, fileStorageSettings.MaxSizeInKB); + } + + [Fact] + public void Should_return_default_max_image_file_size() + { + var fileStorageSettings = _context.GetProperty(); + Assert.NotNull(fileStorageSettings); + Assert.Equal(FileStorageSettings.MAX_SUPPORTED_IMAGE_FILE_SIZE_IN_KB, fileStorageSettings.ImageMaxSizeInKB); + } + + [Fact] + public void Should_return_a_custom_max_file_size() + { + _context.SetProperty(new FileStorageSettings() + { + MaxSizeInKB = 1234 + }); + + var fileStorageSettings = _context.GetProperty(); + Assert.NotNull(fileStorageSettings); + Assert.Equal(1234, fileStorageSettings.MaxSizeInKB); + } + + [Fact] + public void Should_return_default_file_size_when_querying_file_attribute_metadata() + { + _context.EnableProxyTypes(Assembly.GetAssembly(typeof(dv_test))); + _context.InitializeMetadata(Assembly.GetAssembly(typeof(dv_test))); + + var entityMetadata = _context.CreateMetadataQuery() + .FirstOrDefault(em => em.LogicalName == dv_test.EntityLogicalName); + + Assert.NotNull(entityMetadata); + + var attributeMetadata = entityMetadata.Attributes.FirstOrDefault(am => am.LogicalName == "dv_file"); + Assert.NotNull(attributeMetadata); + + var fileAttributeMetadata = attributeMetadata as FileAttributeMetadata; + Assert.Equal(FileStorageSettings.DEFAULT_MAX_FILE_SIZE_IN_KB, fileAttributeMetadata.MaxSizeInKB); + } + + [Fact] + public void Should_return_default_image_file_size_when_querying_image_attribute_metadata() + { + _context.EnableProxyTypes(Assembly.GetAssembly(typeof(dv_test))); + _context.InitializeMetadata(Assembly.GetAssembly(typeof(dv_test))); + + var entityMetadata = _context.CreateMetadataQuery() + .FirstOrDefault(em => em.LogicalName == dv_test.EntityLogicalName); + + Assert.NotNull(entityMetadata); + + var attributeMetadata = entityMetadata.Attributes.FirstOrDefault(am => am.LogicalName == "dv_image"); + Assert.NotNull(attributeMetadata); + + var imageAttributeMetadata = attributeMetadata as ImageAttributeMetadata; + Assert.Equal(FileStorageSettings.MAX_SUPPORTED_IMAGE_FILE_SIZE_IN_KB, imageAttributeMetadata.MaxSizeInKB); + } + + } +} \ No newline at end of file diff --git a/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/CreateAttributeMetadataTests.cs b/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/CreateAttributeMetadataTests.cs index 4731511c..6377434c 100644 --- a/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/CreateAttributeMetadataTests.cs +++ b/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/CreateAttributeMetadataTests.cs @@ -6,7 +6,7 @@ namespace FakeXrmEasy.Core.Tests.Metadata { - public class CreateAttributeMetadataTests + public class CreateAttributeMetadataTests: FakeXrmEasyTestsBase { private readonly Type[] _typesTestType; public CreateAttributeMetadataTests() @@ -18,7 +18,7 @@ public CreateAttributeMetadataTests() [Fact] public void Should_generate_file_type() { - var attributeMetadata = MetadataGenerator.CreateAttributeMetadata(typeof(object)); + var attributeMetadata = MetadataGenerator.CreateAttributeMetadata(typeof(object), _context); Assert.NotNull(attributeMetadata); Assert.IsType(attributeMetadata); } diff --git a/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/CreateRelationshipTests.cs b/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/CreateRelationshipTests.cs index 3ed6982c..4377cbf4 100644 --- a/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/CreateRelationshipTests.cs +++ b/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/CreateRelationshipTests.cs @@ -7,7 +7,7 @@ namespace FakeXrmEasy.Core.Tests.Metadata { - public class CreateRelationshipTests + public class CreateRelationshipTests: FakeXrmEasyTestsBase { /* @@ -57,7 +57,7 @@ public System.Collections.Generic.IEnumerable accountleads_association [Fact] public void Should_return_self_referential_relationship_from_one_early_bound_type() { - var entityMetadata = MetadataGenerator.FromType(typeof(Account)); + var entityMetadata = MetadataGenerator.FromType(typeof(Account), _context); var oneToMany = entityMetadata.OneToManyRelationships.FirstOrDefault(rel => rel.SchemaName.Equals(SELF_REFERENTIAL_RELATIONSHIP_NAME)); @@ -83,8 +83,8 @@ public void Should_return_self_referential_relationship_from_one_early_bound_typ [Fact] public void Should_return_entity_metadata_with_one_to_many_and_many_to_one_relationships() { - var accountEntityMetadata = MetadataGenerator.FromType(typeof(Account)); - var contactEntityMetadata = MetadataGenerator.FromType(typeof(Contact)); + var accountEntityMetadata = MetadataGenerator.FromType(typeof(Account), _context); + var contactEntityMetadata = MetadataGenerator.FromType(typeof(Contact), _context); AssertMasterRelationship(accountEntityMetadata); AssertContactsRelationship(accountEntityMetadata, contactEntityMetadata); @@ -93,8 +93,8 @@ public void Should_return_entity_metadata_with_one_to_many_and_many_to_one_relat [Fact] public void Should_return_entity_metadata_with_many_to_many_relationships() { - var testEntityMetadata = MetadataGenerator.FromType(typeof(dv_test)); - var contactEntityMetadata = MetadataGenerator.FromType(typeof(Contact)); + var testEntityMetadata = MetadataGenerator.FromType(typeof(dv_test), _context); + var contactEntityMetadata = MetadataGenerator.FromType(typeof(Contact), _context); AssertManyToManyRelationship(testEntityMetadata, contactEntityMetadata); } diff --git a/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/MetadataGeneratorTests.cs b/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/MetadataGeneratorTests.cs index 17bd821a..b8434153 100644 --- a/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/MetadataGeneratorTests.cs +++ b/tests/FakeXrmEasy.Core.Tests/Metadata/MetadataGeneratorTests/MetadataGeneratorTests.cs @@ -6,7 +6,7 @@ namespace FakeXrmEasy.Core.Tests.Metadata { - public class MetadataGeneratorTests + public class MetadataGeneratorTests: FakeXrmEasyTestsBase { private readonly Type[] _typesWithAccountType; public MetadataGeneratorTests() @@ -17,21 +17,21 @@ public MetadataGeneratorTests() [Fact] public void Should_return_one_metadata_from_one_early_bound_type() { - var metadatas = MetadataGenerator.FromTypes(_typesWithAccountType); + var metadatas = MetadataGenerator.FromTypes(_typesWithAccountType, _context); Assert.Single(metadatas); } [Fact] public void Should_set_primary_id_attribute() { - var accountMetadata = MetadataGenerator.FromTypes(_typesWithAccountType).First(); + var accountMetadata = MetadataGenerator.FromTypes(_typesWithAccountType, _context).First(); Assert.Equal("accountid", accountMetadata.PrimaryIdAttribute); } [Fact] public void Should_set_entity_type_code() { - var accountMetadata = MetadataGenerator.FromTypes(_typesWithAccountType).First(); + var accountMetadata = MetadataGenerator.FromTypes(_typesWithAccountType, _context).First(); Assert.Equal(Account.EntityTypeCode, accountMetadata.ObjectTypeCode); } diff --git a/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/CreateRequestTests.cs b/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/CreateRequestTests.cs index a204a6ee..a6d6093b 100644 --- a/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/CreateRequestTests.cs +++ b/tests/FakeXrmEasy.Core.Tests/Middleware/Crud/FakeMessageExecutors/CreateRequestTests/CreateRequestTests.cs @@ -190,7 +190,7 @@ public void When_creating_a_record_using_early_bound_entities_and_proxytypes_pri [Fact] - public void Shouldnt_store_references_to_variables_but_actual_clones() + public void Should_not_store_references_to_variables_but_actual_clones() { //create an account and then retrieve it with no changes Entity newAccount = new Entity("account"); From 1c46f281669eda01c3be439bf10df41e6545dc63 Mon Sep 17 00:00:00 2001 From: Jordi Date: Fri, 2 Aug 2024 00:38:02 +0200 Subject: [PATCH 5/7] Add necessary conditional precompilation symbols --- .../Metadata/MetadataGenerator.cs | 7 ++++++- tests/DataverseEntities/Entities/dv_test.cs | 2 ++ .../EntityExtensions/CloneEntityTests.cs | 3 +++ .../FileStorage/FileStorageTests.cs | 21 ++++++++++--------- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs b/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs index 6909a919..669426d8 100644 --- a/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs +++ b/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs @@ -248,10 +248,15 @@ internal static AttributeMetadata CreateAttributeMetadata(Type propertyType, IXr #if !FAKE_XRM_EASY else if (typeof(byte[]) == propertyType) { - return new ImageAttributeMetadata() + #if FAKE_XRM_EASY_9 + return new ImageAttributeMetadata(); { MaxSizeInKB = fileStorageSettings.ImageMaxSizeInKB }; + #else + return new ImageAttributeMetadata(); + #endif + } #endif #if FAKE_XRM_EASY_9 diff --git a/tests/DataverseEntities/Entities/dv_test.cs b/tests/DataverseEntities/Entities/dv_test.cs index 70d9e97d..94031936 100644 --- a/tests/DataverseEntities/Entities/dv_test.cs +++ b/tests/DataverseEntities/Entities/dv_test.cs @@ -542,6 +542,7 @@ public string dv_email } } + #if FAKE_XRM_EASY_9 [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("dv_file")] public object dv_file { @@ -550,6 +551,7 @@ public object dv_file return this.GetAttributeValue("dv_file"); } } + #endif [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("dv_file_name")] public string dv_file_Name diff --git a/tests/FakeXrmEasy.Core.Tests/Extensions/EntityExtensions/CloneEntityTests.cs b/tests/FakeXrmEasy.Core.Tests/Extensions/EntityExtensions/CloneEntityTests.cs index 0da7dcc7..6f79a15d 100644 --- a/tests/FakeXrmEasy.Core.Tests/Extensions/EntityExtensions/CloneEntityTests.cs +++ b/tests/FakeXrmEasy.Core.Tests/Extensions/EntityExtensions/CloneEntityTests.cs @@ -45,6 +45,7 @@ public void Should_clone_main_early_bound_object_properties_and_keep_original_ty Assert.Equal(_earlyBoundSource.GetType(), clone.GetType()); } + #if FAKE_XRM_EASY_9 [Fact] public void Should_clone_related_entities() { @@ -85,5 +86,7 @@ public void Should_clone_related_entities() Assert.Equal(relatedEntity2.Id, clonedRelatedEntity2.Id); Assert.Equal(relatedEntity2.LogicalName, clonedRelatedEntity2.LogicalName); } + #endif + } } \ No newline at end of file diff --git a/tests/FakeXrmEasy.Core.Tests/FileStorage/FileStorageTests.cs b/tests/FakeXrmEasy.Core.Tests/FileStorage/FileStorageTests.cs index c38277e0..d0d84284 100644 --- a/tests/FakeXrmEasy.Core.Tests/FileStorage/FileStorageTests.cs +++ b/tests/FakeXrmEasy.Core.Tests/FileStorage/FileStorageTests.cs @@ -38,8 +38,9 @@ public void Should_return_a_custom_max_file_size() Assert.Equal(1234, fileStorageSettings.MaxSizeInKB); } + #if FAKE_XRM_EASY_9 [Fact] - public void Should_return_default_file_size_when_querying_file_attribute_metadata() + public void Should_return_default_image_file_size_when_querying_image_attribute_metadata() { _context.EnableProxyTypes(Assembly.GetAssembly(typeof(dv_test))); _context.InitializeMetadata(Assembly.GetAssembly(typeof(dv_test))); @@ -49,15 +50,15 @@ public void Should_return_default_file_size_when_querying_file_attribute_metadat Assert.NotNull(entityMetadata); - var attributeMetadata = entityMetadata.Attributes.FirstOrDefault(am => am.LogicalName == "dv_file"); + var attributeMetadata = entityMetadata.Attributes.FirstOrDefault(am => am.LogicalName == "dv_image"); Assert.NotNull(attributeMetadata); - var fileAttributeMetadata = attributeMetadata as FileAttributeMetadata; - Assert.Equal(FileStorageSettings.DEFAULT_MAX_FILE_SIZE_IN_KB, fileAttributeMetadata.MaxSizeInKB); + var imageAttributeMetadata = attributeMetadata as ImageAttributeMetadata; + Assert.Equal(FileStorageSettings.MAX_SUPPORTED_IMAGE_FILE_SIZE_IN_KB, imageAttributeMetadata.MaxSizeInKB); } - + [Fact] - public void Should_return_default_image_file_size_when_querying_image_attribute_metadata() + public void Should_return_default_file_size_when_querying_file_attribute_metadata() { _context.EnableProxyTypes(Assembly.GetAssembly(typeof(dv_test))); _context.InitializeMetadata(Assembly.GetAssembly(typeof(dv_test))); @@ -67,12 +68,12 @@ public void Should_return_default_image_file_size_when_querying_image_attribute_ Assert.NotNull(entityMetadata); - var attributeMetadata = entityMetadata.Attributes.FirstOrDefault(am => am.LogicalName == "dv_image"); + var attributeMetadata = entityMetadata.Attributes.FirstOrDefault(am => am.LogicalName == "dv_file"); Assert.NotNull(attributeMetadata); - var imageAttributeMetadata = attributeMetadata as ImageAttributeMetadata; - Assert.Equal(FileStorageSettings.MAX_SUPPORTED_IMAGE_FILE_SIZE_IN_KB, imageAttributeMetadata.MaxSizeInKB); + var fileAttributeMetadata = attributeMetadata as FileAttributeMetadata; + Assert.Equal(FileStorageSettings.DEFAULT_MAX_FILE_SIZE_IN_KB, fileAttributeMetadata.MaxSizeInKB); } - + #endif } } \ No newline at end of file From ccdfeb207da12ff681fc82cb92e789d417a3c41a Mon Sep 17 00:00:00 2001 From: Jordi Date: Fri, 2 Aug 2024 00:40:34 +0200 Subject: [PATCH 6/7] Fix typo after precompilation symbol --- src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs b/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs index 669426d8..c1334b1a 100644 --- a/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs +++ b/src/FakeXrmEasy.Core/Metadata/MetadataGenerator.cs @@ -249,7 +249,7 @@ internal static AttributeMetadata CreateAttributeMetadata(Type propertyType, IXr else if (typeof(byte[]) == propertyType) { #if FAKE_XRM_EASY_9 - return new ImageAttributeMetadata(); + return new ImageAttributeMetadata() { MaxSizeInKB = fileStorageSettings.ImageMaxSizeInKB }; From f0dadc22fa024ddb84ebb8c00668e85e4ce3d10a Mon Sep 17 00:00:00 2001 From: Jordi Date: Fri, 2 Aug 2024 00:47:47 +0200 Subject: [PATCH 7/7] Add precompilation symbols for image generated attributes --- tests/DataverseEntities/Entities/account.cs | 2 ++ tests/DataverseEntities/Entities/contact.cs | 2 ++ tests/DataverseEntities/Entities/dv_test.cs | 2 ++ 3 files changed, 6 insertions(+) diff --git a/tests/DataverseEntities/Entities/account.cs b/tests/DataverseEntities/Entities/account.cs index 7d8cdb3d..19de5ae1 100644 --- a/tests/DataverseEntities/Entities/account.cs +++ b/tests/DataverseEntities/Entities/account.cs @@ -1927,6 +1927,7 @@ public string EMailAddress3 } } + #if !FAKE_XRM_EASY /// /// Shows the default image for the record. /// @@ -1944,6 +1945,7 @@ public byte[] EntityImage this.OnPropertyChanged("EntityImage"); } } + #endif [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("entityimage_timestamp")] public System.Nullable EntityImage_Timestamp diff --git a/tests/DataverseEntities/Entities/contact.cs b/tests/DataverseEntities/Entities/contact.cs index 49b2f407..c509a6e8 100644 --- a/tests/DataverseEntities/Entities/contact.cs +++ b/tests/DataverseEntities/Entities/contact.cs @@ -2434,6 +2434,7 @@ public string EmployeeId } } + #if !FAKE_XRM_EASY /// /// Shows the default image for the record. /// @@ -2451,6 +2452,7 @@ public byte[] EntityImage this.OnPropertyChanged("EntityImage"); } } + #endif [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("entityimage_timestamp")] public System.Nullable EntityImage_Timestamp diff --git a/tests/DataverseEntities/Entities/dv_test.cs b/tests/DataverseEntities/Entities/dv_test.cs index 94031936..cc1c6f2a 100644 --- a/tests/DataverseEntities/Entities/dv_test.cs +++ b/tests/DataverseEntities/Entities/dv_test.cs @@ -582,6 +582,7 @@ public System.Nullable dv_float } } + #if !FAKE_XRM_EASY [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("dv_image")] public byte[] dv_image { @@ -594,6 +595,7 @@ public byte[] dv_image this.SetAttributeValue("dv_image", value); } } + #endif [Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("dv_image_timestamp")] public System.Nullable dv_image_Timestamp