public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var assignRequest = (AssignRequest)request;

            var target = assignRequest.Target;
            var assignee = assignRequest.Assignee;

            if (target == null)
            {
                throw new FaultException<OrganizationServiceFault>(new OrganizationServiceFault(), "Can not assign without target");
            }

            if (assignee == null)
            {
                throw new FaultException<OrganizationServiceFault>(new OrganizationServiceFault(), "Can not assign without assignee");
            }

            var service = ctx.GetFakedOrganizationService();

            var assignment = new Entity
            {
                LogicalName = target.LogicalName,
                Id = target.Id,
                Attributes = new AttributeCollection
                {
                    { "ownerid", assignee }
                }
            };

            service.Update(assignment);

            return new AssignResponse();
        }
        public void Put_HasNoId_ThrowsException()
        {
            // Given
            var response = new OrganizationResponse { Item = new Organization { Name = "blah blah" } };
            var request = new OrganizationRequest { Item = new Organization { Name = "blah blah" } };
            _client.Setup(b => b.Put<OrganizationResponse>(It.IsAny<Uri>(), request, "application/json")).Returns(response);
            var resource = new OrganizationResource(_client.Object);

            // When, Then
            Assert.Throws<ArgumentException>(() => resource.Put(request));
        }
Esempio n. 3
1
        public override void Execute(IProcessExecutionContext executionContext, IWorkSession session, ITransaction transaction, ISerializedParameters parameters)
        {
            try
            {
                if (!parameters.ContainsKey("ActionName"))
                {
                    throw new Exception("ContextRecordAction requires a parameter for ActionName");
                }

                var contextRecord = transaction.TransactionContext;
                var dataRecord    = transaction.DataRecord;

                var req = new OrganizationRequest(parameters["ActionName"]);
                req["Target"]      = new EntityReference(contextRecord.RecordType, contextRecord.Id);
                req["Transaction"] = transaction.ToEntityReference();
                req["DataRecord"]  = new EntityReference(dataRecord.RecordType, dataRecord.Id);

                //process any additional parameter data passed in from the configuration.
                if (parameters.Count > 1)
                {
                    foreach (var key in parameters.Keys)
                    {
                        if (key != "ActionName" && !string.IsNullOrEmpty(parameters[key]))
                        {
                            req[key] = parameters[key];
                        }
                    }
                }

                executionContext.DataService.ToOrgService().Execute(req);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
        }
            public async Task ReturnsCorrectOrganizationsWithSince()
            {
                string orgLogin1 = Helper.MakeNameWithTimestamp("MyOrganization1");
                string orgName1 = string.Concat(orgLogin1, " Display Name 1");
                string orgLogin2 = Helper.MakeNameWithTimestamp("MyOrganization2");
                string orgName2 = string.Concat(orgLogin2, " Display Name 2");
                string orgLogin3 = Helper.MakeNameWithTimestamp("MyOrganization3");
                string orgName3 = string.Concat(orgLogin3, " Display Name 3");

                var newOrganization1 = new NewOrganization(orgLogin1, EnterpriseHelper.UserName, orgName1);
                var newOrganization2 = new NewOrganization(orgLogin2, EnterpriseHelper.UserName, orgName2);
                var newOrganization3 = new NewOrganization(orgLogin3, EnterpriseHelper.UserName, orgName3);

                var createdOrganization1 = await _github.Enterprise.Organization.Create(newOrganization1);
                var createdOrganization2 = await _github.Enterprise.Organization.Create(newOrganization2);
                var createdOrganization3 = await _github.Enterprise.Organization.Create(newOrganization3);

                var requestParameter = new OrganizationRequest(createdOrganization1.Id);

                var organizations = await _organizationsClient.GetAll(requestParameter);

                Assert.DoesNotContain(organizations, (org => org.Login == orgLogin1));
                Assert.Contains(organizations, (org => org.Login == orgLogin2));
                Assert.Contains(organizations, (org => org.Login == orgLogin3));
            }
 /// <summary>
 /// Override Execute method only
 /// </summary>
 /// <param name="request">OrganizationRequest</param>
 /// <returns>OrganizationResponse</returns>
 public override OrganizationResponse Execute(OrganizationRequest request)
 {
     // If request is RetrieveMultipleReuqest, and Query is QueryExpression, then propagate to Event.
     if(request is RetrieveMultipleRequest && (request as RetrieveMultipleRequest).Query is QueryExpression)
     {
         this.PreExecute(this, new PreExecuteEventArgs((request as RetrieveMultipleRequest).Query as QueryExpression));
     }
     return base.Execute(request);
 }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var associateRequest = request as AssociateRequest;
            var service = ctx.GetFakedOrganizationService();

            if (associateRequest == null)
            {
                throw new Exception("Only associate request can be processed!");
            }

            var associateRelationship = associateRequest.Relationship;
            var relationShipName = associateRelationship.SchemaName;
            var fakeRelationShip = ctx.GetRelationship(relationShipName);

            if (fakeRelationShip == null)
            {
                throw new Exception(string.Format("Relationship {0} does not exist in the metadata cache", relationShipName));
            }

            if (associateRequest.Target == null)
            {
                throw new Exception("Association without target is invalid!");
            }

            foreach (var relatedEntityReference in associateRequest.RelatedEntities)
            {
                if (fakeRelationShip.RelationshipType == XrmFakedRelationship.enmFakeRelationshipType.ManyToMany)
                {
                    var association = new Entity(fakeRelationShip.IntersectEntity)
                    {
                        Attributes = new AttributeCollection
                        {
                            { fakeRelationShip.Entity1Attribute, associateRequest.Target.Id },
                            { fakeRelationShip.Entity2Attribute, relatedEntityReference.Id }
                        }
                    };

                    service.Create(association);
                }
                else
                {
                    //One to many
                    //Get entity to update
                    var entityToUpdate = new Entity(relatedEntityReference.LogicalName)
                    {
                        Id = relatedEntityReference.Id
                    };

                    entityToUpdate[fakeRelationShip.Entity2Attribute] = associateRequest.Target;
                    service.Update(entityToUpdate);
                }

            }

            return new AssociateResponse ();
        }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var createRequest = (CreateRequest)request;
            
            var service = ctx.GetFakedOrganizationService();

            service.Create(createRequest.Target);

            return new CreateResponse();
        }
        public void Put_Called_BuildsUri()
        {
            // Given
            var request = new OrganizationRequest { Item = new Organization { Name = "Organizations", Id = 123 } };
            var resource = new OrganizationResource(_client.Object);

            // When
            resource.Put(request);

            // Then
            _client.Setup(b => b.BuildUri(It.IsAny<string>(), ""));
        }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var req = request as WhoAmIRequest;

            var response = new WhoAmIResponse
            {
                Results = new ParameterCollection
                                { { "UserId", ctx.CallerId.Id } }

            };
            return response;
        }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var req = request as PublishXmlRequest;

            if(string.IsNullOrWhiteSpace(req.ParameterXml))
            {
                throw new Exception(string.Format("ParameterXml property must not be blank."));
            }
            return new PublishXmlResponse()
            {

            };
        }
        public void Put_CalledWithItem_ReturnsReponse()
        {
            // Given
            var response = new OrganizationResponse { Item = new Organization { Name = "blah blah" } };
            var request = new OrganizationRequest { Item = new Organization { Name = "blah blah", Id = 123 } };
            _client.Setup(b => b.Put<OrganizationResponse>(It.IsAny<Uri>(), request, "application/json")).Returns(response);
            var resource = new OrganizationResource(_client.Object);

            // When
            var result = resource.Put(request);

            // Then
            Assert.That(result, Is.EqualTo(response));
        }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var createRequest = (CreateRequest)request;

            var service = ctx.GetFakedOrganizationService();

            var guid = service.Create(createRequest.Target);

            return new CreateResponse()
            {
                ResponseName = "Create",
                Results = new ParameterCollection { { "id", guid } }
            };
        }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var deleteRequest = (DeleteRequest)request;

            var target = deleteRequest.Target;

            if (target == null)
            {
                throw new FaultException<OrganizationServiceFault>(new OrganizationServiceFault(), "Can not delete without target");
            }

            var service = ctx.GetFakedOrganizationService();
            service.Delete(target.LogicalName, target.Id);

            return new DeleteResponse();
        }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var disassociateRequest = request as DisassociateRequest;
            var service = ctx.GetFakedOrganizationService();

            if (disassociateRequest == null)
            {
                throw new Exception("Only disassociate request can be processed!");
            }

            var relationShipName = disassociateRequest.Relationship.SchemaName;
            var relationShip = ctx.GetRelationship(relationShipName);

            if (relationShip == null)
            {
                throw new Exception(string.Format("Relationship {0} does not exist in the metadata cache", relationShipName));
            }

            if (disassociateRequest.Target == null)
            {
                throw new Exception("Disassociation without target is invalid!");
            }

            foreach (var relatedEntity in disassociateRequest.RelatedEntities)
            {
                var query = new QueryExpression(relationShip.IntersectEntity)
                {
                    ColumnSet = new ColumnSet(true),
                    Criteria = new FilterExpression(LogicalOperator.And)
                };

                query.Criteria.AddCondition(new ConditionExpression(relationShip.Entity1Attribute,
                    ConditionOperator.Equal, disassociateRequest.Target.Id));
                query.Criteria.AddCondition(new ConditionExpression(relationShip.Entity2Attribute,
                    ConditionOperator.Equal, relatedEntity.Id));

                var results = service.RetrieveMultiple(query);

                if (results.Entities.Count == 1)
                {
                    service.Delete(relationShip.IntersectEntity, results.Entities.First().Id);
                }
            }

            return new DisassociateResponse();
        }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var executeTransactionRequest = (ExecuteTransactionRequest)request;
            var response = new ExecuteTransactionResponse { ["Responses"] = new OrganizationResponseCollection() };

            var service = ctx.GetFakedOrganizationService();

            foreach (var r in executeTransactionRequest.Requests)
            {
                var result = service.Execute(r);

                if (executeTransactionRequest.ReturnResponses.HasValue && executeTransactionRequest.ReturnResponses.Value)
                {
                    response.Responses.Add(result);        
                }
            }
            return response;
        }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var req = request as SetStateRequest;

            //We are going to translate a SetStateRequest into an update message basically

            var entityName = req.EntityMoniker.LogicalName;
            var guid = req.EntityMoniker.Id;

            var entityToUpdate = new Entity(entityName) { Id = guid };
            entityToUpdate["statecode"] = req.State;
            entityToUpdate["statuscode"] = req.Status;

            var fakedService = ctx.GetFakedOrganizationService();
            fakedService.Update(entityToUpdate);

            return new SetStateResponse();
        }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var associateRequest = request as AssociateRequest;
            var service = ctx.GetFakedOrganizationService();

            if (associateRequest == null)
            {
                throw new Exception("Only associate request can be processed!");
            }

            var relationShipName = associateRequest.Relationship.SchemaName;
            var relationShip = ctx.GetRelationship(relationShipName);

            if (relationShip == null)
            {
                throw new Exception(string.Format("Relationship {0} does not exist in the metadata cache", relationShipName));
            }

            if (associateRequest.Target == null)
            {
                throw new Exception("Association without target is invalid!");
            }

            foreach (var relatedEntity in associateRequest.RelatedEntities)
            {
                var association = new Entity(relationShip.IntersectEntity)
                {
                    Attributes = new AttributeCollection
                        {
                            { relationShip.Entity1Attribute, associateRequest.Target.Id },
                            { relationShip.Entity2Attribute, relatedEntity.Id }
                        }
                };

                service.Create(association);


            }

            return new AssociateResponse ();
        }
