public void Webrequest_NoProxy_NoCertificate_Method_Get()
        {
            ConnectToUrlConfiguration configuration = new ConnectToUrlConfiguration();

            configuration.UseProxySettings      = false;
            configuration.SendClientCertificate = false;

            IConnection connectToUrlConnection = new ConnectToUrl()
            {
                Configuration = configuration
            };

            LoadFromWebRequestConfiguration loadFromWebRequestConfiguration = new LoadFromWebRequestConfiguration();

            loadFromWebRequestConfiguration.Url    = "http://jsonplaceholder.typicode.com/todos/3";
            loadFromWebRequestConfiguration.Method = "GET";

            IDataSource loadFromWebRequest = new LoadFromWebRequest()
            {
                Configuration = loadFromWebRequestConfiguration
            };

            IDatastore dataObject = DataStoreFactory.GetDatastore();

            loadFromWebRequest.LoadData(connectToUrlConnection, dataObject, Test_Helpers.ReportProgressMethod);
        }
Beispiel #2
0
        public void GeneralLoadTestDynamicsCRM()
        {
            var organizationService = connection.GetConnection() as IOrganizationService;

            Guid account1 = CreateAccount1(organizationService);

            string contactName1 = Guid.NewGuid().ToString();
            Guid   contact1     = CreateContact1(organizationService, contactName1, account1);

            LoadFromDynamicsCrmConfiguration configuration = new LoadFromDynamicsCrmConfiguration();

            configuration.QueryType = DynamicsCrmQueryType.ExecuteFetchXml;
            configuration.FetchXml  = GetTestFetchXml(contactName1);

            IDataSource loadFromDynamicsCrm = new LoadFromDynamicsCrm()
            {
                Configuration = configuration
            };

            IDatastore dataObject = DataStoreFactory.GetDatastore();

            loadFromDynamicsCrm.LoadData(connection, dataObject, ReportProgressMethod);

            var firstObject = dataObject[0];

            Assert.AreEqual <string>(contactName1, firstObject[dataObject.Metadata["firstname"].ColumnIndex].ToString());

            organizationService.Delete("contact", contact1);
            organizationService.Delete("account", account1);
        }
Beispiel #3
0
        public void Test_CaseImport()
        {
            CrmConnection        crmConnection = (CrmConnection)connection.GetConnection();
            IOrganizationService service       = new OrganizationService(crmConnection);

            string accountName1 = Guid.NewGuid().ToString();
            Entity account      = new Entity("account");

            account.Attributes.Add("name", accountName1);
            Guid account1 = service.Create(account);

            IntegrationTool.Module.WriteToDynamicsCrm.WriteToDynamicsCrmConfiguration writeToCrmConfig = new IntegrationTool.Module.WriteToDynamicsCrm.WriteToDynamicsCrmConfiguration();
            writeToCrmConfig.EntityName = "incident";
            writeToCrmConfig.PrimaryKeyAttributes.Add("ticketnumber");
            writeToCrmConfig.ImportMode        = Module.WriteToDynamicsCrm.SDK.Enums.ImportMode.All;
            writeToCrmConfig.MultipleFoundMode = Module.WriteToDynamicsCrm.SDK.Enums.MultipleFoundMode.All;
            writeToCrmConfig.Mapping.Add(new IntegrationTool.DataMappingControl.DataMapping()
            {
                Source = "CaseID", Target = "ticketnumber"
            });
            writeToCrmConfig.Mapping.Add(new IntegrationTool.DataMappingControl.DataMapping()
            {
                Source = "CaseTitle", Target = "title"
            });

            writeToCrmConfig.RelationMapping.Add(new Module.WriteToDynamicsCrm.SDK.RelationMapping()
            {
                EntityName  = "account",
                LogicalName = "customerid",
                Mapping     = new List <DataMappingControl.DataMapping>()
                {
                    new DataMappingControl.DataMapping()
                    {
                        Source = "CompanyName",
                        Target = "name"
                    }
                }
            });
            writeToCrmConfig.ConfigurationId = Guid.NewGuid();
            writeToCrmConfig.SelectedConnectionConfigurationId = Test_Helpers.CRMCONNECTIONID;

            IDatastore dataObject = DataStoreFactory.GetDatastore();

            dataObject.AddColumn(new ColumnMetadata("CaseID"));
            dataObject.AddColumn(new ColumnMetadata("CaseTitle"));
            dataObject.AddColumn(new ColumnMetadata("CompanyName"));


            dataObject.AddData(new object[] { "CA-100", "101 Title", accountName1 });
            dataObject.AddData(new object[] { "CA-101", "Anöther Title", null });
            dataObject.AddData(new object[] { "CA-102", "A'Title\"chen", accountName1 });

            IModule module = Activator.CreateInstance(typeof(WriteToDynamicsCrm)) as IModule;

            module.SetConfiguration(writeToCrmConfig);

            ((IDataTarget)module).WriteData(connection, new DummyDatabaseInterface(), dataObject, Test_Helpers.ReportProgressMethod);

            service.Delete("account", account1);
        }
