Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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;
        }