Esempio n. 18
0
        public string GetCustomCrmConfig()
        {
            string xmlCustom = string.Empty;
            byte[] binary = null;

            OrganizationServiceProxy serviceProxy = GetOrganizationService();

            //Request the action "GetLog4Net"
            OrganizationRequest request = new OrganizationRequest("new_GetLog4NetConfiguration");

            //Get the response for the action
            OrganizationResponse response = serviceProxy.Execute(request);
            EntityReference webResourceReference = (EntityReference)response.Results["appender"];

            //Retrieve the webresource entity object
            Entity wb = serviceProxy.Retrieve("webresource", webResourceReference.Id, new ColumnSet("content"));

            binary = Convert.FromBase64String(wb.Attributes["content"].ToString());
            if (binary != null) xmlCustom = UnicodeEncoding.UTF8.GetString(binary);
            return xmlCustom;
        }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var req = request as InsertOptionValueRequest;

            if(req.Label == null)
                throw new Exception("Label must not be null");

            if (string.IsNullOrWhiteSpace(req.Label.LocalizedLabels[0].Label))
            {
                throw new Exception("Label must not be empty");
            }
            
            if(string.IsNullOrEmpty(req.OptionSetName)
                && (string.IsNullOrEmpty(req.EntityLogicalName)
                || string.IsNullOrEmpty(req.AttributeLogicalName)))
            {
                throw new Exception("At least OptionSetName or both the EntityName and AttributeName must not be provided");
            }

            string key = "";
            if (!string.IsNullOrWhiteSpace(req.OptionSetName))
                key = req.OptionSetName;
            else
                key = string.Format("{0}#{1}", req.EntityLogicalName, req.AttributeLogicalName);

            if (!ctx.OptionSetValuesMetadata.ContainsKey(key))
                ctx.OptionSetValuesMetadata.Add(key, new OptionSetMetadata());

            var optionSetMetadata = ctx.OptionSetValuesMetadata[key];
            optionSetMetadata.Options.Add(new OptionMetadata()
            {
                MetadataId = Guid.NewGuid(),
                Value = req.Value,
                Label = req.Label
            });


            return new InsertOptionValueResponse();
        }
        private void PublishSolution()
        {
            ExecuteAction(Solution.ToString(), delegate
            {
                WriteProgress(new ProgressRecord(1, "Publishing Components", string.Format("Collecting components from solution '{0}'...", Solution))
                {
                    RecordType = ProgressRecordType.Processing
                });
                IEnumerable <PublishComponentInfo> solutioncomponents = CollectSolutionComponents(Solution);

                WriteProgress(new ProgressRecord(1, "Publishing Components", "Initializing components to publish...")
                {
                    RecordType = ProgressRecordType.Processing
                });
                solutioncomponents = InitializePublishComponents(solutioncomponents);
                string publishXml  = ConstructPublishXml(
                    solutioncomponents,
                    solutioncomponents.Any(e =>
                                           e.ComponentType == 48 || e.ComponentType == 49 || e.ComponentType == 50 ||
                                           e.ComponentType == 52 || e.ComponentType == 53 || e.ComponentType == 55),
                    solutioncomponents.Any(e => e.ComponentType == 62));

                base.WriteVerboseWithTimestamp(publishXml);

                WriteProgress(new ProgressRecord(1, "Publishing Components", string.Format("Publishing components for solution '{0}'...", Solution))
                {
                    RecordType = ProgressRecordType.Processing
                });

                OrganizationRequest request = new OrganizationRequest("PublishXml")
                {
                    Parameters = new ParameterCollection()
                };
                request.Parameters.Add("ParameterXml", publishXml);

                OrganizationResponse response = _repository.Execute(request);
            });
        }
