internal IDataSetStore FindDataCache(IDataflowObject df, IDataStructureObject kf, List <DataCriteria> Criterias, ref Dictionary <string, List <DataChacheObject> > DataCache, bool useAttr, out string DBFileName)
        {
            DataChacheObject findCache = null;
            Dictionary <string, List <string> > Criteri = new Dictionary <string, List <string> >();

            Criterias.ForEach(c => Criteri.Add(c.component, c.values));
            DBFileName = null;

            if (DataCache != null)
            {
                string DfID = Utils.MakeKey(df);
                if (DataCache.ContainsKey(DfID))
                {
                    List <DataChacheObject> singleDataCache = DataCache[DfID];
                    findCache = singleDataCache.Find(dc => DictionaryEqual(dc.Criterias, Criteri));

                    Dictionary <string, List <string> > CriteriDataCache = new Dictionary <string, List <string> >();
                    if (singleDataCache.Count > 0)
                    {
                        CriteriDataCache = singleDataCache.FirstOrDefault().Criterias;
                    }

                    bool pippo = false;
                    if (CriteriDataCache.Count > 0)
                    {
                        pippo = DictionaryContain(singleDataCache.FirstOrDefault().Criterias, Criteri);
                    }

                    if (pippo)
                    {
                        findCache = singleDataCache.FirstOrDefault();
                    }
                }
            }

            if (findCache != null)
            {
                if (!string.IsNullOrEmpty(findCache.DBFileName) && File.Exists(findCache.DBFileName))
                {
                    #region Connessione e Creazione DB SQLLite
                    string        ConnectionString = string.Format(CultureInfo.InvariantCulture, Constants.FileDBSettingsFormat, findCache.DBFileName);
                    var           info             = new DBInfo(ConnectionString);
                    string        tempTable        = "table_" + Utils.MakeKey(df).Replace("+", "_").Replace(".", "");
                    IDataSetStore store            = new DataSetStoreDB(info, tempTable, kf, false, useAttr);
                    //DBFileName = findCache.DBFileName;
                    store.SetCriteria(Criterias);
                    return(store);

                    #endregion
                }
                return(null);
            }
            return(null);
        }
 public DataPaging(DataChacheObject findCache)
 {
     CurrentPageIndex = 1;
     PageNumber = 0;
     PagingFileDirectory = new DirectoryInfo(findCache.PagingDataDirectory);
     if (!PagingFileDirectory.Exists)
         PagingFileDirectory.Create();
     else
     {
         FileInfo[] pagine = PagingFileDirectory.GetFiles();
         PageNumber = pagine.Length;
     }
 }
 public DataPaging(DataChacheObject findCache)
 {
     CurrentPageIndex    = 1;
     PageNumber          = 0;
     PagingFileDirectory = new DirectoryInfo(findCache.PagingDataDirectory);
     if (!PagingFileDirectory.Exists)
     {
         PagingFileDirectory.Create();
     }
     else
     {
         FileInfo[] pagine = PagingFileDirectory.GetFiles();
         PageNumber = pagine.Length;
     }
 }