- Extend RetrieveMultipleRequestHandler with support for TopCount and Take (@mai98)
- Fix plugin vs workflow execution order (@mai98)
- Support for InstantiateTemplateRequest (@nedergaardcloud)
- Fix: An update request of Incident without a StateCode would throw NullReferenceException (@mkholt)
- Add support for .NET8 (@mkholt)
- Remove support for versions older than 9 (365) (@mkholt)
- Set InitiatingUserId and UserId in workflow context (@mai98)
- Fix: CloseIncidentRequestHandler now uses UpdateRequest instead of SetStateRequest (@mai98)
- Fix: Throw FaultException when trying to update a resolved Incident (@mai98)
- Add support for Retrieve plugins (@mai98)
- Support Distinct in RetrieveMultipleRequestHandler when using Query Expressions (@mai98)
- Support for SendEmailRequest and PartyList (@mai98)
- Add file block upload handlers, without file-storage (@magesoe @nedergaardcloud)
- Add support for multiple ThenBy's in retrievemultiple (@misoeli)
- Add initializer based on an existing instance, letting us copy an already initialized XrmMockup instance (@mkholt)
- Add optional tracing class factory to settings (@mkholt)
- Add timers during initialization (@mkholt)
- Add flag to mitigate duplicate security role names (@mkholt)
- Use Mockup service instead of XrmExtension (@magesoe)
- Add support for RetrieveCurrentOrganization Request (@kato88)
- Ensure metadata folder is added in both packages (@mkholt)
- Implement IOrganizationServiceAsync2 (@mkholt)
- Ensure dlls are not loaded multiple times (@magesoe)
- Add support for .NET6 (@mkholt)
- Add TargetType to SetEntityProperty actions in workflow handling to ensure differing types are handled correctly (@mkholt)
- Added SDK message processing step to plugin query (@kato88)
- Added snapshot to file feature (@tvbirch)
- Added support for virtual datatype (@nillas12)
- Log when metadata has been generated
- Handle duplicate access right for same security role
- Added support for AddUserToRecordTeam and RemoveUserFromRecordTeam requests (@MattTrinder1)
- Fixed error with excess white-space in fullnames (@MattTrinder1)
- Made plugin finding with DAXIF language agnostic
- Added option to reset a single table in the database (@MattTrinder1)
- Improved performance of RetrieveMultiple for large queries by up to 30 percent (@MattTrinder1)
- Fixed updated to parent records in workflow (@MattTrinder1)
- Improved handling of type casting in workflows (@MattTrinder1)
- isDocument on annotation is now automatically populated (@MattTrinder1)
- Security checks are now skipped for lookups if the value is unchanged (@MattTrinder1)
- Entity attributes are now cloned when the request is received. (@MattTrinder1)
- Team metadata is now generated by default.
- Added BeginsWith, EndsWith and not versions (@MattTrinder1)
- Entity attributes are now cloned (@MattTrinder1)
- Added support for closeincident plugins
- Reverted breaking change to DAXIF registration plugins
- String comparison in queries is now case insensitive (@MattTrinder1)
- Added support for extensions to XrmMockup that tap into core
- Added support for dictionary variables in workflows (@MattTrinder1)
- Improved performance of fetching a row in the database (@MattTrinder1)
- Security error messages now include the SecLib::AccessCheckEx2 tag (@MattTrinder1)
- Plugins registered on AnyEntity are now handled in all cases (@MattTrinder1)
- Plugin steps are now able have the same name but different assemblies (@MattTrinder1)
- Fixed an error where assign cascaded to organization owned entities (@MattTrinder1)
- Added support for RetrieveMetadataChangesRequest (@MattTrinder1)
- Moved security checks to validation step in the pipeline (@MattTrinder1)
- Added support for impersonating user in plugins (@MattTrinder1)
- Fixed error when using entityreferences in linkentities.
- Add formatted values for late-bound entities (@MattTrinder1)
- Added calculated field calculation to retrieve multiple (@MattTrinder1)
- Added roletemplates as actual records (@MattTrinder1)
- Fixed error where tracing service throws an exception (@MattTrinder1)
- CodeActivities are now allowed to extend abstract classes.
- Plugins without a base class will now be found if any class from the dll is referenced in the basePluginTypes setting.
- Fixed issue where empty calculated fields caused retrieves to fail.
- Fixed issue with retrieving plugins registered on AnyEntity, that was not registered with DAXIF.
- Fix issue in published nuget package where latest version of metadata generator was not added.
- Fixed error with sales solution which had a role without a businessunit
- Added support for RetrieveMultiple plugins
- Made some system attributes available in plugins
- Added Connection String Authentication method
- Fixed an issue in 2011 where default teams would fail to create
- Fixed additional errors with orphaned security
- Fixed generation error due to orphaned roleprivilege
- Added new method
AddSecurityRolesToPrinciple
for adding security roles to a user or a team
- Default teams are now added and managed in relation to businessunits.
- Custom workflows with optional parameters will now correctly be passed null values form workflows.
- The metadata generator will now fetch plugin images from selected solutions instead of a hard-coded solution.
- Fix a bug with team security where members of an owner team had full access to any records the team owned
- Fixed a bug with XrmMockup365 when it was installed on projects without the tooling connector
- Added better description when no default status reason exists
- Added support for client secret
- It's happening!
- Inactive incidents can no longer be modified
- Fixed error with execution-ordering of sync and async plugins and workflows
- Excluded most standard workflows when generating metadata
- Added TotalRecordCount to RetrieveMultipleResponse
- Fixed an issue where CloseIncident request did not trigger plugins listening on update or set state of incident
- XrmMockup is now back to include the changes introduced after 0.9.10
- Refactoring of the latest pull request to ensure that XrmMockup performance is not affected
- Fix issue in Retrieve Multiple request unable to handle missing entity alias on linked-entity and entity name on linked-entity filter criterias
- Re-added privilege check for Append and Append-To on create and update. This feature can be toggled of if necessary
- Refactor internal check for user and team privilege
- Added new method
GetPrivilege
for retriving the privilege for a given user or team - Added new method
HasPermission
that checks if a user or team has a given access to a record
- Reverted to a stable version based on 0.9.10. Releases after 0.9.10 introduced severe performance degradation with a factor of 3-4 slower tests.
- Releases also introduced bugs and invalid CRM logic. Will work on reimplementing the changes added in later version, but will require time to ensure quality.
- Please use version between 0.9.10 and 0.12.0 if needed.
- added changes from release 0.11.1
- Fixed a bug in calculated fields which expected caluclated fields based on lookup fields to always have a value.
- Added a new optional flag "BigBang" that simulates the entire universe.
- Implemented FilterExpressions conditions across multiple LinkEntities (@aronmek)
- Changed the Created/Modified On fields to be Utc based. (@aronmek)
- Fixed error related to shared variables in plugincontext (@aronmek)
- Fixed error when checking permissions in Deep privileges
- Now, XrmMockup also considers files in execution directory when looking for proxy types.
- Added ConditionOperator NotLike
- Fixed error with Like, where both sides were wildcard
- Added a check that ensures selected attributes exist on the entity.
- Fixed errors in MergeRequest.
- Fixed errors related to security checks for Parent Businessunit privilege.
- Fixed error where default values for boolean and picklists were not set (thanks @majakubowski)
- Allows several plugin steps for the same plugin type (thanks @majakubowski)
- Now supports QueryByAttribute, RetrieveAttribute, RetrievePrincipalAccess & WhoAmI (thanks @majakubowski)
- Fixed error where null values was not handled correctly on create and update (thanks @majakubowski)
- Workflows: Added support for clear (thanks @majakubowski)
- Workflows: Added support for send email (thanks @majakubowski)
- Workflows: Various bug fixes and improvements (thanks @majakubowski)
- Add support for formatted values in RetrieveMultiple
- Add support for 'In' and 'NotIn' in conditional expression for query expressions
- Fixed a bug where members of a team could not read any records owned by a team in the same Business Unit og child Business Unit
- Added target type Guid, fixed bug when reference did not have value.
- Fixed a bug in delete request where a related entity only had N:N relationship.
- Fixed a bug when accessing ParentPluginContext on a PluginContext.
- Fixed a bug where registered plugins are disabled when XrmMockup is initialized first time
- Fixed a bug in ExecuteMultiple where IsFaulted was not set
- Fix bug in Owner Team where members could not access records that the team had access too
- Reverted handling of access teams
- Reverted TeamType for now as access teams are not supported
- CreateTeam now creates an owner team explicitly
- Fix bugs in AddMembersTeamRequest and RemoveMembersTeamRequest
- Add user priviliage check access through owner teams
- Update teams to handle Owner teams
- Updated CreateTeam methods to also excpect a team type
- Add new methods for adding or removing users from a team
- Fix bug when fetching security roles in Metadata Generator
- Added new method for registering additional plugins
- Added new method for disabling registered plugins
- It is now possible to test a selection of plugins
- XML documentation is added to nuget package
- Add new snapshot feature. It is now possible to take a snapshot of the database and swap between different snapshot making for faster initialization setup
- Fixed Assign Request to actually update the owner
- Fixed issue in cascading behaviour due to incorrect fetching of related entities.
- Implemented new requests:
- IsValidStateTransition
- CloseIncident
- RetrieveExchangeRate
- Added filtering of metadata in RetrieveEntityRequest
- Changed dependency description of workflow dll for 365 version.
- Fixed bug where nuget package could be installed in projects running .NET <4.6.2 but did not actually work. Now nuget fails with an error if trying to install in projects running older versions of .NET framework.
- Fixed a bug where the primary entity id was not included beyond the first plugin execution in a chain.
- Fixed a bug where activitypointer was not included as a default entity in the metadata generator.
- Added handling of pre-validation plugins
- Added a new optional parameter in the XrmSettings for specifying the location of the directory containing the metadata files
- Changed the accessibility level for the Plugin class to be internal. The class was only intended for internal system plugins
- Added a new configuration parameter for MetadataGenerator to disable fetching of metadata of entities in local assemblies. This feature is now false as default
- Changed MetadataGenerator to also fetch entities from the list of specified solutions.
- The changes to which metadata generator means that the generation of metadata will take longer time to complete and might not contain the same entities as before. However, it is now more deterministic and consistent.
- Fixed an issue in SetEntityProperty where ExchangeRate could be null
- Updated live-debugging feature to work again that was previous lost in refactoring
- Fixed an issue where making two XrmMockup Instance resulted in EnableProxyType not working on second instance
- Updated target framwork to .NETFramework 4.6.2
- Fixed an issue where money field were incorrectly calculated
- Added a public getter for the base currency.
- Fixed error with Name property not being set on entityReferences.
- Fixed #26 concerning duplicate detection of N:N relations.
- Added support for activity pointers
- Fixed bugs related to statecode and statuscode attributes
- It's now illegal to create an organization service for a non-existing user
- Removed excessive console output
- Added support for testing with data from CRM
- Fixed #15 concerning implementing RetrieveOptionSetRequest
- Fixed #14 concerning adding formatted values to retrieved records
- Most classes have been moved to the namespace
DG.Tools.XrmMockup
. - Changed the internal database implementation to act more like it's real counter-part.
- MetadataGenerator can now also consume command-line arguments, instead of only those in the .config file.
- Fixed handling of generic OrganizationRequests given a RequestName.
- Fixed a problem with
AddHours(...)
on XrmMockupBase. - Fixed a problem with the stack trace being cut-off when an error occurred inside a plugin.
- Added a setting, which enables developers to choose to ignore requests, in case they aren't implemented, instead of throwing an exception.
- Fixed bug with status transitions when they were disabled
- Added support for status transitions
- Fixed invalid cast exception when creating an activity with ActivityParty set
- Fixed queries ignoring certain conditions like
NotEqual
if attribute was null - Fixed queries assuming that the linked entity-table already exists
- Added support for
RetrieveEntityRequest
- A lot of minor code refactoring
- Rename of a few files
- Security roles GUIDs are now found at
DG.Tools.XrmMockup.SecurityRoles
- Added
TypeDeclarations.cs
to NuGet package so it is automatically added to the target project
- Changed to beta
- XrmMockupSettings now takes enumerables of CodeActivity and Plugin types
- Added
On
,OnOrAfter
, andOnOrBefore
as valid operators in workflow execution - MetadataGenerator uses
appSettings
instead of the Visual Studio Settings designer - Waiting workflows now properly reset during tests
- Bug fixes
- Orderby can now contain attributes that aren't selected in the query
- Added D365 version
- Fixed error with the ids of entities being set to the wrong attribute
- Associate and Dissasociate can now trigger plugins
- Intersect entities can now be retrieved if they have metadata
- Fixed error with plugins not triggering on win or lose
- Fixed error with plugins not triggering on win or lose
- Fixed error with ownerid not being set on createRequest
- Added support for Win and Lose Opportunity requests
- Fixed error with null values in entitycollection in workflow
- Fixed error with otherwise branches in workflows
- Fixed error with assembly loading
- Fixed errors with workflows
- Fixed errors with orderby in retrieveMultiple
- Plugins can now be registered from CRM in addition to DAXIF.
- Plugins no longer trigger on unsettable attributes
- Plugins listening to base currency attributes now trigger correctly
- Bug fixes
- Bug fixes
- Added the option to choose whether a service acts as SDK or UI
- Bug fixes
- Metadata generation no longer requires the project to be build. Looks for proxy types in build directories.
- Bug fix
- Bug fix
- Made workflows and security roles modular
- Bug fixes
- MetadataGen now looks in debug dlls instead of release
- Bug fixes
- Bug fixes
- Added logic for workflows with related entities
- Changed the way businessunits and security roles declarations works
- Minor bug fixes
- Added logic for workflows with timeouts
- Now only workflows that needs to be triggered gets parsed
- No longer build for you, looks in release dir instead
- Support for security roles
- Workflow execution for crm 2016
- Bug fixes
- Minor bug fixes
- Fixed errors with precision in currencies and added support for calculated and rollup fields
- Added support for precision in currencies and fixed errors with standard currencies
- Fixed errors with preimage
- Added additional cases for currency base updates
- Fixed errors with metadata.fsx and assembly loading
- Added support for currencies and fixed errors with context
- Added metadata usage
- Fix to delete functionality
- More general fixes
- Retrieve and upsert with alternate key fix
- Retrieve with alternate key fix
- Early alpha build