Esempio n. 21
0
        internal override OrganizationResponse Execute(OrganizationRequest orgRequest, EntityReference userRef)
        {
            var request = MakeRequest <AddMembersTeamRequest>(orgRequest);

            // Check if the team exist
            if (!db.HasRow(new EntityReference(LogicalNames.Team, request.TeamId)))
            {
                throw new MockupException($"Team with id {request.TeamId} does not exist");
            }

            var teamMembers = db.GetEntities(LogicalNames.TeamMembership).Where(x => x.GetAttributeValue <Guid>("teamid") == request.TeamId);

            foreach (var userId in request.MemberIds)
            {
                // Check if the user exist
                if (!db.HasRow(new EntityReference(LogicalNames.SystemUser, userId)))
                {
                    throw new MockupException($"User with id {userId} does not exist");
                }

                // Check if the user is already a member of the team
                if (teamMembers.Any(t => t.GetAttributeValue <Guid>("systemuserid") == userId))
                {
                    throw new MockupException($"User with id {userId} is already member of the team with id {request.TeamId}");
                }
            }

            foreach (var userId in request.MemberIds)
            {
                var teamMember = new Entity(LogicalNames.TeamMembership);
                teamMember["teamid"]       = request.TeamId;
                teamMember["systemuserid"] = userId;
                teamMember.Id = Guid.NewGuid();
                db.Add(teamMember);
            }

            return(new AddMembersTeamResponse());
        }
Esempio n. 22
0
        private OrganizationResponse ExecuteAction(OrganizationRequest request)
        {
            var action = workflowManager.GetActionDefaultNull(request.RequestName);

            var workflow = workflowManager.ParseWorkflow(action);

            if (workflow.Input.Where(a => a.Required).Any(required => !request.Parameters.ContainsKey(required.Name)))
            {
                throw new FaultException($"Call to action '{request.RequestName}' but no all required input arguments were provided");
            }

            var entity = db.GetEntityOrNull(request.Parameters["Target"] as EntityReference).CloneEntity();

            var inputs = workflow.Input.Where(a => request.Parameters.ContainsKey(a.Name))
                         .Select(a => new KeyValuePair <string, object>(a.Name, request.Parameters[a.Name]));

            foreach (var input in inputs)
            {
                var argumentName = "{" + input.Key + "(Arguments)}";
                workflow.Variables.Add(argumentName, input.Value);
            }

            var postExecution = workflowManager.ExecuteWorkflow(workflow, entity, null, this);

            var outputs = workflow.Output.Where(a => postExecution.Variables.ContainsKey(a.Name))
                          .Select(a => new KeyValuePair <string, object>(a.Name, postExecution.Variables[a.Name]));

            var resp = new OrganizationResponse();

            foreach (var output in outputs)
            {
                resp.Results[output.Key] = output.Value;
            }

            postExecution.Variables = new Dictionary <string, object>();

            return(resp);
        }
Esempio n. 23
0
        public OrganizationResponse GetOrganizationUsers(OrganizationRequest request)
        {
            try
            {
                Epi.Web.BLL.User userImplementation = new Epi.Web.BLL.User(_userDao);
                // Transform SurveyInfo data transfer object to SurveyInfo business object
                OrganizationBO organization = request.Organization.ToOrganizationBO();
                var            response     = new OrganizationResponse();

                if (!ValidRequest(request, response, Validate.All))
                {
                    return(response);
                }

                List <UserBO> userBOList = userImplementation.GetUsersByOrgId(request.Organization.OrganizationId);
                response.OrganizationUsersList = userBOList.ToUserDTOList();
                return(response);
            }
            catch (Exception ex)
            {
                throw new FaultException <CustomFaultException>(new CustomFaultException(ex));
            }
        }
        public async void PostAsync_CalledWithItem_ReturnsReponse()
        {
            // Given
            var response = new OrganizationResponse {
                Item = new Organization {
                    Name = "blah blah"
                }
            };
            var request = new OrganizationRequest {
                Item = new Organization {
                    Name = "blah blah"
                }
            };

            _client.Setup(b => b.PostAsync <OrganizationResponse>(It.IsAny <Uri>(), request, "application/json")).Returns(TaskHelper.CreateTaskFromResult(response));
            var resource = new OrganizationResource(_client.Object);

            // When
            var result = await resource.PostAsync(request);

            // Then
            Assert.That(result, Is.EqualTo(response));
        }
