예제 #1
0
 public string[] GetAllCsvFilesFromDirectory(string directoryPath, string errorLogPath)
 {
     try
     {
         string[] csvfiles = Directory.GetFiles(directoryPath, "*.csv");
         return(csvfiles);
     }
     catch (Exception e)
     {
         var error  = e.Message;
         var reason = "Invalid File Path";
         _exportCSVService.ErrorLog("Region", directoryPath, errorLogPath, reason);
         return(null);
     }
 }
예제 #2
0
        private List <DMMods> GetModsListFromCsvFile <DMMods>(string filePath, Dictionary <string, string> header)
        {
            try
            {
                using (var reader = new StreamReader(filePath))
                    using (var csv = new CsvReader(reader))
                    {
                        var mapper = new ModsHeaderMap(header);
                        csv.Configuration.RegisterClassMap(mapper);

                        var modsRecord = csv.GetRecords <DMMods>().ToList();
                        return(modsRecord);
                    }
            }
            catch (Exception e)
            {
                var errorMsg = e.Message;
                _exportCsvService.ErrorLog(this.errorFile, filePath, this.errorFile, errorMsg);
                return(null);
            }
        }
예제 #3
0
        /// <summary>
        /// Import data from csv file to the system
        /// </summary>
        /// <param name="configuration"></param>
        public void ImportCustomerData(object configuration, Guid userGuid, string errorLogPath, bool isDelete)
        {
            var configDictionary = _importFileService.GetFileUsingJToken(configuration.ToString());
            var importConfigData = GetConfigurationSetting(configuration.ToString());

            if (importConfigData != null)
            {
                if (!string.IsNullOrWhiteSpace(importConfigData.InputFolderPath))
                {
                    this.inputFolderPath  = importConfigData.InputFolderPath;
                    this.outputFolderPath = importConfigData.LogOutputPath;
                    var watch = System.Diagnostics.Stopwatch.StartNew();
                    //get list of csv file
                    var csvFile = _importFileService.GetAllCsvFilesFromDirectory(this.inputFolderPath, errorLogPath);
                    if (csvFile != null && csvFile.Length > 0)
                    {
                        var customerHeader = _importFileService.GetCSVHeader(importConfigData.CSVToAttributeMapping.ToString());
                        foreach (var file in csvFile)
                        {
                            var customerList = GetCustomerListFromCsvFile <DMCustomer>(file, customerHeader);
                            var fileHeader   = _importFileService.GetCSVHeaderFromFile(file, customerHeader);
                            if (customerList == null)
                            {
                                _exportCsvService.ErrorLog(this.errorFile, inputFolderPath, errorLogPath, "Invalid Header");
                                break;
                            }
                            else
                            {
                                //import Customer
                                var importedList                = ImportCustomer(customerList, userGuid);
                                var fileName                    = Path.GetFileNameWithoutExtension(file);
                                var fileNameWithExtension       = Path.GetFileName(file);
                                var fileExtension               = Path.GetExtension(file);
                                var fileNameForExportWithStatus = _exportCsvService.GetExportFileName(fileName, this.fileNameToAppend, fileExtension);

                                var exportHeader = _exportCsvService.GetExportCSVHeader(fileHeader);
                                var exportList   = MapperHelper.GetExportList(importedList, exportHeader).ToList();
                                var isFileSaved  = _exportCsvService.SaveCSVWithStatus(exportList, outputFolderPath, fileNameForExportWithStatus, exportHeader);
                                if (isFileSaved)
                                {
                                    _importFileService.MoveFile(inputFolderPath, this.outputFolderPath, fileName, fileExtension, isDelete);
                                }
                            }
                        }
                    }

                    watch.Stop();
                    var duration = watch.Elapsed.Duration();
                    Console.WriteLine(duration);
                }
            }
        }