Beispiel #4
0
        public void GeneralLoadTestCSV()
        {
            ConnectToTextFileConfiguration configuration = new ConnectToTextFileConfiguration();

            configuration.FilePath = @"TestData\LoadFromCSV\TestCSV.csv";

            IConnection csvConnection = new ConnectToTextFile()
            {
                Configuration = configuration
            };

            LoadFromCSV loadFromCSV = new LoadFromCSV();

            loadFromCSV.SetConfiguration(new LoadFromCSVConfiguration());

            IDatastore dataObject = DataStoreFactory.GetDatastore();

            loadFromCSV.LoadData(csvConnection, dataObject, ReportProgressMethod);

            var firstObject = dataObject[0];

            Assert.AreEqual <string>(firstObject[0].ToString(), "1");
            Assert.AreEqual <string>(firstObject[6].ToString(), "9/19/2015");

            var lastObject = dataObject[999];

            Assert.AreEqual <string>(lastObject[0].ToString(), "1000");
            Assert.AreEqual <string>(lastObject[6].ToString(), "4/5/2015");
        }
Beispiel #5
0
        public void Test_AccountDeletion()
        {
            var organizationService = connection.GetConnection() as IOrganizationService;

            // Create dummy account, which shall be deleted
            string accountName1 = Guid.NewGuid().ToString();
            Entity account      = new Entity("account");

            account.Attributes.Add("name", accountName1);
            Guid account1 = organizationService.Create(account);

            DeleteInDynamicsCrmConfiguration deleteInCrmConfig = new DeleteInDynamicsCrmConfiguration();

            deleteInCrmConfig.EntityName        = "account";
            deleteInCrmConfig.MultipleFoundMode = DeleteInCrmMultipleFoundMode.DeleteAll;
            deleteInCrmConfig.DeleteMapping.Add(new DataMapping()
            {
                Source = "CompanyName", Target = "name"
            });

            IDatastore dataObject = DataStoreFactory.GetDatastore();

            dataObject.AddColumn(new ColumnMetadata("CompanyName"));

            dataObject.AddData(new object[] { accountName1 });

            IModule module = Activator.CreateInstance(typeof(DeleteInDynamicsCrm)) as IModule;

            module.SetConfiguration(deleteInCrmConfig);

            ((IDataTarget)module).WriteData(connection, new DummyDatabaseInterface(), dataObject, ReportProgressMethod);
        }
Beispiel #6
0
        private IDatastore InitializeDatastore()
        {
            IDatastore dataStore = DataStoreFactory.GetDatastore();
            List <AttributeImplementation> dataConditionAttributes = AssemblyHelper.LoadAllClassesImplementingSpecificAttribute <DataConditionAttribute>(System.Reflection.Assembly.GetAssembly(typeof(DataConditionAttribute)));

            dataStore.InitializeDatastore(dataConditionAttributes);
            return(dataStore);
        }