Esempio n. 25
0
        private static void ExecuteWhoAmI(SecurityToken token, string serviceUrl, Uri issuerUri)
        {
            using (OrganizationServiceClient client = new OrganizationServiceClient("CustomBinding_IOrganizationService",
                                                                                    new EndpointAddress(serviceUrl)))
            {
                client.ConfigureCrmOnlineBinding(issuerUri);
                client.Token = token;

                OrganizationRequest request = new OrganizationRequest();
                request.RequestName = "WhoAmI";

                OrganizationResponse response = (OrganizationResponse)client.Execute(request);

                foreach (KeyValuePair <string, object> result in response.Results)
                {
                    if ("UserId" == result.Key)
                    {
                        Console.WriteLine("User ID: {0}", result.Value);
                        break;
                    }
                }
            }
        }
Esempio n. 26
0
        public OrganizationResponse GetAdminOrganizations(OrganizationRequest request)
        {
            try
            {
                Epi.Web.BLL.Organization organizationImplementation = new Epi.Web.BLL.Organization(_organizationDao);

                var response = new OrganizationResponse();


                if (!ValidRequest(request, response, Validate.All))
                {
                    return(response);
                }

                List <OrganizationBO> organizationBOList = organizationImplementation.GetOrganizationInfoForAdmin(request.UserId, request.UserRole);
                response.OrganizationList = organizationBOList.ToOrganizationDTOList();
                return(response);
            }
            catch (Exception ex)
            {
                throw new FaultException <CustomFaultException>(new CustomFaultException(ex));
            }
        }
        public static DataCollection <Entity> GetMultipleSystemFormsWithAllLabels(FilterExpression filterExpression, OrganizationServiceContext context)
        {
            QueryExpression qExpression = new QueryExpression();

            qExpression.ColumnSet.AllColumns = true;
            qExpression.Criteria             = filterExpression;
            qExpression.EntityName           = "systemform";

            OrganizationRequest req = new OrganizationRequest();

            req.RequestName = "RetrieveMultipleSystemFormsWithAllLabels";
            req.Parameters.Add("Query", qExpression);

            EntityCollection entities;

            using (PerformanceProfiler.Instance.StartMarker(PerformanceMarkerName.Metadata, PerformanceMarkerArea.Crm, PerformanceMarkerTagName.GetSystemFormEntityWithAllLabels))
            {
                var response = context.Execute(req);
                entities = (EntityCollection)response.Results.Values.First();
            }

            return(entities.Entities);
        }
        private FormModel GetFormModel(string surveyId, int userId, Guid userIdGuid, out int orgnizationId)
        {
            FormModel formModel = new Models.FormModel();

            formModel.UserHighestRole = GetIntSessionValue(UserSession.Key.UserHighestRole);
            // Get OrganizationList
            OrganizationRequest request = new OrganizationRequest();

            request.UserId   = userId;
            request.UserRole = formModel.UserHighestRole;
            OrganizationResponse organizations = _securityFacade.GetOrganizationsByUserId(request);

            formModel.OrganizationList = organizations.OrganizationList.ToOrganizationModelList();
            //Get Forms
            orgnizationId      = organizations.OrganizationList[0].OrganizationId;
            formModel.FormList = GetFormsInfoList(userIdGuid, orgnizationId);
            // Set user Info

            formModel.UserFirstName = GetStringSessionValue(UserSession.Key.UserFirstName);
            formModel.UserLastName  = GetStringSessionValue(UserSession.Key.UserLastName);
            formModel.SelectedForm  = surveyId;
            return(formModel);
        }
Esempio n. 29
0
        private object ProcessValue(object value, IPlannedValue plannedValueX = null)
        {
            if (plannedValueX != null)
            {
                valueMap[plannedValueX.Id] = value is AliasedValue aliased ? aliased.Value : value;
            }

            return(value switch {
                OrganizationRequest e => ProcessMappedValue(e.Parameters, plannedValueX as PlannedMapBase, e),
                OrganizationResponse e => ProcessMappedValue(e.Results, plannedValueX as PlannedMapBase, e),
                Entity e => ProcessMappedValue(e.Attributes, plannedValueX as PlannedMapBase, e),
                EntityReference e => ProcessProperties(e, plannedValueX as PlannedMapBase),
                EntityCollection e => ProcessCollection(e.Entities, plannedValueX as PlannedMapBase, e),
                OptionSetValue e => ProcessProperties(e, plannedValueX as PlannedMapBase),
                DataCollection <string, object> e => ProcessMappedValue(e, plannedValueX as PlannedMapBase, e),
                DataCollection <Entity> e => ProcessCollection(e, plannedValueX as PlannedMapBase, e),
                DataCollection <EntityReference> e => ProcessCollection(e, plannedValueX as PlannedMapBase, e),
                DataCollection <OptionSetValue> e => ProcessCollection(e, plannedValueX as PlannedMapBase, e),
                DataCollection <object> e => ProcessCollection(e, plannedValueX as PlannedMapBase, e),
                IPlannedValue e => valueMap.TryGetValue(e.Id, out var mappedValue) ? mappedValue : e,
                _ => value != null && Guid.TryParse(value.ToString(), out var id)
                                        ? (valueMap.TryGetValue(id, out var mappedId) ? mappedId : value) : value
            });
Esempio n. 30
0
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var req = request as SetStateRequest;

            //We are going to translate a SetStateRequest into an update message basically

            var entityName = req.EntityMoniker.LogicalName;
            var guid       = req.EntityMoniker.Id;

            var entityToUpdate = new Entity(entityName)
            {
                Id = guid
            };

            entityToUpdate["statecode"]  = req.State;
            entityToUpdate["statuscode"] = req.Status;

            var fakedService = ctx.GetFakedOrganizationService();

            fakedService.Update(entityToUpdate);

            return(new SetStateResponse());
        }
        public void CreateNewRecordTest()
        {
            OrganizationRequest orgReq = null;
            Guid            respId     = Guid.NewGuid();
            MCreateResponse orgResp    = new MCreateResponse();

            orgResp.idGet = () => respId;
            BCrmServiceClient.AddResponse(typeof(CreateRequest), orgResp);
            BCrmServiceClient.MockCrmCommandExecute();
            Dictionary <string, CrmDataTypeWrapper> newFields = new Dictionary <string, CrmDataTypeWrapper>();

            newFields.Add("name", new CrmDataTypeWrapper("CrudTestAccount", CrmFieldType.String));
            newFields.Add("accountnumber", new CrmDataTypeWrapper("12345", CrmFieldType.String));
            newFields.Add("telephone1", new CrmDataTypeWrapper("555-555-5555", CrmFieldType.String));
            newFields.Add("donotpostalmail", new CrmDataTypeWrapper(true, CrmFieldType.CrmBoolean));
            Guid result = crmaction.CreateNewRecord("account", newFields);

            Assert.AreEqual(result, respId);
            result = crmaction.CreateNewRecord("", new Dictionary <string, CrmDataTypeWrapper>());
            Assert.AreNotEqual(result, respId);
            orgReq = BCrmServiceClient.GetRequest(typeof(CreateRequest));
            Assert.IsNotNull(((CreateRequest)orgReq).Target);
        }
