// GET: api/Ciudades/{idProv} public string Get(string id) { try { var servicios = new ServicioWebHorariosProximos(); var data = servicios.RecuperarTodasCiudadesPorProvinciaAndroid(Int32.Parse(id), Constants.USUARIO, Constants.CLAVE); if (string.IsNullOrEmpty(data)) { return(JsonConvert.SerializeObject(new Exception("Data retrieved is null."))); } var spl = data.Split('|'); if (spl.Length > 0 && spl[0] == "0") { var paises = (from s in spl where !string.IsNullOrEmpty(s) && s.Contains(";") select new Ciudad { Id = Int32.Parse(s.Split(';')[0]), Nombre = s.Split(';')[1] }).ToList(); return(JsonConvert.SerializeObject(paises)); } return(JsonConvert.SerializeObject(new Exception("Error trying to parse data."))); } catch (Exception ex) { return(JsonConvert.SerializeObject(ex)); } }
public string Get(string parada) { try { Log.InfoFormat("Parada: {0}", parada); if (service == null) { service = new swandroidcuandollegasmp.Paradas(); service.UserDetailsValue = new swandroidcuandollegasmp.UserDetails(); service.UserDetailsValue.password = "******"; service.UserDetailsValue.userName = "******"; } //if(_lineasCache == null) //{ // _lineasCache = service.RecuperarLineaPorLocalidad("CÓRDOBA", "CÓRDOBA", "ARGENTINA"); //} #region test //1278 linea 10 cba ///working //var calles = p.RecuperarCallesPrincipalPorLinea(1278); //var inters = p.RecuperarInterseccionPorLineaYCalle(1278, int.Parse(calles[0].codigo)); //var locs = p.RecuperarLocalidadesPorEntidad(15); //var lineas = p.RecuperarLineaPorLocalidad("CÓRDOBA", "CÓRDOBA", "ARGENTINA"); // //var paradas2 = p.RecuperarParadasPorCalleEInterseccion(23733, 23734); //var paradas3 = p.RecuperarParadasPorLineaCalleEInterseccion(1278, 23733, 23734); //var horarios = p.RecuperarProximosArribosSMP("C0094", "1278", 0, "CÓRDOBA"); ////con más datos (??) //var horariosCL = p.RecuperarProximosArribosCLCompleto("C0094", 1278, 0, 15, "CÓRDOBA"); //buscar entre las lineas la {linea} //TresPropiedades _linea = null; //for (int i = 0; i < _lineasCache.Length; i++) //{ // if(_lineasCache[i].descripcionB == linea.Trim()) // { // _linea = _lineasCache[i]; // break; } //} //if (_linea == null) //{ // Log.ErrorFormat("LINEA NOT FOUND. Parada: {0} , Linea: {1}", parada, linea); // return JsonConvert.SerializeObject(new List<Horario>()); //} //obtener codigo //var codigo = int.Parse(_linea.descripcionA); //var codigo = _linea.descripcionA; //var horarios = service.RecuperarProximosArribos(parada, int.Parse(codigo), 0, 15, "CÓRDOBA"); //var horarios = service.RecuperarProximosArribosSMP(parada, codigo, 0, "CÓRDOBA"); #endregion var list = new List <Horario>(); var horarios = service.RecuperarProximosArribos(parada, 0, 0, 15, "CÓRDOBA"); if (horarios.Length == 0) { // intenta con otro servicio ServicioWebHorariosProximos a = new ServicioWebHorariosProximos(); var aux = a.RecuperarHorarioCuandoLlegaDosAndroid(parada, Constants.USER_ID, "TODOS", Constants.USUARIO, Constants.CLAVE, "-1"); if (aux.StartsWith("0|")) { if (aux.Contains("Sin datos")) { return(JsonConvert.SerializeObject(new Exception("No se encontraron horarios para esta parada"))); } var data = aux.Split('|')[1]; foreach (string s in data.Split(new[] { "//" }, StringSplitOptions.None)) { if (string.IsNullOrEmpty(s)) { continue; } var horario = new Horario(); var spl = s.Split(','); horario.Linea = spl[0]; string ax = spl[1]; if (ax.Contains(":")) { int index = ax.IndexOf(":"); horario.Hora = ax.Substring((index - 2)); horario.Direccion = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(ax.Replace(horario.Hora, "").ToLower()); } else { horario.Direccion = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(spl[1].ToLower()); if (spl[2] == "0") { horario.Llegando = true; horario.Minutos = 0; } else { horario.Minutos = Int32.Parse(spl[2]); } } list.Add(horario); } } } else { foreach (ProximoArribo item in horarios) { var h = new Horario { Direccion = item.bandera, Llegando = item.arribo.Contains("Arribando"), Linea = item.linea, Hora = "" }; if (list.Find(x => x.Linea == item.linea) != null) { continue; } var regex = new Regex(@"\d+"); var matches = regex.Matches(item.arribo); if (matches.Count > 0) { h.Minutos = int.Parse(matches[0].Value); } list.Add(h); } } return(JsonConvert.SerializeObject(list)); } catch (Exception ex) { Log.Error("Horarios 'GET' error", ex); return(JsonConvert.SerializeObject(ex)); } }