//private List<xFerParamater> _props = new List<xFerParamater>();

        //public List<xFerParamater> Props
        //{
        //    get { return _props; }
        //    set { _props = value; }
        //}
        #endregion

        #region method: init
        private void initMe(string path)
        {
            //EMPTY PREVIOUS
            _xFerPackages.Clear();
            _initPath = path;
            string[] files = xFerFiles.openAllFiles(path);

            foreach (string file in files)
            {
                if (file.StartsWith(path + "package_"))
                {
                    string sLoad = xFerFiles.getFile(file);
                    if (sLoad.Length > 0)
                    {
                        try
                        {
                            xFerPackage _x = new xFerPackage();
                            _x = LitJson.JsonMapper.ToObject<xFerPackage>(sLoad);
                            
                            if (_x != null)
                            {
                                _xFerPackages.Add(_x);
                                Console.WriteLine("Loaded Package: " + _x.PackageName);

                                foreach (xFer xf in _x.XFers)
                                {
                                    Console.WriteLine("--" + xf.XFerName);
                                }

                            }
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("failed to load file " + file);
                        }
                    }
                }
            }
            //GET Saved DBs

            string[] dbFiles = xFerFiles.openAllFiles(path + "\\db");
            foreach (string db in dbFiles)
            {
                try
                {
                    string dbJSON = xFerFiles.getFile(db);
                    if (dbJSON.Length > 0)
                    {
                        xFerDb _d = new xFerDb();
                        _d = LitJson.JsonMapper.ToObject<xFerDb>(dbJSON);

                        if (_d != null)
                        {
                            _dbs.Add(_d);
                            Console.WriteLine("Loaded DB: " + _d.DbName);
                        }
                    }
                }
                catch
                {
                }
            }

        }
        public void createQuery(List<xFerParamater> _vars)
        {
            string packageName = _vars[0].Value.ToString().Trim();
            string queryName = _vars[1].Value.ToString().Trim();
            string queryType = _vars[2].Value.ToString().Trim();
            string queryText = _vars[3].Value.ToString().Trim();
            List<xFerParamater> _params = new List<xFerParamater>();
            if (_vars.Count > 4)
            {
                string paramtext = _vars[4].Value.ToString().Trim();
                try
                {
                    _params = getParametersPassed(paramtext);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("query parameters failed.");
                }
            }
            
            //SEARCH QUERY FOR EXISTING QUERIES

            bool packageExists = false;
            foreach (xFerPackage _x in _xFerPackages)
            {
                if (_x.PackageName == packageName)
                {
                    packageExists = true;
                    bool exists = false;
                    foreach (xFerQuery _q in _x.Queries)
                    {
                        if (_q.QueryName == queryName)
                        {
                            exists = true;
                            if (queryType == "SP")
                            {
                                _q.QueryType = xFerQueryType.StoredProcedure;
                            }
                            else if (queryType == "T")
                            {
                                _q.QueryType = xFerQueryType.Text;
                            }
                            _q.QueryText = queryText;
                            // newQuery.MongoQuery = "";
                            //newQuery.Paramaters
                            if (_params.Count > 0)
                            {
                                _q.Paramaters = _params;
                            }
                            savePackage(_x.PackageName);
                        }
                    }

                    if (!exists)
                    {
                        xFerQuery newQuery = new xFerQuery();
                        newQuery.QueryName = queryName;
                        if (queryType == "SP")
                        {
                            newQuery.QueryType = xFerQueryType.StoredProcedure;
                        }
                        else if (queryType == "T")
                        {
                            newQuery.QueryType = xFerQueryType.Text;
                        }
                        newQuery.QueryText = queryText;
                        // newQuery.MongoQuery = "";
                        //newQuery.Paramaters
                        if (_params.Count > 0)
                        {
                            newQuery.Paramaters = _params;
                        }

                        _x.Queries.Add(newQuery);

                        

                        savePackage(_x.PackageName);
                    }
                }
            }

            if (!packageExists)
            {
                //CREATE PACKAGE
                xFerPackage xPack = new xFerPackage();
                xPack.PackageName = packageName;
                xFerQuery newQuery = new xFerQuery();
                
                newQuery.QueryName = queryName;
                if (queryType == "SP")
                {
                    newQuery.QueryType = xFerQueryType.StoredProcedure;
                }
                else if (queryType == "T")
                {
                    newQuery.QueryType = xFerQueryType.Text;
                }
                newQuery.QueryText = queryText;
                //newQuery.Paramaters
                if (_params.Count > 0)
                {
                    newQuery.Paramaters = _params;
                }

                xPack.Queries.Add(newQuery);


                _xFerPackages.Add(xPack);
                savePackage(xPack.PackageName);
            }

        }
        public void createPackage(List<xFerParamater> _vars)
        {
            bool packageExists = false;            
            //SEE IF PACKAGE ALREADY EXISTS
            foreach (xFerPackage p in _xFerPackages)
            {
                if (p.PackageName == _vars[0].Value.ToString().Trim())
                {
                    packageExists = true;
                }
            }

            if (!packageExists)
            {
                xFerPackage xPack = new xFerPackage();
                xPack.PackageName = _vars[0].Value.ToString().Trim();
                _xFerPackages.Add(xPack);
                savePackage(xPack.PackageName);
                //xFerFiles.createFile(LitJson.JsonMapper.ToJson(xPack), _initPath + "\\package_" + xPack.PackageName + ".txt");
            }
            else
            {
                if (_vars.Count > 1)
                {
                    foreach (xFerPackage p in _xFerPackages)
                    {
                        if (p.PackageName == _vars[0].Value.ToString().Trim())
                        {
                            //ADD STUFF 
                        }
                    }
                }
            }


        }