Esempio n. 32
0
        public void Put_CalledWithItem_ReturnsReponse()
        {
            // Given
            var response = new OrganizationResponse {
                Item = new Organization {
                    Name = "blah blah"
                }
            };
            var request = new OrganizationRequest {
                Item = new Organization {
                    Name = "blah blah", Id = 123
                }
            };

            _client.Setup(b => b.Put <OrganizationResponse>(It.IsAny <Uri>(), request, "application/json")).Returns(response);
            var resource = new OrganizationResource(_client.Object);

            // When
            var result = resource.Put(request);

            // Then
            Assert.That(result, Is.EqualTo(response));
        }
Esempio n. 33
0
        internal override OrganizationResponse Execute(OrganizationRequest orgRequest, EntityReference userRef)
        {
            var request = MakeRequest <SetStateRequest>(orgRequest);

            var row    = db.GetDbRow(request.EntityMoniker);
            var record = row.ToEntity();

            if (Utility.IsValidAttribute("statecode", row.Metadata) &&
                Utility.IsValidAttribute("statuscode", row.Metadata))
            {
                var prevEntity = record.CloneEntity();
                record["statecode"]  = request.State;
                record["statuscode"] = request.Status;
#if !(XRM_MOCKUP_2011 || XRM_MOCKUP_2013)
                Utility.CheckStatusTransitions(row.Metadata, record, prevEntity);
#endif
                Utility.HandleCurrencies(metadata, db, record);
                Utility.Touch(record, row.Metadata, core.TimeOffset, userRef);

                db.Update(record);
            }
            return(new SetStateResponse());
        }
        public UpdaterServiceResponse <bool> PublishWebResources(ConnectionDetail connectionDetail, IEnumerable <Guid> webResourcesIds)
        {
            var response = new UpdaterServiceResponse <bool>();

            try
            {
                Console.WriteLine("Requesting WR publish");
                var client     = connectionDetail.GetCrmServiceClient(true);
                var orgContext = new OrganizationServiceContext(client);

                if (webResourcesIds == null || !webResourcesIds.Any())
                {
                    throw new ArgumentNullException("webresourcesId");
                }

                var request = new OrganizationRequest {
                    RequestName = "PublishXml"
                };
                request.Parameters = new ParameterCollection();
                request.Parameters.Add(new KeyValuePair <string, object>("ParameterXml",
                                                                         string.Format("<importexportxml><webresources>{0}</webresources></importexportxml>",
                                                                                       string.Join("", webResourcesIds.Select(a => string.Format("<webresource>{0}</webresource>", a)))
                                                                                       )));

                orgContext.Execute(request);

                response.IsSuccessful = true;
                return(response);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                response.Error        = ex.ToString();
                response.IsSuccessful = false;
                return(response);
            }
        }
        internal override OrganizationResponse Execute(OrganizationRequest orgRequest, EntityReference userRef)
        {
            var request   = MakeRequest <ExecuteMultipleRequest>(orgRequest);
            var toReturn  = new ExecuteMultipleResponse();
            var responses = new ExecuteMultipleResponseItemCollection();

            for (var i = 0; i < request.Requests.Count; i++)
            {
                var resp = new ExecuteMultipleResponseItem {
                    RequestIndex = i
                };
                var r = request.Requests[i];
                try {
                    var orgResp = core.Execute(r, userRef);
                    if (request.Settings.ReturnResponses)
                    {
                        resp.Response = orgResp;
                        responses.Add(resp);
                    }
                } catch (Exception e) {
                    resp.Fault = new OrganizationServiceFault {
                        Message   = e.Message,
                        Timestamp = DateTime.Now
                    };
                    responses.Add(resp);
                    if (!request.Settings.ContinueOnError)
                    {
                        toReturn.Results["Responses"] = responses;
                        toReturn.Results["IsFaulted"] = true;
                        return(toReturn);
                    }
                }
            }
            toReturn.Results["Responses"] = responses;
            toReturn.Results["IsFaulted"] = responses.Any(x => x.Fault != null);
            return(toReturn);
        }
        /// <summary>
        /// Determines if the request type can be translated to WebAPI
        /// This is a temp method to support the staged transition to the webAPI and will be removed or reintegrated with the overall pipeline at some point in the future.
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        internal static bool IsRequestValidForTranslationToWebAPI(OrganizationRequest req)
        {
            string RequestName = req.RequestName.ToLower();

            switch (RequestName)
            {
            case "create":
            case "update":
            case "delete":
                return(true);

            case "upsert":
            // Disabling WebAPI support for upsert right now due to issues with generating the response.

            // avoid bug in WebAPI around Support for key's as EntityRefeances //TODO: TEMP
            //Xrm.Sdk.Messages.UpsertRequest upsert = (Xrm.Sdk.Messages.UpsertRequest)req;
            //if (upsert.Target.KeyAttributes?.Any(a => a.Value is string) != true)
            //	return false;
            //else
            //return true;
            default:
                return(false);
            }
        }
        protected ExecuteWorkflowResult ExecuteWorkflow(OrganizationServiceContext context, string workflowName, string targetEntityName, Guid targetEntityID)
        {
            var workflow = context.CreateQuery("workflow")
                           .FirstOrDefault(w =>
                                           w.GetAttributeValue <string>("name") == workflowName &&
                                           w.GetAttributeValue <string>("primaryentity") == targetEntityName &&
                                           w.GetAttributeValue <bool?>("ondemand").GetValueOrDefault(false));

            if (workflow == null)
            {
                ADXTrace.Instance.TraceInfo(TraceCategory.Application, string.Format(@"Workflow named ""{0}"" with primary entity {1} not found.", workflowName, EntityNamePrivacy.GetEntityName(targetEntityName)));

                return(new WorkflowNotFoundResult(ResourceManager.GetString("Could_Not_Find_Workflow_With_Name_And_Target_EntityName_Message").FormatWith(workflowName, targetEntityName)));
            }

            var request = new OrganizationRequest("ExecuteWorkflow");

            request.Parameters["WorkflowId"] = workflow.GetAttributeValue <Guid>("workflowid");
            request.Parameters["EntityId"]   = targetEntityID;

            var response = context.Execute(request);

            return(new ExecuteWorkflowResult(ResourceManager.GetString("Workflow_Executed_Successfully_Message").FormatWith(workflowName), response));
        }
        // GET: MappingMaster
        #region ::Organization Role::
        public ActionResult OrgPrivilegeList()
        {
            OrganizationPrivilegeModel opmodel = new OrganizationPrivilegeModel();

            if (Request.QueryString["orgid"] != null)
            {
                var reqOrg = new OrganizationRequest
                {
                    Data = new OrganizationModel
                    {
                        Id = Convert.ToInt64(Request.QueryString["orgid"].ToString())
                    }
                };

                var respOrg = new OrganizationResponse();
                respOrg = new OrganizationHandler(_unitOfWork).GetDetailOrganizationById(reqOrg);
                opmodel.OrganizationName = respOrg.Entity.OrgName;
                opmodel.OrgID            = respOrg.Entity.Id;

                var _request = new OrganizationPrivilegeRequest
                {
                    Data = new OrganizationPrivilegeModel
                    {
                        OrgID = Convert.ToInt64(Request.QueryString["orgid"].ToString())
                    }
                };
                //get Privilege Ids for organization
                var selPrivileges = new OrganizationPrivilegeHandler(_unitOfWork, _context).GetListData(_request);
                if (selPrivileges.Entity.PrivilegeIDs != null && selPrivileges.Entity.PrivilegeIDs.Count > 0)
                {
                    opmodel.PrivilegeIDs = selPrivileges.Entity.PrivilegeIDs;
                }
            }

            return(View(opmodel));
        }
        public async Task <IList <SonarQubeOrganization> > GetAllOrganizationsAsync(CancellationToken token)
        {
            EnsureIsConnected();

            var currentPage      = 1;
            var allOrganizations = new List <OrganizationResponse>();
            Result <OrganizationResponse[]> organizationsResult;

            do
            {
                var request = new OrganizationRequest {
                    Page = currentPage, PageSize = MaximumPageSize
                };
                organizationsResult = await this.sonarqubeClient.GetOrganizationsAsync(request, token);

                organizationsResult.EnsureSuccess();

                allOrganizations.AddRange(organizationsResult.Value);

                currentPage++;
            }while (organizationsResult.Value.Length > 0);

            return(allOrganizations.Select(SonarQubeOrganization.FromResponse).ToList());
        }
