public async Task <IHttpActionResult> crearCarrera(carreras carrera) { //verificar elementos nulos if (carrera.idCliente > 0 && //cliente carrera.longitudOrigen != null && carrera.latitudOrigen != null && //origen carrera.longitudDestino != null && carrera.latitudDestino != null && //destino carrera.idMetodoPago > 0 && carrera.idViaSolicitud > 0) //metodo pago / via solicitud { //verificar formato de posicion string patron = @"^(\-?\d+\.\d+)"; var validarLatOrigen = Regex.Match(carrera.latitudOrigen.ToString(), patron); var validarLongOrigen = Regex.Match(carrera.longitudOrigen.ToString(), patron); var validarLatDest = Regex.Match(carrera.latitudDestino.ToString(), patron); var validarLongDest = Regex.Match(carrera.longitudDestino.ToString(), patron); if (validarLatOrigen.Success && validarLatOrigen.Success && validarLatDest.Success && validarLongDest.Success) { //buscar cliente clientes cliente = db.clientes.Find(carrera.idCliente); if (cliente != null) { carrera.idEstado = 41; // Creada como carrear "En Espera" carrera.fechaSolicitud = DateTime.Now; if (ModelState.IsValid) { //agregar a bd try { db.carreras.Add(carrera); await db.SaveChangesAsync(); //crear las solicitudes a los taxistas if (taxistas.solicitudTaxista(carrera)) { //string msj; //msj = carrera.ToString(); //Push envios = new Push(msj); //envios.EnviarTodosTaxistas(); var json = JsonConvert.SerializeObject(carrera); Push envios = new Push(json); envios.EnviarTodosTaxistas(); return(Ok("Su solicitud esta siendo atendida. Gracias.")); } else { //borrar la carrera y las solicitudes var solicitudesCarrera = db.solicitudes.Where(x => x.idCarrera == carrera.idCarrera); if (solicitudesCarrera.Count() > 0) { db.solicitudes.RemoveRange(solicitudesCarrera); } db.carreras.Remove(carrera); db.SaveChanges(); //fin borrado return(BadRequest("Ha ocurrido un error y no se ha podido crear la carrera. Intente de nuevo.")); } } catch (Exception e) { return(BadRequest("Ha ocurrido un error y no se ha podido crear la carrera. Intente de nuevo.")); } } else { return(BadRequest("Los datos proporcionados no son correctos")); } } else { return(BadRequest("El cliente no existe")); } } else { return(BadRequest("Ubicación origen y/o destino incorrecta(s)")); } } else { return(BadRequest("No todos los datos necesarios han sido proporcionados")); } }