Beispiel #7
0
        public void Test_RelateProductsWithCampaigns()
        {
            var defaultUnits = Test_Helpers.GetDefaultUnitGroup(organizationService);

            Entity campaign = new Entity("campaign");

            campaign.Attributes.Add("name", "test prd_cmpgn 1");
            Guid campaignId = organizationService.Create(campaign);

            Entity product = new Entity("product");

            product.Attributes.Add("name", "test prd_cmpgn 1");
            product.Attributes.Add("productnumber", "prd_cmpgn 1");
            product.Attributes.Add("defaultuomscheduleid", new EntityReference("uomschedule", defaultUnits.DefaultUnitGroupId));
            product.Attributes.Add("defaultuomid", new EntityReference("uom", defaultUnits.PrimaryUnitId));
            product.Attributes.Add("quantitydecimal", 2);
            Guid productId = organizationService.Create(product);

            Microsoft.Crm.Sdk.Messages.PublishProductHierarchyRequest publishProduct = new Microsoft.Crm.Sdk.Messages.PublishProductHierarchyRequest();
            publishProduct.Target = new EntityReference("product", productId);
            organizationService.Execute(publishProduct);

            WriteToDynamicsCrmN2NConfiguration writeToDynamicsCrmN2NConfig = new WriteToDynamicsCrmN2NConfiguration();

            writeToDynamicsCrmN2NConfig.MultipleFoundMode = N2NMultipleFoundMode.None;
            writeToDynamicsCrmN2NConfig.Entity1Name       = "campaign";
            writeToDynamicsCrmN2NConfig.Entity1Mapping    = new List <DataMapping>()
            {
                new DataMapping("CampaigName", "name")
            };
            writeToDynamicsCrmN2NConfig.Entity2Name    = "product;campaignproduct_association";
            writeToDynamicsCrmN2NConfig.Entity2Mapping = new List <DataMapping>()
            {
                new DataMapping("ProductNumber", "productnumber")
            };
            writeToDynamicsCrmN2NConfig.ConfigurationId = Guid.NewGuid();
            writeToDynamicsCrmN2NConfig.SelectedConnectionConfigurationId = Test_Helpers.CRMCONNECTIONID;

            IDatastore dataObject = DataStoreFactory.GetDatastore();

            dataObject.AddColumn(new ColumnMetadata("CampaigName"));
            dataObject.AddColumn(new ColumnMetadata("ProductNumber"));

            dataObject.AddData(new object[] { "test prd_cmpgn 1", "prd_cmpgn 1" });

            IModule module = Activator.CreateInstance(typeof(WriteToDynamicsCrmN2N)) as IModule;

            module.SetConfiguration(writeToDynamicsCrmN2NConfig);

            ((IDataTarget)module).WriteData(connection, new DummyDatabaseInterface(), dataObject, Test_Helpers.ReportProgressMethod);

            organizationService.Delete("campaign", campaignId);
            organizationService.Delete("product", productId);
        }
Beispiel #8
0
        private IDatastore GetCompanyDatastore()
        {
            IDatastore store = DataStoreFactory.GetDatastore();

            store.AddColumn(new ColumnMetadata("CompanyId"));
            store.AddColumn(new ColumnMetadata("CompanyName"));
            store.AddColumn(new ColumnMetadata("ContactPerson"));

            store.AddData(new object [] { 1, "comp 1", 2 });
            store.AddData(new object[] { 2, "comp 2", 3 });

            return(store);
        }
Beispiel #9
0
        private IDatastore GetContactsDatastore()
        {
            IDatastore dataObject = DataStoreFactory.GetDatastore();

            dataObject.AddColumn(new ColumnMetadata("FirstName"));
            dataObject.AddColumn(new ColumnMetadata("LastName"));
            dataObject.AddColumn(new ColumnMetadata("City"));
            dataObject.AddColumn(new ColumnMetadata("ID"));

            dataObject.AddData(new object[] { "Peter", "Widmer", "Wettingen", 1001 });
            dataObject.AddData(new object[] { "Joachim", "Suter", "Dättwil", 1002 });

            return(dataObject);
        }
        public IDatastore GetDatastoreB()
        {
            IDatastore store = DataStoreFactory.GetDatastore();

            store.AddColumn(new ColumnMetadata("TableBColA"));
            store.AddColumn(new ColumnMetadata("TableBColB"));
            store.AddColumn(new ColumnMetadata("TableBFull"));

            store.AddData(new object[] { "A", "B", "A_B" });
            store.AddData(new object[] { "A", null, "A_Null" });
            store.AddData(new object[] { "A", "B", "A_B_2" });

            return(store);
        }