Esempio n. 40
0
        private static OrganizationWebProxyClient CRMCall(TraceWriter log)
        {
            var aadInstance = "https://login.microsoftonline.com/";
            //var organizationUrl = "https://firstkeyhomesdev.crm.dynamics.com";                //DEV ENVIRONMENT
            var organizationUrl = Environment.GetEnvironmentVariable("D365OrgUrl"); //"https://firstkeyhomestest.crm.dynamics.com";

            log.Info($"D365 Org Url : {organizationUrl}");
            var tenantId = "aa33e5f2-00dd-407e-b337-8cb00f28c25d";         //[Azure AD Tenant ID];
            var clientId = Environment.GetEnvironmentVariable("ClientId"); //"df227c93-0513-43be-a02c-690167459b52";//[Azure AD Application ID];

            log.Info($"CLient ID : {clientId}");
            var appKey = Environment.GetEnvironmentVariable("appKey"); //"OXE+UZQfM6vIQPVwBD2B/KL4O56jfJ0BJHLsuXSSqgk=";//[Azure AD Application Key];

            log.Info($"Application Key : {appKey}");
            var clientcred            = new ClientCredential(clientId, appKey);
            var authenticationContext = new AuthenticationContext(aadInstance + tenantId);
            var authenticationResult  = authenticationContext.AcquireTokenAsync(organizationUrl, clientcred);
            var requestedToken        = authenticationResult.Result.AccessToken;
            var sdkService            = new OrganizationWebProxyClient(GetServiceUrl(organizationUrl), false);

            if (sdkService is OrganizationWebProxyClient)
            {
                sdkService.HeaderToken = requestedToken;
                OrganizationRequest request = new OrganizationRequest()
                {
                    RequestName = "WhoAmI"
                };
                WhoAmIResponse response = sdkService.Execute(new WhoAmIRequest()) as WhoAmIResponse;
                log.Info("D365 User ID : " + response.UserId);
                return(sdkService);
            }
            else
            {
                return(null);
            }
        }
Esempio n. 41
0
        //
        public void CreateEmail(EntityReference contactRef, EntityReferenceCollection accountsReference, Guid currentUserId, string subject, string description, Guid regardingObjId)
        {
            Entity contact         = Service.Retrieve(contactRef.LogicalName, contactRef.Id, new ColumnSet(new string[] { "contactid", "fullname" }));
            var    SendEmailAction = new OrganizationRequest()
            {
                RequestName = "new_SendCustomEmailAction"
            };

            SendEmailAction["Sender"]         = new EntityReference("systemuser", currentUserId);
            SendEmailAction["RecepientEmail"] = new EntityReference("contact", (Guid)contact.Attributes["contactid"]);
            //
            foreach (var accountRef in accountsReference)
            {
                Entity account     = Service.Retrieve(accountRef.LogicalName, accountRef.Id, new ColumnSet(new string[] { "name" }));
                var    linkContact = $"https://andriikyrstiuksenvironment.crm11.dynamics.com/main.aspx?appid=42251675-59f8-ea11-a815-000d3a86b9ef&pagetype=entityrecord&etn=account&id=" + $"{account.Id}";
                SendEmailAction["Subject"] = $"{subject} {account.Attributes["name"]} with contact {contact.Attributes["fullname"]}";
                SendEmailAction["Body"]    = $"{description} - {linkContact}";
                if (regardingObjId != Guid.Empty)
                {
                    SendEmailAction["RegardingContact"] = new EntityReference("contact", regardingObjId);
                }
                Service.Execute(SendEmailAction);
            }
        }
        private void GetEntityRecords(QuickSearchFetchXml qsfx)
        {
            string xml = CreateXml(qsfx.FormattedFetchXml, qsfx.PagingCookie, qsfx.PageNumber == 0 ? 1 : qsfx.PageNumber, 5);

            FetchExpression query = new FetchExpression();

            query.Query = xml;

            OrganizationRequest request = new OrganizationRequest()
            {
                RequestName = "RetrieveMultiple"
            };

            request["Query"] = query;
            IOrganizationService service = SilverlightUtility.GetSoapService();

            AsynchMethodParameters param = new AsynchMethodParameters
            {
                Service    = service,
                QSFetchXml = qsfx
            };

            service.BeginExecute(request, new AsyncCallback(GetEntities_Callback), param);
        }
