Exemplo n.º 1
0
        public void CommitRemovedObject()
        {
            int callCount          = 0;
            int exptectedCallCount = 1;

            var organisationService = new Microsoft.Xrm.Sdk.Fakes.StubIOrganizationService();

            organisationService.ExecuteOrganizationRequest = (request) =>
            {
                callCount++;
                var results = new OrganizationResponse();

                return(results);
            };

            var crmUnitOfWork     = new CrmUnitOfWork(organisationService);
            var contactRepository = new
                                    Xrm.Infrastructure.DataAccess.Crm.Fakes.StubContactRepository(organisationService, crmUnitOfWork);

            contactRepository.PersistRemovedEntityBase = (contact) =>
            {
                var deleteRequest = new DeleteRequest()
                {
                    Target = new EntityReference(Contact.EntityLogicalName, Guid.NewGuid())
                };
                crmUnitOfWork.Requests.Add(deleteRequest);
            };

            contactRepository.Remove(new Xrm.Domain.Contact.Contact());
            crmUnitOfWork.Commit();

            Assert.AreEqual(exptectedCallCount, callCount);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Create plugins / steps / images of an assembly from scratch
        /// Based on VS project
        /// </summary>
        /// <param name="parsedArgs"></param>
        /// <param name="destPluginAssembly"></param>
        public void CreateFromScratch(CmdArgs parsedArgs, PluginAssembly destPluginAssembly)
        {
            var uow = new CrmUnitOfWork(destinationSystem);

            // Delete destination assembly
            DeleteAllPluginTypeStepsOfAssembly(destPluginAssembly);

            // Create / Update assembly
            destPluginAssembly = UploadPluginAssemblyToDestination(destPluginAssembly);

            // Create NEW PluginTypes/Workflows
            CreateNewPluginTypesInDestination(destPluginAssembly);

            // Create Steps
            var file         = new FileInfo(parsedArgs.AssemblyPath);
            var assemblyName = file.Name.Substring(0, file.Name.Length - 4);

            var plugin = (from pl in uow.PluginAssemblies.GetQuery()
                          where pl.Name == assemblyName
                          select pl).SingleOrDefault();

            var steps = (from st in uow.SdkMessageProcessingSteps.GetQuery()
                         join pt in uow.PluginTypes.GetQuery() on st.EventHandler.Id equals pt.PluginTypeId
                         where pt.PluginAssemblyId.Id == plugin.PluginAssemblyId
                         select st).ToArray().ToDictionary(s => s.UniqueName);

            var stepsToCreate = CreateStepsModel(assemblyName);

            CreateSteps(uow, plugin, steps, stepsToCreate);

            // Create Images
            var allImages = (from im in uow.SdkMessageProcessingStepImages.GetQuery()
                             join st in uow.SdkMessageProcessingSteps.GetQuery() on im.SdkMessageProcessingStepId.Id equals st.SdkMessageProcessingStepId
                             join pl in uow.PluginTypes.GetQuery() on st.EventHandler.Id equals pl.PluginTypeId
                             where pl.PluginAssemblyId.Id == plugin.PluginAssemblyId
                             select im).ToList();

            CreateImages(uow, stepsToCreate, allImages, steps);

            logger.Log(
                $"Successfully created steps and images of Plugin '{AssemblyPlugin.GetName().Name}'");
        }
Exemplo n.º 3
0
        public void CommitModifiedObject()
        {
            int callCount          = 0;
            int exptectedCallCount = 1;

            var organisationService = new Microsoft.Xrm.Sdk.Fakes.StubIOrganizationService();

            organisationService.ExecuteOrganizationRequest = (request) =>
            {
                callCount++;
                var results = new OrganizationResponse();

                return(results);
            };

            var crmUnitOfWork     = new CrmUnitOfWork(organisationService);
            var contactRepository = new
                                    Xrm.Infrastructure.DataAccess.Crm.Fakes.StubContactRepository(organisationService, crmUnitOfWork);

            contactRepository.PersistUpdatedEntityBase = (contact) =>
            {
                var sdkContact = new Contact();
                sdkContact.ContactId = contact.Id;
                sdkContact.FirstName = "test";
                var updateRequest = new UpdateRequest()
                {
                    Target = sdkContact
                };
                crmUnitOfWork.Requests.Add(updateRequest);
            };

            contactRepository.Update(new Xrm.Domain.Contact.Contact());
            crmUnitOfWork.Commit();

            Assert.AreEqual(exptectedCallCount, callCount);
        }