Beispiel #11
0
        private IDatastore GetPersonDatastore()
        {
            IDatastore store = DataStoreFactory.GetDatastore();

            store.AddColumn(new ColumnMetadata("PersonId"));
            store.AddColumn(new ColumnMetadata("Firstname"));
            store.AddColumn(new ColumnMetadata("Lastname"));

            store.AddData(new object[] { 1, "Simon", "Miller" });
            store.AddData(new object[] { 2, "Frank", "Houston" });
            store.AddData(new object[] { 3, "Jill", "Smith" });
            store.AddData(new object[] { 4, "Gregory", "Thomson" });

            return(store);
        }
Beispiel #12
0
        public void GeneralLoadTestSharepoint()
        {
            var configuration = new LoadFromSharepointConfiguration()
            {
                ListName         = "My Test List",
                CamlQueryViewXml = "<View><Query><Where><Geq><FieldRef Name='ID'/><Value Type='Number'>1</Value></Geq></Where></Query><RowLimit>100</RowLimit></View>"
            };

            IDataSource loadFromDynamicsCrm = new LoadFromSharepoint()
            {
                Configuration = configuration
            };

            IDatastore dataObject = DataStoreFactory.GetDatastore();

            loadFromDynamicsCrm.LoadData(connection, dataObject, ReportProgressMethod);
        }
        public void GeneralLoadTestExcel()
        {
            ConnectToExcelConfiguration configuration = new ConnectToExcelConfiguration();

            configuration.FilePath  = @"TestData\LoadFromExcel\TestData.xlsx";
            configuration.SheetName = "Contacts";

            IConnection excelConnection = new ConnectToExcel()
            {
                Configuration = configuration
            };

            IDataSource loadFromExcel = new LoadFromExcel();

            IDatastore dataObject = DataStoreFactory.GetDatastore();

            loadFromExcel.LoadData(excelConnection, dataObject, ReportProgressMethod);
        }
        public IDatastore TransformData(IConnection connection, IDatabaseInterface databaseInterface, IDatastore datastore1, IDatastore datastore2, ReportProgressMethod reportProgress)
        {
            IDatastore resultDatastore = DataStoreFactory.GetDatastore();

            InitializeOutputColumnsConfiguration();
            InitializeResultDatastore(resultDatastore);
            AnalyzeDatastores(datastore1, datastore2);
            BuildDatastoreKeys();
            JoinDatastoreRecords(resultDatastore);

            if (mappingHasBeenReversed)
            {
                ReverseMapping(); // Reverse it back
                mappingHasBeenReversed = false;
            }

            return(resultDatastore);
        }
Beispiel #15
0
        public static IDatastore LoadExcelsheet(string sheetPath, string sheetName)
        {
            ConnectToExcelConfiguration configuration = new ConnectToExcelConfiguration();

            configuration.FilePath  = sheetPath;
            configuration.SheetName = sheetName;

            IConnection excelConnection = new ConnectToExcel()
            {
                Configuration = configuration
            };

            IDataSource loadFromExcel = new LoadFromExcel();

            IDatastore dataStore = DataStoreFactory.GetDatastore();

            loadFromExcel.LoadData(excelConnection, dataStore, ReportProgressMethod);

            return(dataStore);
        }