Esempio n. 43
0
        /// <summary>
        /// 启用
        /// </summary>
        /// <param name="service"></param>
        /// <param name="entity"></param>
        public static void Enable(this IOrganizationService service, Entity entity)
        {
            if (entity == null || entity.Id == Guid.Empty)
            {
                return;
            }
            OptionSetValue state  = new OptionSetValue();
            OptionSetValue status = new OptionSetValue();

            state.Value  = 0;
            status.Value = 1;

            EntityReference moniker = new EntityReference(entity.LogicalName, entity.Id);

            OrganizationRequest request = new OrganizationRequest()
            {
                RequestName = "SetState"
            };

            request["EntityMoniker"] = moniker;
            request["State"]         = state;
            request["Status"]        = status;
            service.Execute(request);
        }
Esempio n. 44
0
        public virtual IDictionary <Guid, OrganizationResponse> ExecutePlan()
        {
            ValidateExecutionPlanState();

            var serialised = executionQueue.ToList().SerialiseContractJson(true,
                                                                           surrogate: new DateTimeCrmContractSurrogateCustom());

            if (serialised.IsEmpty())
            {
                throw new InvalidPluginExecutionException("Could not deserialise planned execution operations."
                                                          + " Possibly because one of the serialised types could not be found through the sandbox plugin.");
            }

            var request =
                new OrganizationRequest("ys_LibrariesExecutePlannedOperations")
            {
                Parameters = new ParameterCollection {
                    { "ExecutionPlan", serialised.Compress() }
                }
            };

            string response;

            using (var service = enhancedOrgServiceBase.GetService())
            {
                response = ((string)service.Execute(request)["SerialisedResult"]).Decompress();
            }

            var result = response.DeserialiseContractJson <MockDictionary>(true,
                                                                           surrogate: new DateTimeCrmContractSurrogateCustom())
                         .ToDictionary(e => Guid.Parse(e.Key), e => e.Value.Unmock <OrganizationResponse>());

            CancelPlanning();

            return(result);
        }
Esempio n. 45
0
        private IEnumerable <string> GetDependencies(OrganizationRequest request, IEnumerable <object> path)
        {
            if (IsContentRequest(request))
            {
                yield return(_dependencyContentFormat.FormatWith(CacheEntryChangeMonitorPrefix));
            }
            else if (IsMetadataRequest(request))
            {
                yield return(_dependencyMetadataFormat.FormatWith(CacheEntryChangeMonitorPrefix));
            }

            foreach (var parameter in request.Parameters)
            {
                var value = parameter.Value;

                if (value != null && !path.Contains(value))
                {
                    foreach (var child in GetDependenciesForObject(value, path.Concat(new[] { value })))
                    {
                        yield return(child);
                    }
                }
            }
        }
