IBE.SQL.EliteDBIO.ImportLocalizationDataFromCSV C# (CSharp) Method

ImportLocalizationDataFromCSV() public method

public ImportLocalizationDataFromCSV ( string fileName, EliteDBIO activeSetting, enLocalisationImportType importType = enLocalisationImportType.onlyNew ) : void
fileName string
activeSetting EliteDBIO
importType enLocalisationImportType
return void
        public void ImportLocalizationDataFromCSV(string fileName, EliteDBIO.enLocalizationType activeSetting, enLocalisationImportType importType = enLocalisationImportType.onlyNew)
        {
            String sqlString = "";
            Int32 counter = 0;
            String infoString = "";
            String idString = "";
            String dataLine;
            DataSet importData;
            DataTable importTable;

            try
            {
                switch (activeSetting)
                {
                    case enLocalizationType.Commodity:
                        infoString = "import commodity localization...";
                        idString = "Commodity_ID;Language;Name";
                        break;
                    case enLocalizationType.Category:
                        infoString = "import category localization...";
                        idString = "Category_ID;Language;Name";
                        break;
                    case enLocalizationType.Economylevel:
                        infoString = "import economylevel localization...";
                        idString = "EconomyLevel_ID;Language;Name";
                        break;
                    default:
                        throw new Exception("unknown setting :  " + activeSetting);
                }

                List<string> dataLines = File.ReadAllLines(fileName).ToList();
                
                if(dataLines[0].Equals(idString, StringComparison.InvariantCultureIgnoreCase))
                {
                    importData  = new DataSet();
                    importTable = new DataTable("Names");
                    importData.Tables.Add(importTable);
                    DataColumn column;

                    column = new DataColumn("id", Type.GetType("System.Int32"));
                    column.AllowDBNull = false;
                    column.Unique       = true;
                    importTable.Columns.Add(column);

                    for (int i = 1; i < dataLines.Count; i++)
        			{
                        if(!String.IsNullOrEmpty(dataLines[i]))
                        {
                            switch (activeSetting)
                            {
                                case enLocalizationType.Commodity:
                                    List<String> data = dataLines[i].Split(new char[] {';'}).ToList();
                                    Int32 currentID = Int32.Parse(data[0]);

                                    if (!importTable.Columns.Contains(data[1]))
                                    {

                                        Debug.Print(Type.GetType("System.String").ToString());
                                        // add a new language in table
                                        column = new DataColumn(data[1], Type.GetType("System.String"));
                                        column.DefaultValue = "";
                                        importTable.Columns.Add(column);
                                    }

                                    DataRow currentrow;

                                    var rowForID = importTable.Select("id = " + currentID);
                                    
                                    if (rowForID.Count() == 0)
                                    {
                                        // add a new row
                                        currentrow        = importTable.NewRow();
                                        currentrow["id"]  = currentID;
                                        importTable.Rows.Add(currentrow);
                                    }
                                    else
                                        currentrow = rowForID[0];

                                    currentrow[data[1]] = data[2].Trim();

                                    break;
                                case enLocalizationType.Category:
                                    break;
                                case enLocalizationType.Economylevel:
                                    break;
                                default:
                                    throw new Exception("unknown setting :  " + activeSetting);
                            }
                        }

                        counter++;
                    }
                
                    switch (activeSetting)
                    {
                        case enLocalizationType.Commodity:
                            ImportCommodityLocalizations(importData, importType);
                            break;
                        case enLocalizationType.Category:
                            infoString = "import category localization...";
                            idString = "Category_ID;Language;Name";
                            break;
                        case enLocalizationType.Economylevel:
                            infoString = "import economylevel localization...";
                            idString = "EconomyLevel_ID;Language;Name";
                            break;
                        default:
                            throw new Exception("unknown setting :  " + activeSetting);
                    }

                }
                else
                {
                    sendProgressEvent(new ProgressEventArgs() { Info="abort: file has wrong header", CurrentValue=1, TotalValue=1, ForceRefresh=true });
                }

                dataLines.Clear();
            }
            catch (Exception ex)
            {
                throw new Exception("Error while importing localization data from csv", ex);
            }
        }