Beispiel #16
0
        public void Test_RelateContactsWithInvoice()
        {
            Entity contact   = Test_Helpers.CreateDummyContact();
            Guid   contactId = organizationService.Create(contact);

            Entity invoice   = Test_Helpers.CreateDummyInvoice();
            Guid   invoiceId = organizationService.Create(invoice);

            WriteToDynamicsCrmN2NConfiguration writeToDynamicsCrmN2NConfig = new WriteToDynamicsCrmN2NConfiguration();

            writeToDynamicsCrmN2NConfig.MultipleFoundMode = N2NMultipleFoundMode.None;
            writeToDynamicsCrmN2NConfig.Entity1Name       = "contact";
            writeToDynamicsCrmN2NConfig.Entity1Mapping    = new List <DataMapping>()
            {
                new DataMapping("FirstName", "firstname")
            };
            writeToDynamicsCrmN2NConfig.Entity2Name    = "invoice;contactinvoices_association";
            writeToDynamicsCrmN2NConfig.Entity2Mapping = new List <DataMapping>()
            {
                new DataMapping("InvoiceNo", "invoicenumber")
            };
            writeToDynamicsCrmN2NConfig.ConfigurationId = Guid.NewGuid();
            writeToDynamicsCrmN2NConfig.SelectedConnectionConfigurationId = Test_Helpers.CRMCONNECTIONID;

            IDatastore dataObject = DataStoreFactory.GetDatastore();

            dataObject.AddColumn(new ColumnMetadata("FirstName"));
            dataObject.AddColumn(new ColumnMetadata("InvoiceNo"));

            dataObject.AddData(new object[] { contact["firstname"], invoice["invoicenumber"] });

            IModule module = Activator.CreateInstance(typeof(WriteToDynamicsCrmN2N)) as IModule;

            module.SetConfiguration(writeToDynamicsCrmN2NConfig);

            ((IDataTarget)module).WriteData(connection, new DummyDatabaseInterface(), dataObject, Test_Helpers.ReportProgressMethod);

            organizationService.Delete("contact", contactId);
            organizationService.Delete("invoice", invoiceId);
        }
Beispiel #17
0
        private IDatastore GetContactDataStore(string accountName1)
        {
            IDatastore dataObject = DataStoreFactory.GetDatastore();

            dataObject.AddColumn(new ColumnMetadata("FirstName"));
            dataObject.AddColumn(new ColumnMetadata("LastName"));
            dataObject.AddColumn(new ColumnMetadata("City"));
            dataObject.AddColumn(new ColumnMetadata("ID"));
            dataObject.AddColumn(new ColumnMetadata("CompanyName"));
            dataObject.AddColumn(new ColumnMetadata("Status"));
            dataObject.AddColumn(new ColumnMetadata("Birthdate"));
            dataObject.AddColumn(new ColumnMetadata("OwnerFirstname"));
            dataObject.AddColumn(new ColumnMetadata("OwnerLastname"));

            dataObject.AddData(new object[] { "Peter", "Widmer", "Wettingen", 1001, accountName1, "Active", new DateTime(1980, 06, 23), "James", "Test" });
            dataObject.AddData(new object[] { "Joachim 2", "Suter", "Dättwil", 1002, accountName1, "Inactive", new DateTime(2004, 12, 03), "John", "test" });
            dataObject.AddData(new object[] { "James", "Brown", "London", 1003, null, "Active", null, null, null });
            // Doublekey to test it works too
            dataObject.AddData(new object[] { "Peter", "Widmer", "Wettingen", 1001, accountName1, "Active", new DateTime(1980, 06, 23), "James", "Test" });
            dataObject.AddData(new object[] { "Empty", "City", "", 1004, null, "Active", null, null, null });

            return(dataObject);
        }
