private bool SaveEntity(DBTIdxGeneralEntity entity)
 {
     if (entity == null)
     {
         return(false);
     }
     if (entity.IsDataValid && CheckTable <DBTIdxGeneralEntity>())
     {
         var idx_general = new DBTIdxGeneralEntity(entity.Code, accessor);
         if (idx_general.Fresh() > 0 && entity.Equals(idx_general))
         {
             return(false);
         }
         idx_general.Copy(entity);
         if (idx_general.Save() > 0)
         {
             //logger.Write(TYPE.INFO, string.Format("import data([CD:{0}][NAME:{1}]) in (IDX_GENERAL_TD)", idx_general.Code, idx_general.Name));
             return(true);
         }
     }
     return(false);
 }
        private T ExportEntity <T>(string line, Template <TemplateUnit> template) where T : TableEntity
        {
            if (string.IsNullOrWhiteSpace(line) || template == null)
            {
                return(default(T));
            }
            var separator = Convert.ToChar(9);

            var values = line.Trim().Split(new char[] { separator });

            if (values == null || values.Length <= 0)
            {
                return(default(T));
            }

            object      data   = null;
            TableEntity entity = null;

            if (typeof(T) == typeof(DBTStkGeneralEntity))
            {
                entity = new DBTStkGeneralEntity();
            }
            if (typeof(T) == typeof(DBTStkDailyEntity))
            {
                entity = new DBTStkDailyEntity();
            }
            if (typeof(T) == typeof(DBTStkMinuteEntity))
            {
                entity = new DBTStkMinuteEntity();
            }
            if (typeof(T) == typeof(DBTIdxGeneralEntity))
            {
                entity = new DBTIdxGeneralEntity();
            }
            if (typeof(T) == typeof(DBTStkFavoriteEntity))
            {
                entity = new DBTStkFavoriteEntity();
            }


            if (entity != null)
            {
                try
                {
                    var temp = new Dictionary <string, string>();
                    template.FindAll(t => t.ColumnIndex >= 0).ForEach(itm =>
                    {
                        var value = (itm.ColumnIndex < values.Length) ? values[itm.ColumnIndex] : string.Empty;
                        if (temp.ContainsKey(itm.DBColumn))
                        {
                            temp[itm.DBColumn] = (string.IsNullOrEmpty(temp[itm.DBColumn])) ? value : temp[itm.DBColumn] + value;
                        }
                        else
                        {
                            temp.Add(itm.DBColumn, value);
                        }
                    });

                    foreach (string col in temp.Keys)
                    {
                        var column = entity.GetColumn(col);
                        if (column == null)
                        {
                            continue;
                        }
                        column.Value = TemplateUnit.ConvertVal(column.DataType, temp[col]);
                        entity.SetColumn(column);
                    }
                }
                catch (Exception err)
                {
                    logger.Write(TYPE.ERROR, string.Format("Template:{0} Line:{1}", template.Table.ToString(), line));
                    logger.Write(err);
                }

                data = entity;
            }

            return((data == null) ? default(T) : (T)data);
        }