Esempio n. 46
0
        public ActionResult Index()
        {
            string tenantID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/tenantid").Value;

            // Clean organization name from user logged
            string organizationName = User.Identity.Name.Substring(
                User.Identity.Name.IndexOf('@') + 1,
                User.Identity.Name.IndexOf('.') - (User.Identity.Name.IndexOf('@') + 1));

            //string crmResourceId = "https://[orgname].crm.microsoftonline.com";
            var resource = string.Format(OrganizationHostName, organizationName);

            // Request a token using application credentials
            ClientCredential      clientcred            = new ClientCredential(clientId, appKey);
            AuthenticationContext authenticationContext = new AuthenticationContext(aadInstance + tenantID);


            AuthenticationResult authenticationResult = authenticationContext.AcquireToken(resource, clientcred);
            var requestedToken = authenticationResult.AccessToken;

            // Invoke SDK using using the requested token
            using (var sdkService = new OrganizationWebProxyClient(GetServiceUrl(organizationName), false))
            {
                // Query CRM
                sdkService.HeaderToken = requestedToken;
                OrganizationRequest request = new OrganizationRequest()
                {
                    RequestName = "WhoAmI"
                };


                OrganizationResponse response = sdkService.Execute(request);

                return(View((object)string.Join(",", response.Results.ToList())));
            }
        }
        /// <inheritdoc />
        public OrganizationResponse Execute(OrganizationRequest request)
        {
            var message = Settings.LogDetailedRequests
                ? GetDetailedMessage(request)
                : $"Execute Request {request.RequestName}";

            if (Settings.TimeRequests)
            {
                var timer = new Stopwatch();
                try
                {
                    TraceStart(message);
                    timer.Start();
                    return(Service.Execute(request));
                }
                finally
                {
                    TraceEnd(timer);
                }
            }

            TraceExecute(message);
            return(Service.Execute(request));
        }
        private void UpsertItemSetConfigurationData()
        {
            var pluginContext = this.PluginContext;
            var baseConfigDataWebResourceId = new Guid("CBD99D59-A2DD-E711-81A8-08002703F176");
            var configurationContent        =
                pluginContext.OrgCtx.WebResourceSet
                .Where(r => r.WebResourceId == baseConfigDataWebResourceId)
                .Select(r => r.Content).FirstOrDefault();

            if (configurationContent == null)
            {
                throw new InvalidPluginExecutionException("'[tuneXrm] Base Demo Item Set Configuration' webresource does not contain data.");
            }

            var configuratonBinary = Convert.FromBase64String(configurationContent);
            var configuration      = Encoding.UTF8.GetString(configuratonBinary);

            var importConfigurationRequest = new OrganizationRequest("pavelkh_ItemSetConfigurationImport")
            {
                ["Configuration"] = configuration
            };

            pluginContext.OrgCtx.Execute(importConfigurationRequest);
        }
        /// <summary>
        /// Override that handles the setting of entity state codes on entities that have complex state transitions.
        /// </summary>
        /// <param name="stateToSet">The state code to be set.</param>
        /// <param name="statusToSet">The status code to be set.</param>
        /// <param name="entityId">The unique identifier of the entity to set the state and status on.</param>
        /// <returns>A CRM <c>OrganizationRequest</c> that can be used to set the state and status on an entity in an organization.</returns>
        protected override OrganizationRequest GetSetStateRequest(int stateToSet, int statusToSet, Guid entityId)
        {
            OrganizationRequest returnedRequest = new OrganizationRequest();
            Entity requestEntity = new Entity() { Id = entityId };
            if (this.ProvidedEntityName == "opportunity")
            {
                requestEntity.LogicalName = "opportunityclose";
                returnedRequest.Parameters["OpportunityClose"] = requestEntity;
                if (stateToSet == 2)
                {
                    returnedRequest.RequestName = "LoseOpportunity";
                }

                if (stateToSet == 1)
                {
                    returnedRequest.RequestName = "WinOpportunity";
                }

                return returnedRequest;
            }

            if (this.ProvidedEntityName == "quote")
            {
                requestEntity.LogicalName = "quoteclose";
                returnedRequest.Parameters["QuoteClose"] = requestEntity;
                if (stateToSet == 2)
                {
                    returnedRequest.RequestName = "WinQuote";
                }

                if (stateToSet == 3)
                {
                    returnedRequest.RequestName = "CloseQuote";
                }

                return returnedRequest;
            }

            return base.GetSetStateRequest(stateToSet, statusToSet, entityId);
        }
        private void RunEMR(OrganizationRequest or, BackgroundWorker sender)
        {
            requestWithResults.Requests.Add(or);
            emrCount++;
            if (requestWithResults.Requests.Count >= emrBatchSize)
            {
                //emrCount += requestWithResults.Requests.Count;
                //writeit("Executing Multiple Workflows: " + requestWithResults.Requests.Count);
                ((BackgroundWorker)sender).ReportProgress(0, string.Format("Executing Workflows.. {0} of {1}", emrCount, ExecutionRecordSet.Entities.Count));
                this.Invoke((MethodInvoker)delegate()
                {
                    progressBar1.Maximum = ExecutionRecordSet.Entities.Count;
                    progressBar1.Value = emrCount;
                });

                ExecuteMultipleResponse emrsp = (ExecuteMultipleResponse)service.Execute(requestWithResults);
                HandleErrors(emrsp);

                //writeit("Total Workflows Started: " + (emrCount - errorCount) + " / " + ExecutionRecordSet.Entities.Count);
                requestWithResults.Requests.Clear();

                if (txtDelay.Text != "0")
                {
                    System.Threading.Thread.Sleep(Convert.ToInt16(txtDelay.Text) * 1000);
                }
            }
        }
 public EntityMetadataResultSet(CrmDbConnection connection, OrganizationRequest request, List<ColumnMetadata> columnMetadata)
     : base(connection, request, columnMetadata)
 {
 }
 SdkMessages RetrieveSdkRequests(IOrganizationService service)
 {
     var fetchQuery = "<fetch distinct='true' version='1.0'>\r\n\t<entity name='sdkmessage'>\r\n\t\t<attribute name='name'/>\r\n\t\t<attribute name='isprivate'/>\r\n\t\t<attribute name='sdkmessageid'/>\r\n\t\t<link-entity name='sdkmessagepair' alias='sdkmessagepair' to='sdkmessageid' from='sdkmessageid' link-type='inner'>\r\n\t\t\t<filter>\r\n\t\t\t\t<condition alias='sdkmessagepair' attribute='endpoint' operator='eq' value='2011/Organization.svc' />\r\n\t\t\t</filter>\r\n\t\t\t<attribute name='sdkmessagepairid'/>\r\n\t\t\t<attribute name='namespace'/>\r\n\t\t\t<link-entity name='sdkmessagerequest' alias='sdkmessagerequest' to='sdkmessagepairid' from='sdkmessagepairid' link-type='outer'>\r\n\t\t\t\t<attribute name='sdkmessagerequestid'/>\r\n\t\t\t\t<attribute name='name'/>\r\n\t\t\t\t<link-entity name='sdkmessagerequestfield' alias='sdkmessagerequestfield' to='sdkmessagerequestid' from='sdkmessagerequestid' link-type='outer'>\r\n\t\t\t\t\t<attribute name='name'/>\r\n\t\t\t\t\t<attribute name='optional'/>\r\n\t\t\t\t\t<attribute name='position'/>\r\n\t\t\t\t\t<attribute name='publicname'/>\r\n\t\t\t\t\t<attribute name='clrparser'/>\r\n\t\t\t\t</link-entity>\r\n\t\t\t\t<link-entity name='sdkmessageresponse' alias='sdkmessageresponse' to='sdkmessagerequestid' from='sdkmessagerequestid' link-type='outer'>\r\n\t\t\t\t\t<attribute name='sdkmessageresponseid'/>\r\n\t\t\t\t\t<link-entity name='sdkmessageresponsefield' alias='sdkmessageresponsefield' to='sdkmessageresponseid' from='sdkmessageresponseid' link-type='outer'>\r\n\t\t\t\t\t\t<attribute name='publicname'/>\r\n\t\t\t\t\t\t<attribute name='value'/>\r\n\t\t\t\t\t\t<attribute name='clrformatter'/>\r\n\t\t\t\t\t\t<attribute name='name'/>\r\n\t\t\t\t\t\t<attribute name='position' />\r\n\t\t\t\t\t</link-entity>\r\n\t\t\t\t</link-entity>\r\n\t\t\t</link-entity>\r\n\t\t</link-entity>\r\n\t\t<link-entity name='sdkmessagefilter' alias='sdmessagefilter' to='sdkmessageid' from='sdkmessageid' link-type='inner'>\r\n\t\t\t<filter>\r\n\t\t\t\t<condition alias='sdmessagefilter' attribute='isvisible' operator='eq' value='1' />\r\n\t\t\t</filter>\r\n\t\t\t<attribute name='sdkmessagefilterid'/>\r\n\t\t\t<attribute name='primaryobjecttypecode'/>\r\n\t\t\t<attribute name='secondaryobjecttypecode'/>\r\n\t\t</link-entity>\r\n\t </entity>\r\n</fetch>";
     MessagePagingInfo info = null;
     var pageNumber = 1;
     var messages = new SdkMessages(null);
     var request = new OrganizationRequest("ExecuteFetch");
     while ((info == null) || info.HasMoreRecords)
     {
         var str2 = fetchQuery;
         if (info != null)
         {
             str2 = SetPagingCookie(fetchQuery, info.PagingCookig, pageNumber);
         }
         request.Parameters["FetchXml"] = str2;
         var response = service.Execute(request);
         info = SdkMessages.FromFetchResult(messages, (string) response.Results["FetchXmlResult"]);
         pageNumber++;
     }
     return messages;
 }
 public SelectMultipleEntitiesOperation(List<ColumnMetadata> columnMetadata, OrganizationRequest request)
 {
     this.Columns = columnMetadata;
     this.Request = request;
 }
 public bool CanExecute(OrganizationRequest request)
 {
     return request is AssignRequest;
 }
 public CreateEntityOperation(List<ColumnMetadata> columnMetadata, OrganizationRequest request)
 {
     this.Columns = columnMetadata;
     this.Request = request;
 }
 public OrganizationResponse RetrieveEntityMock(OrganizationRequest req)
 {
     return new RetrieveEntityResponse {ResponseName = "Successful"};
 }
 public bool CanExecute(OrganizationRequest request)
 {
     return request is RetrieveAttributeRequest;
 }
 public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
 {
     throw PullRequestException.NotImplementedOrganizationRequest(request.GetType());
 }
 public bool CanExecute(OrganizationRequest request)
 {
     return request is PublishXmlRequest;
 }
        public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)
        {
            var updateRequest = (UpdateRequest) request;

            var target = (Entity)request.Parameters["Target"];

            var service = ctx.GetFakedOrganizationService();
            service.Update(target);

            return new UpdateResponse();
        }