예제 #4
0
        /// <summary>
        /// Import data from csv file to the system
        /// </summary>
        /// <param name="configuration"></param>
        public void ImportRegionData(object configuration, Guid userGuid, string errorLogPath, bool isDelete)
        {
            var configDictionary = _importFileService.GetFileUsingJToken(configuration.ToString());
            var importConfigData = GetConfigurationSetting(configuration.ToString());

            if (importConfigData != null)
            {
                if (!string.IsNullOrWhiteSpace(importConfigData.InputFolderPath))
                {
                    this.inputFolderPath  = importConfigData.InputFolderPath;
                    this.outputFolderPath = importConfigData.LogOutputPath;


                    //get list of csv file
                    var csvFile = _importFileService.GetAllCsvFilesFromDirectory(this.inputFolderPath, errorLogPath);
                    if (csvFile != null && csvFile.Length > 0)
                    {
                        var regionHeader = _importFileService.GetCSVHeader(importConfigData.CSVToAttributeMapping.ToString());
                        foreach (var file in csvFile)
                        {
                            var regionList = GetRegionListFromCsvFile <DMRegion>(file, regionHeader);
                            var fileHeader = _importFileService.GetCSVHeaderFromFile(file, regionHeader);
                            if (regionList == null)
                            {
                                _exportCsvService.ErrorLog(this.errorFile, inputFolderPath, errorLogPath, "Invalid Header");
                                break;
                            }
                            else
                            {
                                //import region
                                var importedList                = ImportRegion(regionList, userGuid);
                                var fileName                    = Path.GetFileNameWithoutExtension(file);
                                var fileNameWithExtension       = Path.GetFileName(file);
                                var fileExtension               = Path.GetExtension(file);
                                var fileNameForExportWithStatus = GetExportFileName(fileName, this.fileNameToAppend) + fileExtension;

                                var exportHeader = _exportCsvService.GetExportCSVHeader(fileHeader);
                                var exportList   = MapperHelper.GetExportList(importedList, exportHeader).ToList();
                                var isFileSaved  = _exportCsvService.SaveCSVWithStatus(exportList.ToList(), outputFolderPath, fileNameForExportWithStatus, exportHeader);
                                if (isFileSaved)
                                {
                                    _importFileService.MoveFile(inputFolderPath, this.outputFolderPath, fileName, fileExtension, isDelete);
                                }
                            }
                        }
                    }
                }
            }
        }
