public void GetHashableGraficaPuntoMedicionTest()
        {
            HashableDataRepository r = new HashableDataRepository();
            AjaxDictionary<string, object> tipo = new AjaxDictionary<string, object>();

            tipo = r.GetHashableGraficaLumbreras(201405151704);
            tipo = new AjaxDictionary<string, object>(); ;
            //r.GetHashableGraficaPuntoMedicion(1002, 201406111219);
        }
        public void GetLastIsopFileTest()
        {
            HashableDataRepository r = new HashableDataRepository();
            /*
            List<string> isopFiles = new List<string>(){
                "isop_201406102015_8.kml","isop_201406102201_8.kml","isop_201406101944_8.kml",
                "isop_201406101730_15.kml","isop_201406101939_15.kml","isop_201406102301_15.kml",
                "isop_201406101830_30.kml","isop_201406101939_30.kml","isop_201406102201_30.kml"
            };
             * */

            //Control de tiempo
            DateTime iniDate = DateTime.Now;
            DateTime endDate = DateTime.Now;
            //Prueba con array de
            List<string> isopFiles = new List<string>();
            DateTime initDateTime=new DateTime(2014,8,1,0,0,0);
            for (int i = 0; i <= (8640*3); i++)
            {
                if (i == 8630)
                {
                    Console.WriteLine(i);
                }
                DateTime dt = initDateTime.AddMinutes( (i * 5) * -1);

                isopFiles.Add("isop_" + String.Format("{0:yyyyMMddHHmm}", dt) + "_8.kml");
                isopFiles.Add("isop_" + String.Format("{0:yyyyMMddHHmm}", dt) + "_15.kml");
                isopFiles.Add("isop_" + String.Format("{0:yyyyMMddHHmm}", dt) + "_30.kml");
                isopFiles.Add("isop_" + String.Format("{0:yyyyMMddHHmm}", dt) + "_1000.kml");
            }
            endDate = DateTime.Now;
            TimeSpan diff = endDate - iniDate;
            Console.WriteLine("Fill array : " + diff.Minutes.ToString() + "." + diff.Seconds.ToString());
            System.Diagnostics.Debug.Write("Fill array : " + diff.Minutes.ToString() + "." + diff.Seconds.ToString());

            /*
            //Obtener en base a un rango de 3 horas
            iniDate = DateTime.Now;
            DateTime rangeInitTime = new DateTime(2014, 7, 5, 15, 5, 0);
            int totalMinutes = 120;
            List<string> resList=new List<string>();

            for (int i = 0; i < totalMinutes; i++)
            {
                DateTime dt=rangeInitTime.AddMinutes(i * -1);

                resList.Add(r.GetLastIsopFile(String.Format("{0:yyyyMMddHHmm}", dt), "8", isopFiles));
                resList.Add(r.GetLastIsopFile(String.Format("{0:yyyyMMddHHmm}", dt), "15", isopFiles));
                resList.Add(r.GetLastIsopFile(String.Format("{0:yyyyMMddHHmm}", dt), "30", isopFiles));
                resList.Add(r.GetLastIsopFile(String.Format("{0:yyyyMMddHHmm}", dt), "1000", isopFiles));
            }
            endDate = DateTime.Now;
            diff = endDate - iniDate;
            System.Diagnostics.Debug.Write("Gill resList : " + diff.Minutes.ToString() + "." + diff.Seconds.ToString());
            */

            //Metodo 2: Utilizar sub arrays
            //Fechas de inicio y calculo de fecha fin
            iniDate = DateTime.Now;
            DateTime rangeInitTime = new DateTime(2014, 5, 3, 0, 0, 0);
            int totalMinutes = 120;
            DateTime rangeOldDate = rangeInitTime.AddMinutes(totalMinutes * -1);
            string strFechaNumericaNew = String.Format("{0:yyyyMMddHHmm}", rangeInitTime);
            string strFechaNumericaOld = String.Format("{0:yyyyMMddHHmm}", rangeOldDate);

            //Diccionarios para obtener los datos
            AjaxDictionary<string, object> isopFileByLevel = new AjaxDictionary<string, object>();
            AjaxDictionary<string, object> levelByFn = new AjaxDictionary<string, object>();
            Dictionary<string, string[]> arraysByLevel = new Dictionary<string, string[]>();

            List<string> ranges = new List<string>() { "8", "15", "30", "1000" };

            //Ciclo para llenar el subarray
            string[] tmpStrArray;
            foreach(string range in ranges)
            {
                r.GetLastIsopFile(
                    strFechaNumericaNew
                    ,strFechaNumericaOld
                    ,range
                    ,isopFiles
                    , out tmpStrArray
                );

                //Guardar el arreglo
                arraysByLevel.Add(range, tmpStrArray);
            }//endFech

            //Iniciar ciclo para cada uno de los minutos entre los rangos
            DateTime loopDate = rangeOldDate;
            while(loopDate<=rangeInitTime)
            {
                isopFileByLevel = null;
                foreach (string range in ranges)//para cada uno de los rangos
                {
                    string[] tmp = arraysByLevel[range];
                    isopFileByLevel = new AjaxDictionary<string, object>();
                    if(tmp!=null)
                    {
                        string tmpIsopLastFile = r.GetLastIsopFile(String.Format("{0:yyyyMMddHHmm}", loopDate), range, arraysByLevel[range].ToList<string>());
                        isopFileByLevel.Add(range, tmpIsopLastFile);
                    }
                    else
                    {
                        isopFileByLevel.Add(range, "");
                    }
                }//endFech

                levelByFn.Add(String.Format("{0:yyyyMMddHHmm}", loopDate), isopFileByLevel);

                loopDate=loopDate.AddMinutes(1);
            }//endWhile

            endDate = DateTime.Now;
            diff = endDate - iniDate;
            System.Diagnostics.Debug.Write("Subarrays method resList : " + diff.Minutes.ToString() + "." + diff.Seconds.ToString());
        }
        public AjaxDictionary<string, object> Download_IsoyetaRango()
        {
            AjaxDictionary<string, object> isoyetaRango = new AjaxDictionary<string, object>();

            try
            {
                HashableDataRepository repository = new HashableDataRepository();
                isoyetaRango = repository.GetIsoyetaRange();
            }
            catch (Exception ex)
            {
                throw new Exception("IMC_ERR_MSG: No se pudieron obtener los rangos de isoyetas", ex);
            }

            return isoyetaRango;
        }
        public AjaxDictionary<string, object> Download_IsopFiles_5min(long FechaNumerica)
        {
            AjaxDictionary<string, object> dictionaryFiles = new AjaxDictionary<string, object>();
            try
            {
                string rootDirectory = this.GetHostedRootDirectory5min();
                HashableDataRepository repository = new HashableDataRepository();
                dictionaryFiles = repository.GetIsopFileList_5min(FechaNumerica, rootDirectory);
            }
            catch (Exception ex)
            {
                ServerSQLLogger.Instance.log(ex, "Download_IsopFiles_5min (c1)");
                //throw ex;
            }

            return dictionaryFiles;
        }
 public List<spGetHashableAccionesActuales_Result> Download_HashableAccionesActuales(long FechaNumerica, long IdPuntoMedicion)
 {
     List<spGetHashableAccionesActuales_Result> lst = null;
     HashableDataRepository _Acciones = new HashableDataRepository();
     try
     {
         lst = _Acciones.GetHshableAccionesActual(FechaNumerica, IdPuntoMedicion);
     }
     catch (Exception ex)
     {
         var Error = ex.Message;
     }
     return lst;
 }
        //AjaxDictionary<string, List<HashableGraficaPuntoMedicionModel>>
        public AjaxDictionary<string, object> Download_GetHashableGraficaPuntoMedicion(long IdPuntoMedicion, long FechaNumerica)
        {
            AjaxDictionary<string, object> tipos = new AjaxDictionary<string, object>();
            AjaxDictionary<string, List<HashableGraficaPuntoMedicionModel>> res = new AjaxDictionary<string, List<HashableGraficaPuntoMedicionModel>>();
            AjaxDictionary<string, HashableGraficaPuntoMedicionModel[]> array = new AjaxDictionary<string, HashableGraficaPuntoMedicionModel[]>();
            //try
            //{

            //    HashableDataRepository repository = new HashableDataRepository();
            //    //tipos.Add(IdPuntoMedicion.ToString(), FechaNumerica);
            //    array = repository.GetHashableGraficaPuntoMedicion(IdPuntoMedicion, FechaNumerica);//(new HashableDataRepository()).GetHashableGraficaPuntoMedicion((long)IdPuntoMedicion, (long)FechaNumerica);
            //}
            //catch (Exception ex)
            //{
            //    tipos.Add("Download", ex.Message);
            //}
            try
            {
                //array.Add("res", new HashableGraficaPuntoMedicionModel[] { new HashableGraficaPuntoMedicionModel() { FechaNumerica = 1, Valor = 1 } });
                HashableDataRepository repository = new HashableDataRepository();
                tipos = repository.GetHstTableGraficaPuntoMedicion(IdPuntoMedicion, FechaNumerica);
            }
            catch (Exception ex)
            {
                tipos.Add("Download", ex.Message);
            }

            return tipos;
        }
 public AjaxDictionary<string, object> Download_GetHashableGraficaPromedioPesado(long FechaNumerica)
 {
     AjaxDictionary<string, object> tipos = new AjaxDictionary<string, object>();
     try
     {
         HashableDataRepository repository = new HashableDataRepository();
         tipos = repository.GetHshableGraficaPromedioPesado(FechaNumerica);
     }
     catch (Exception ex)
     {
         var error = ex.Message;
     }
     return tipos;
 }
 public AjaxDictionary<string, object> Download_GetHashableGraficaPromedio(long FechaNumerica)
 {
     AjaxDictionary<string, object> tipos = new AjaxDictionary<string, object>();
     try
     {
         HashableDataRepository repository = new HashableDataRepository();
         tipos = repository.GetHstTableGraficaPromedio(FechaNumerica);
     }
     catch (Exception)
     {
         ;
     }
     return tipos;
 }