| | 1 | | using Microsoft.Crm.Sdk.Messages; |
| | 2 | | using Microsoft.Xrm.Sdk; |
| | 3 | | using System; |
| | 4 | |
|
| | 5 | | namespace FakeXrmEasy.FakeMessageExecutors |
| | 6 | | { |
| | 7 | | public class SetStateRequestExecutor : IFakeMessageExecutor |
| | 8 | | { |
| | 9 | | public bool CanExecute(OrganizationRequest request) |
| 12 | 10 | | { |
| 12 | 11 | | return request is SetStateRequest; |
| 12 | 12 | | } |
| | 13 | |
|
| | 14 | | public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx) |
| 12 | 15 | | { |
| 12 | 16 | | var req = request as SetStateRequest; |
| | 17 | |
|
| | 18 | | //We are going to translate a SetStateRequest into an update message basically |
| | 19 | |
|
| 12 | 20 | | var entityName = req.EntityMoniker.LogicalName; |
| 12 | 21 | | var guid = req.EntityMoniker.Id; |
| | 22 | |
|
| 12 | 23 | | var entityToUpdate = new Entity(entityName) { Id = guid }; |
| 12 | 24 | | entityToUpdate["statecode"] = req.State; |
| 12 | 25 | | entityToUpdate["statuscode"] = req.Status; |
| | 26 | |
|
| 12 | 27 | | var fakedService = ctx.GetFakedOrganizationService(); |
| 12 | 28 | | fakedService.Update(entityToUpdate); |
| | 29 | |
|
| 12 | 30 | | return new SetStateResponse(); |
| 12 | 31 | | } |
| | 32 | |
|
| | 33 | | public Type GetResponsibleRequestType() |
| 4270 | 34 | | { |
| 4270 | 35 | | return typeof(SetStateRequest); |
| 4270 | 36 | | } |
| | 37 | | } |
| | 38 | | } |