public void ImportData(CrmServiceClient targetCrmService, string dataFilePath, string logFilePath, List <LookupMatchCriteria> lookupMatchCriterias) { PluginStepStateChanger pluginStateChanger = new PluginStepStateChanger(); string xmlData = File.ReadAllText(dataFilePath); USDConfiguration sourceUSDConfiguration = xmlData.XmlDeSerialize <USDConfiguration>(); if (sourceUSDConfiguration == null || sourceUSDConfiguration.CRMEntities == null) { throw new Exception("Empty or invalid configuration. Please check the import data file."); } List <String> usdAssemblies = GetUSDAssemblies(); USDConfiguration targetUsdConfiguration = _exportDataService.GetUSDConfiguration(targetCrmService, sourceUSDConfiguration.Name); if (lookupMatchCriterias == null) { lookupMatchCriterias = _crmRepository.GetDefaultLookupMatchCriterias(); } Guid configurationId = sourceUSDConfiguration.CRMEntities.First(x => x.LogicalName == "msdyusd_configuration").CRMRecords[0].Id; bool pluginsDisabled = pluginStateChanger.DisablePlugins(targetCrmService, usdAssemblies); if (!pluginsDisabled) { throw new Exception("Unable to disbaled plugins. Import process cannot continue"); } BeginImport(targetCrmService, configurationId, sourceUSDConfiguration, targetUsdConfiguration, lookupMatchCriterias); pluginStateChanger.EnablePlugins(targetCrmService, usdAssemblies); GenerateLogs(logFilePath); }