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);
        }