public MenuUsuarioTourSelection(string name, string tourName, UsuarioTour usuarioTour, List <DetalleUsuarioTour> detalleUsuarioTourList) { this.name = name; this.detalleUsuarioTourList = detalleUsuarioTourList; this.tourName = tourName; this.idUsuarioTour = usuarioTour.idUsuarioTour.Value; Initializer(); }
private void Process(Tour tour, out UsuarioTour usuarioTour, out List <DetalleUsuarioTour> detalleUsuarioTourList) { UsuarioTour userTour = null; List <DetalleUsuarioTour> detailsList = new List <DetalleUsuarioTour>(); using (var sqlService = new SQLiteService()) { var user = ModelPoolManager.GetInstance().GetValue("Usuario") as Usuario; //Del tour seleccionado verificar si el usuario esta suscrito var sqlQuery = "SELECT * FROM UsuarioTour WHERE idUsuarioFacebook = '" + user.idUsuarioFacebook + "' AND idTour = " + tour.idTour; using (var resultUsuarioTour = sqlService.SelectQuery(sqlQuery)) { //El UsuarioTour ya ha sido creado if (resultUsuarioTour.HasRows == true) { #region Recuperacion UsuarioTour DateTime?startDate = null, endDate = null; DateTime temp; var obj = resultUsuarioTour["fechaInicio"]; if (obj != null) { string fechaInicio = Convert.ToString(obj); if (DateTime.TryParseExact(fechaInicio, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out temp)) { startDate = temp; } } obj = resultUsuarioTour["fechaFin"]; if (obj != null) { string fechaFin = Convert.ToString(obj); if (DateTime.TryParseExact(fechaFin, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out temp)) { endDate = temp; } } userTour = new UsuarioTour() { idUsuarioFacebook = user.idUsuarioFacebook, idUsuarioTour = Convert.ToInt32(resultUsuarioTour["id"]), idTour = Convert.ToInt32(resultUsuarioTour["idTour"]), estado = Convert.ToString(resultUsuarioTour["estado"]), fechaInicio = startDate, fechaFin = endDate }; #endregion #region Recuperacion DetalleUsuarioTour var sql = "SELECT * FROM DetalleUsuarioTour WHERE idUsuarioTour = " + userTour.idUsuarioTour; using (var resultDetalleUsuarioTour = sqlService.SelectQuery(sql)) { while (resultDetalleUsuarioTour.Read()) { DateTime?updatedDate = null; startDate = endDate = null; obj = resultDetalleUsuarioTour["fechaInicio"]; if (obj != null) { var fechaInicio = Convert.ToString(obj); if (DateTime.TryParseExact(fechaInicio, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out temp)) { startDate = temp; } } obj = resultDetalleUsuarioTour["fechaLlegada"]; if (obj != null) { var fechaFin = Convert.ToString(obj); if (DateTime.TryParseExact(fechaFin, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out temp)) { endDate = temp; } } obj = resultDetalleUsuarioTour["fechaFin"]; if (obj != null) { var fechaActualizacion = Convert.ToString(obj); if (DateTime.TryParseExact(fechaActualizacion, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out temp)) { updatedDate = temp; } } detailsList.Add( new DetalleUsuarioTour() { idDetalleUsuarioTour = Convert.ToInt32(resultDetalleUsuarioTour["id"]), idPuntoReunionTour = Convert.ToInt32(resultDetalleUsuarioTour["idPuntoReunionTour"]), idUsuarioTour = userTour.idUsuarioTour, fechaInicio = startDate, fechaLlegada = endDate, fechaFin = updatedDate } ); } } #endregion } //Se creará un nuevo registro de UsuarioTour y sus repectivos DetalleUsuarioTour else { #region Creacion UsuarioTour //Buscando el ultimo id int idUsuarioTour = 0; using (var result = sqlService.SelectQuery("SELECT MAX(id) as id FROM UsuarioTour")) { while (result.Read()) { int.TryParse(Convert.ToString(result["id"]), out idUsuarioTour); } } idUsuarioTour++; var fechaInicio = DateTime.Now; //Creacion del UsuarioTour //Insertando en la base de datos sqlService.TransactionalQuery( "INSERT INTO UsuarioTour (id, idTour, idUsuarioFacebook, fechaInicio, request) " + "VALUES (" + idUsuarioTour + "," + tour.idTour + ",'" + user.idUsuarioFacebook + "','" + fechaInicio.ToString("dd/MM/yyyy HH:mm:ss") + "','create')" ); //sqlService.TransactionalQuery( // "INSERT INTO UsuarioTour (id, idTour, fechaInicio, request) " + // "VALUES (" + idUsuarioTour + "," + tour.idTour + ",'" + fechaInicio.ToString("dd/MM/yyyy HH:mm:ss") + "','create')" //); //Creacion del objeto de UsuarioTour userTour = new UsuarioTour() { idUsuarioTour = idUsuarioTour, fechaInicio = fechaInicio, idTour = tour.idTour, estado = "activo", idUsuarioFacebook = user.idUsuarioFacebook }; //userTour = new UsuarioTour() //{ // idUsuarioTour = idUsuarioTour, // fechaInicio = fechaInicio, // idTour = tour.idTour, // estado = "activo", //}; #endregion #region Creacion DetalleUsuarioTourList //Obtener los puntos de reunion del tour selecionado var puntoReuionList = new List <PuntoReunionTour>(); using (var result = sqlService.SelectQuery("SELECT * FROM PuntoReunionTour WHERE idTour = " + tour.idTour)) { while (result.Read()) { var puntoReunion = new PuntoReunionTour() { idPuntoReunionTour = Convert.ToInt32(result["id"]), secuencia = Convert.ToInt32(result["secuencia"]), idNodo = Convert.ToInt32(result["idNodo"]), idTour = Convert.ToInt32(result["idTour"]) }; puntoReuionList.Add(puntoReunion); } } //Creacion del DetalleUsuarioTour //Buscando el ultimo id int idDetalleUsuarioTour = 0; using (var result = sqlService.SelectQuery("SELECT MAX(id) as id FROM DetalleUsuarioTour")) { if (result.Read()) { int.TryParse(Convert.ToString(result["id"]), out idDetalleUsuarioTour); } } StringBuilder sqlBuilder = new StringBuilder(); foreach (var puntoReunion in puntoReuionList) { idDetalleUsuarioTour++; //Insertando en la base de datos sqlBuilder.Append( "INSERT INTO DetalleUsuarioTour (id, idPuntoReunionTour, idUsuarioTour) " + "VALUES (" + idDetalleUsuarioTour + "," + puntoReunion.idPuntoReunionTour + "," + idUsuarioTour + ");" ); //Creacion del objeto de DetalleUsuarioTour detailsList.Add( new DetalleUsuarioTour() { idDetalleUsuarioTour = idDetalleUsuarioTour, idPuntoReunionTour = puntoReunion.idPuntoReunionTour, idUsuarioTour = idUsuarioTour } ); } sqlService.TransactionalQuery(sqlBuilder.ToString()); #endregion } } } usuarioTour = userTour; detalleUsuarioTourList = detailsList; }