Beispiel #18
0
        public void Test_ContactImport()
        {
            CrmConnection        crmConnection = (CrmConnection)connection.GetConnection();
            IOrganizationService service       = new OrganizationService(crmConnection);

            string accountName1 = Guid.NewGuid().ToString();
            Entity account      = new Entity("account");

            account.Attributes.Add("name", accountName1);
            Guid account1 = service.Create(account);

            IntegrationTool.Module.WriteToDynamicsCrm.WriteToDynamicsCrmConfiguration writeToCrmConfig = new IntegrationTool.Module.WriteToDynamicsCrm.WriteToDynamicsCrmConfiguration();
            writeToCrmConfig.EntityName = "contact";
            writeToCrmConfig.PrimaryKeyAttributes.Add("new_id");
            writeToCrmConfig.ImportMode        = Module.WriteToDynamicsCrm.SDK.Enums.ImportMode.All;
            writeToCrmConfig.MultipleFoundMode = Module.WriteToDynamicsCrm.SDK.Enums.MultipleFoundMode.All;
            writeToCrmConfig.Mapping.Add(new IntegrationTool.DataMappingControl.DataMapping()
            {
                Source = "ID", Target = "new_id"
            });
            writeToCrmConfig.Mapping.Add(new IntegrationTool.DataMappingControl.DataMapping()
            {
                Source = "FirstName", Target = "firstname"
            });
            writeToCrmConfig.Mapping.Add(new IntegrationTool.DataMappingControl.DataMapping()
            {
                Source = "LastName", Target = "lastname"
            });
            writeToCrmConfig.Mapping.Add(new IntegrationTool.DataMappingControl.DataMapping()
            {
                Source = "Status", Target = "statuscode"
            });
            writeToCrmConfig.Mapping.Add(new IntegrationTool.DataMappingControl.DataMapping()
            {
                Source = "Birthdate", Target = "birthdate"
            });
            writeToCrmConfig.RelationMapping.Add(new Module.WriteToDynamicsCrm.SDK.RelationMapping()
            {
                EntityName  = "account",
                LogicalName = "parentcustomerid",
                Mapping     = new List <DataMappingControl.DataMapping>()
                {
                    new DataMappingControl.DataMapping()
                    {
                        Source = "CompanyName",
                        Target = "name"
                    }
                }
            });
            writeToCrmConfig.ConfigurationId = Guid.NewGuid();
            writeToCrmConfig.SelectedConnectionConfigurationId = Test_Helpers.CRMCONNECTIONID;
            writeToCrmConfig.PicklistMapping.Add(new Module.WriteToDynamicsCrm.SDK.PicklistMapping()
            {
                LogicalName = "statuscode",
                MappingType = Module.WriteToDynamicsCrm.SDK.Enums.PicklistMappingType.Manual,
                Mapping     = new List <DataMappingControl.DataMapping>()
                {
                    new DataMappingControl.DataMapping()
                    {
                        Source = "Active", Target = "1"
                    },
                    new DataMappingControl.DataMapping()
                    {
                        Source = "Inactive", Target = "2"
                    }
                }
            });
            IDatastore dataObject = DataStoreFactory.GetDatastore();

            dataObject.AddColumn(new ColumnMetadata("FirstName"));
            dataObject.AddColumn(new ColumnMetadata("LastName"));
            dataObject.AddColumn(new ColumnMetadata("City"));
            dataObject.AddColumn(new ColumnMetadata("ID"));
            dataObject.AddColumn(new ColumnMetadata("CompanyName"));
            dataObject.AddColumn(new ColumnMetadata("Status"));
            dataObject.AddColumn(new ColumnMetadata("Birthdate"));

            dataObject.AddData(new object[] { "Peter", "Widmer", "Wettingen", 1001, accountName1, "Active", new DateTime(1980, 06, 23) });
            dataObject.AddData(new object[] { "Joachim 2", "Suter", "Dättwil", 1002, accountName1, "Inactive", new DateTime(2004, 12, 03) });
            dataObject.AddData(new object[] { "James", "Brown", "London", 1003, null, "Active", null });
            // Doublekey to test it works too
            dataObject.AddData(new object[] { "Peter", "Widmer", "Wettingen", 1001, accountName1, "Active", new DateTime(1980, 06, 23) });

            IModule module = Activator.CreateInstance(typeof(WriteToDynamicsCrm)) as IModule;

            module.SetConfiguration(writeToCrmConfig);

            ((IDataTarget)module).WriteData(connection, new DummyDatabaseInterface(), dataObject, Test_Helpers.ReportProgressMethod);

            service.Delete("account", account1);
        }