public LoaderProcedure() { _ds = null; _mapping = null; _fileCsvData = null; _filesXmlData = null; _transcodeTime = null; }
public BuilderProcedure() { _ds = null; _fileCsvData = null; _filesXmlData = null; _mapping = null; _transcodeTime = null; _useTranscodeTime = false; }
public Mapping Set_MAPPING(int IDMappingSchema) { Dictionary<string, object> mapping_set = ISTAT.DBDAL.DataAccess.Get_MappingSet(IDMappingSchema); Dictionary<string, object> mapping_items = ISTAT.DBDAL.DataAccess.Get_MappingScheme(IDMappingSchema); if (mapping_set != null) { _ds = new DataStructure(int.Parse(mapping_set["ID_SET"].ToString())); _transcodeTime = new ISTAT.ENTITY.TranscodeTime(); _transcodeTime.periodChar = (TranscodeTime.TypePeriod)mapping_set["TRANSCODE_VALUE"]; _transcodeTime.stopChar = (mapping_set["TRANSCODE_CHAR"].ToString() != string.Empty) ? mapping_set["TRANSCODE_CHAR"].ToString() : string.Empty; _mapping = new Mapping(); _mapping.IDSchema = IDMappingSchema; _mapping.Name = mapping_set["NAME"].ToString(); _mapping.Time = ((DateTime)mapping_set["TIMESTAMP"]).TimeOfDay; _mapping.Description = mapping_set["DESCRIPTION"].ToString(); _mapping.TranscodeUse = (bool)mapping_set["TRANSCODE_USE"]; _mapping.TranscodeTime = _transcodeTime; _mapping.CSV_CHAR = (mapping_set["FILE_CSV_CHAR"].ToString() != string.Empty) ? char.Parse(mapping_set["FILE_CSV_CHAR"].ToString()) : ';'; _mapping.CSV_HASHEADER = (bool)mapping_set["FILE_CSV_HASHEADER"]; if (mapping_items != null) { _mapping.Items = new MappingItem[mapping_items.Count]; int i = 0; foreach (object mapp in mapping_items.Keys) { _mapping.Items[i] = new MappingItem(); Dictionary<int, string> c = mapping_items[mapp.ToString()] as Dictionary<int, string>; _mapping.Items[i]._a = c.Keys.First(); _mapping.Items[i]._b = mapp.ToString(); _mapping.Items[i]._c = c.Values.First(); i++; } } } return _mapping; }
public List<Mapping> Get_MAPPINGS(int idset, int iduser) { List<Mapping> _mappings = new List<Mapping>(); Dictionary<string, int> lst_mapping = ISTAT.DBDAL.DataAccess.Get_Mapping(idset); if (lst_mapping != null) { foreach (string mapp in lst_mapping.Keys) { Mapping m = new Mapping(); m.Name = mapp; m.IDSchema = (int)lst_mapping[mapp.ToString()]; _mappings.Add(m); } } return _mappings; }
public bool Delete_MAPPING(int idschema) { if (ISTAT.DBDAL.DataAccess.Delete_Mapping(idschema)) { _mapping = null; return true; } else return false; }
public Mapping Create_MAPPING( int idset, int iduser, string name, string desc, List<MappingItem> items, string csv_char, bool csv_header, bool trans_use, string trans_char, int trans_period) { _mapping = new Engine.Mapping(); Dictionary<string, Dictionary<string, object>> dict = new Dictionary<string, Dictionary<string, object>>(); foreach (MappingItem item in items) { Dictionary<string, object> c=new Dictionary<string,object>(); c.Add(item._b.ToString(),item._c); dict.Add(item._a.ToString(),c ); } int id = -1; if ((id = ISTAT.DBDAL.DataAccess.Create_Mapping( idset, iduser, name, desc, dict, csv_char, csv_header, trans_use, trans_char, trans_period)) > 0) { _mapping.IDSchema = id; _mapping.Items = items.ToArray<MappingItem>(); return _mapping; } else return null; }
public void Set_DataStructure(int IDCube) { if (IDCube >= 0) { _ds = ISTAT.DBDAL.DataAccess.Get_DataStructure(IDCube); _transcodeTime = null; _mapping = null; } }
// Procedura molto pesante!!! // Trasforma un csv in un dizionario di liste una rappresentazione in memoria di una tabella in forma normale public static Dictionary<string, List<string>> GetView(System.IO.Stream stream, Mapping mapping, int maxResult = 0, int offSet = 0) { if (stream == null) return null; if (mapping == null) return null; Dictionary<string, List<string>> view = new Dictionary<string, List<string>>(); stream.Seek(0, System.IO.SeekOrigin.Begin); //create object for CSVReader and pass the stream CSVReader reader = new CSVReader((System.IO.Stream)stream); string[] dataRow; int indexRow = 0; try { while ((dataRow = reader.GetCSVLine()) != null) { // offset salto le offSet righe del csv if (indexRow >= offSet) { foreach (MappingItem item in mapping.Items) { int numColumn = int.Parse(item._a.ToString()); string data = dataRow[numColumn - 1]; string header = item._b.ToString(); if (header.ToUpper() == "TIME_PERIOD") if (mapping.TranscodeUse) data = mapping.TranscodeTime.TransCodific(data); if (view.Keys.Contains<string>(header)) { if (maxResult > 0 && ((List<string>)view[header]).Count >= maxResult) return view; ((List<string>)view[header]).Add(data.Trim()); } else { view.Add(header, new List<string>()); ((List<string>)view[header]).Add(data.Trim()); } } } indexRow++; } return view; } catch (Exception ex) { //Console.Write(ex.Message); } return null; }