예제 #5
0
        public void ImportData(string filePath, Guid userGuid, string errorLogPath)
        {
            try
            {
                bool isDeletable       = false;
                var  streamReader      = new StreamReader(filePath);
                var  json              = streamReader.ReadToEnd();
                var  configurationData = GetImportConfiguration(json);

                //check if file is movable or not
                if (configurationData.ContainsKey(this.deleteFile))
                {
                    var deleteAbleValue = configurationData[this.deleteFile].ToString();
                    if (!string.IsNullOrWhiteSpace(deleteAbleValue) && trueBooleanArray.Contains(deleteAbleValue.ToLower()))
                    {
                        isDeletable = true;
                    }
                }

                ///for region data import
                if (configurationData.ContainsKey(this.region))
                {
                    var regionConfigObject = configurationData[this.region];
                    if (regionConfigObject != null)
                    {
                        _regionImportService.ImportRegionData(regionConfigObject, userGuid, errorLogPath, isDeletable);
                    }
                }
                /////end of region

                //company imort
                if (configurationData.ContainsKey(this.company))
                {
                    var companyConfigObject = configurationData[this.company];
                    if (companyConfigObject != null)
                    {
                        _companyImportService.ImportCompanyData(companyConfigObject, userGuid, errorLogPath, isDeletable);
                    }
                }

                //office import
                if (configurationData.ContainsKey(this.office))
                {
                    var officeConfigObject = configurationData[this.office];
                    if (officeConfigObject != null)
                    {
                        _officeImportService.ImportOfficeData(officeConfigObject, userGuid, errorLogPath, isDeletable);
                    }
                }

                //customer import
                if (configurationData.ContainsKey(this.customer))
                {
                    var customerConfigObject = configurationData[this.customer];
                    if (customerConfigObject != null)
                    {
                        _customerImportService.ImportCustomerData(customerConfigObject, userGuid, errorLogPath, isDeletable);
                    }
                }

                //customer contact import
                if (configurationData.ContainsKey(this.customerContact))
                {
                    var customerContactObject = configurationData[this.customerContact];
                    if (customerContactObject != null)
                    {
                        _customerContactImportService.ImportCustomerContactData(customerContactObject, userGuid, errorLogPath, isDeletable);
                    }
                }

                //contract import
                if (configurationData.ContainsKey(this.contract))
                {
                    var contractConfigObject = configurationData[this.contract];
                    if (contractConfigObject != null)
                    {
                        _contractImportService.ImportContractData(contractConfigObject, userGuid, errorLogPath, isDeletable);
                    }
                }

                //mods import
                if (configurationData.ContainsKey(this.mods))
                {
                    var modsConfigObject = configurationData[this.mods];
                    if (modsConfigObject != null)
                    {
                        _modImportService.ImportModsData(modsConfigObject, userGuid, errorLogPath, isDeletable);
                    }
                }


                //farclause import
                if (configurationData.ContainsKey(this.farClause))
                {
                    var farClauseConfigObject = configurationData[this.farClause];
                    if (farClauseConfigObject != null)
                    {
                        _farClauseImportService.ImportFarClauseData(farClauseConfigObject, userGuid, errorLogPath, isDeletable);
                    }
                }

                //questionaire import
                if (configurationData.ContainsKey(this.questionaire))
                {
                    var questionaireConfigObject = configurationData[this.questionaire];
                    if (questionaireConfigObject != null)
                    {
                        _farClauseImportService.ImportQuestionaireData(questionaireConfigObject, userGuid, errorLogPath, isDeletable);
                    }
                }

                //Task.Factory.StartNew(() =>
                //{
                //    ///for region data import
                //    if (configurationData.ContainsKey(this.region))
                //    {
                //        var regionConfigObject = configurationData[this.region];
                //        if (regionConfigObject != null)
                //            _regionImportService.ImportRegionData(regionConfigObject, userGuid, errorLogPath);

                //    }
                //    /////end of region
                //}).ContinueWith((company) =>
                //{
                //    //company imort
                //    if (configurationData.ContainsKey(this.company))
                //    {
                //        var companyConfigObject = configurationData[this.company];
                //        if (companyConfigObject != null)
                //            _companyImportService.ImportCompanyData(companyConfigObject, userGuid, errorLogPath);
                //    }
                //}).ContinueWith((office) =>
                //{
                //    //office import
                //    if (configurationData.ContainsKey(this.office))
                //    {
                //        var officeConfigObject = configurationData[this.office];
                //        if (officeConfigObject != null)
                //            _officeImportService.ImportOfficeData(officeConfigObject, userGuid, errorLogPath);
                //    }
                //}).ContinueWith((customer) =>
                //{
                //    //customer import
                //    if (configurationData.ContainsKey(this.customer))
                //    {
                //        var customerConfigObject = configurationData[this.customer];
                //        if (customerConfigObject != null)
                //            _customerImportService.ImportCustomerData(customerConfigObject, userGuid, errorLogPath);
                //    }
                //}).ContinueWith((customerContact) =>
                //{
                //    //customer contact import
                //    if (configurationData.ContainsKey(this.customerContact))
                //    {
                //        var customerContactObject = configurationData[this.customerContact];
                //        if (customerContactObject != null)
                //            _customerContactImportService.ImportCustomerContactData(customerContactObject, userGuid, errorLogPath);
                //    }
                //}).ContinueWith((contract) =>
                //{
                //    //contract import
                //    if (configurationData.ContainsKey(this.contract))
                //    {
                //        var contractConfigObject = configurationData[this.contract];
                //        if (contractConfigObject != null)
                //            _contractImportService.ImportContractData(contractConfigObject, userGuid, errorLogPath);
                //    }
                //}).ContinueWith((mod) =>
                //{
                //    //mods import
                //    if (configurationData.ContainsKey(this.mods))
                //    {
                //        var modsConfigObject = configurationData[this.mods];
                //        if (modsConfigObject != null)
                //            _modImportService.ImportModsData(modsConfigObject, userGuid, errorLogPath);
                //    }
                //});
            }
            catch (Exception ex)
            {
                _exportCSVService.ErrorLog("", "", errorLogPath, ex.Message);
            }
        }