private static DataTable GetDataTabletFromCSVFile(string csv_file_path)
        {
            DataTable csvData = new DataTable();

            try
            {
                using (CsvTextFieldParser csvReader = new CsvTextFieldParser(csv_file_path))
                {
                    csvReader.SetDelimiter(',');
                    csvReader.HasFieldsEnclosedInQuotes = true;
                    string[] colFields = csvReader.ReadFields();
                    foreach (string column in colFields)
                    {
                        DataColumn datecolumn = new DataColumn(column);
                        datecolumn.AllowDBNull = true;
                        csvData.Columns.Add(datecolumn);
                    }
                    int j = 0;
                    while (!csvReader.EndOfData)
                    {
                        string[] fieldData = csvReader.ReadFields();

                        //Making empty value as null
                        for (int i = 0; i < fieldData.Length; i++)
                        {
                            if (fieldData[i] == "")
                            {
                                fieldData[i] = null;
                            }
                        }
                        j += 1;
                        csvData.Rows.Add(fieldData);
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(csvData);
        }
Example #2
0
        private List <object> GetData(int nrofrows)
        {
            try
            {
                if (Entities != null)
                {
                    if (Entities.Count == 0)
                    {
                        if (Entities[0].Fields.Count == 0)
                        {
                            Getfields();
                        }
                    }
                }
                else
                {
                    Entities = new List <EntityStructure>();
                    Getfields();
                }
                Records = new List <object>();
                if (Entities != null)
                {
                    fieldParser = new CsvTextFieldParser(Path.Combine(Dataconnection.ConnectionProp.FilePath, Dataconnection.ConnectionProp.FileName));
                    fieldParser.SetDelimiter(',');

                    DMTypeBuilder.CreateNewObject(DatasourceName, DatasourceName, Entities[0].Fields);
                    Dictionary <string, PropertyInfo> properties = new Dictionary <string, PropertyInfo>();
                    foreach (EntityField item in Entities[0].Fields)
                    {
                        properties.Add(item.fieldname, DMTypeBuilder.myType.GetProperty(item.fieldname));
                        //  properties[item.ColumnName].SetValue(x, row[item.ColumnName], null);
                    }

                    string[] r = fieldParser.ReadFields();
                    while ((fieldParser.EndOfData == false))
                    {
                        dynamic x = Activator.CreateInstance(DMTypeBuilder.myType);

                        r = fieldParser.ReadFields();

                        for (int i = 0; i < Entities[0].Fields.Count; i++)
                        {
                            try
                            {
                                string st = r[i].ToString();
                                if (!string.IsNullOrEmpty(st) && !string.IsNullOrWhiteSpace(st))
                                {
                                    properties[Entities[0].Fields[i].fieldname].SetValue(x, Convert.ChangeType(st, DMEEditor.Utilfunction.GetTypeCode(Type.GetType(Entities[0].Fields[i].fieldtype))), null);
                                }
                            }
                            catch (Exception fieldex)
                            {
                            }
                        }
                        Records.Add(x);
                    }
                }

                fieldParser.Close();
                return(Records);
            }
            catch (Exception ex)
            {
                fieldParser.Close();
                DMEEditor.AddLogMessage("Fail", $"Error : Could not Get Data from File {DatasourceName}-  {ex.Message}", DateTime.Now, 0, null, Errors.Failed);
                return(null);
            }
        }
Example #3
0
        private EntityStructure Getfields()
        {
            EntityStructure entityData = new EntityStructure();

            try
            {
                string[] flds = null;
                if (GetFileState() == ConnectionState.Open)
                {
                    fieldParser = new CsvTextFieldParser(Path.Combine(Dataconnection.ConnectionProp.FilePath, Dataconnection.ConnectionProp.FileName));
                    fieldParser.SetDelimiter(',');
                    flds = fieldParser.ReadFields();
                    int y = 0;
                    List <EntityField> fl        = new List <EntityField>();
                    string             sheetname = Path.GetFileNameWithoutExtension(DatasourceName);

                    entityData.Viewtype             = ViewType.File;
                    entityData.DatabaseType         = DataSourceType.CSV;
                    entityData.DataSourceID         = FileName;
                    entityData.DatasourceEntityName = sheetname;
                    entityData.Caption            = sheetname;
                    entityData.EntityName         = sheetname;
                    entityData.OriginalEntityName = sheetname;
                    entityData.Id = 0;

                    foreach (string field in flds)
                    {
                        EntityField f        = new EntityField();
                        string      entspace = Regex.Replace(field, @"\s+", "_");
                        f.fieldname                = entspace;
                        f.Originalfieldname        = field;
                        f.fieldtype                = "System.String";
                        f.ValueRetrievedFromParent = false;
                        f.EntityName               = sheetname;
                        f.FieldIndex               = y;
                        f.Checked         = false;
                        f.AllowDBNull     = true;
                        f.IsAutoIncrement = false;
                        f.IsCheck         = false;
                        f.IsKey           = false;
                        f.IsUnique        = false;
                        y++;
                        fl.Add(f);
                    }

                    entityData.Fields = GetFieldsbyTableScan(DatasourceName, fl, flds);
                    Entities          = new List <EntityStructure>();
                    EntitiesNames     = new List <string>();
                    Entities.Add(entityData);
                    EntitiesNames.Add(DatasourceName);
                    DMEEditor.ConfigEditor.SaveDataSourceEntitiesValues(new ConfigUtil.DatasourceEntities {
                        datasourcename = DatasourceName, Entities = Entities
                    });
                }
            }
            catch (Exception ex)
            {
                DMEEditor.AddLogMessage("Fail", $"Error : Could not Create Entity For File {DatasourceName}- {ex.Message}", DateTime.Now, 0, null, Errors.Failed);
            }
            fieldParser.Close();
            return(entityData);
        }