Пример #1
0
        public IEnumerator FollowingAcceptance(long idFollower, string acceptanceStatus)
        {
            WWWForm form   = new WWWForm();
            var     idUser = "";

            if (Application.platform == RuntimePlatform.WindowsEditor)
            {
                idUser = "******";
            }
            else
            {
                idUser = FB.UserId;
            }

            form.AddField("followed", idUser);
            form.AddField("follower", idFollower.ToString());
            form.AddField("status", acceptanceStatus);

            yield return(WebService.POST(SERVER_URL + "/usuario/followResponse", form,
                                         (status, response) =>
            {
                if (status)
                {
                    using (var sqlite = new SQLiteService())
                    {
                        sqlite.TransactionalQuery("DELETE FROM UserFollowingNotification WHERE idUsuarioFacebook = '" + idUser + "' and idFollower = '" + idFollower + "'");
                    }
                }
            }
                                         ));
        }
Пример #2
0
        private void OnTouchResetButton(object sender, TouchEventArgs e)
        {
            StringBuilder sqlQueryBuilder = new StringBuilder();

            //Poner las fechas de la lista de los detalleUsuarioTourList en blanco
            foreach (var detalleUsuarioTour in detalleUsuarioTourList)
            {
                ////En la base de datos
                sqlQueryBuilder.Append(
                    "UPDATE DetalleUsuarioTour SET fechaInicio = null, fechaLlegada = null, fechaFin = null " +
                    "WHERE id = " + detalleUsuarioTour.idDetalleUsuarioTour.Value + ";"
                    );

                ////En la lista
                detalleUsuarioTour.fechaFin     = null;
                detalleUsuarioTour.fechaInicio  = null;
                detalleUsuarioTour.fechaLlegada = null;
            }

            using (var service = new SQLiteService())
            {
                service.TransactionalQuery(sqlQueryBuilder.ToString());
            }

            //Poner los hijos actualizados
            UpdateCreateScrollView();
        }
Пример #3
0
        private void GetUsuarioInfoResult(FBResult result)
        {
            if (!string.IsNullOrEmpty(result.Error))
            {
                Debug.LogError(result.Error);
            }
            else
            {
                var json = new JSONObject(result.Text);
                var user = new Usuario(json);

                var modelPool = ModelPoolManager.GetInstance();

                if (!modelPool.Contains("Usuario"))
                {
                    user.email = user.email.Replace("\\u0040", "@");
                    ModelPoolManager.GetInstance().Add("Usuario", user);

                    using (var sqliteService = new SQLiteService())
                    {
                        bool isInDB = false;
                        var  query  = "SELECT * FROM Usuario WHERE idUsuarioFacebook = " + user.idUsuarioFacebook.Value;
                        using (var reader = sqliteService.SelectQuery(query))
                        {
                            if (reader.Read())
                            {
                                isInDB = true;
                            }
                            else
                            {
                                isInDB = false;
                            }
                        }

                        if (!isInDB)
                        {
                            query = "SELECT MAX(id) as id FROM Usuario";

                            int id = 0;
                            using (var reader = sqliteService.SelectQuery(query))
                            {
                                int temp;
                                if (int.TryParse(Convert.ToString(reader["id"]), out temp))
                                {
                                    id = temp;
                                }
                            }

                            id++;
                            sqliteService.TransactionalQuery(
                                "INSERT INTO Usuario VALUES (" + id + ",'" + user.idUsuarioFacebook + "','" + user.nombre + "','" + user.apellido + "','" + user.email + "','" + user.gender + "');"
                                );
                        }
                    }

                    FB.API("/me/picture?width=128&height=128", Facebook.HttpMethod.GET, GetUsuarioInfoPhotoResult);
                    StartCoroutine(SendUserFacebookId(user));
                }
            }
        }
Пример #4
0
        public bool UpdateSectionTour(out bool isEndTour)
        {
            isEndTour = false;
            string nodeName;

            if (IsUserCollidingBuilding(out nodeName))
            {
                if (!isStartingSectionTour && currentSectionTourData.Desde == nodeName)
                {
                    isStartingSectionTour = true;

                    var detalleUsuarioTour = this.detalleUsuarioTourList.Find(detalle =>
                    {
                        return(detalle.idPuntoReunionTour == currentSectionTourData.IdPuntoReuionNodoDesde);
                    });

                    detalleUsuarioTour.fechaInicio = DateTime.Now;

                    using (var sqlService = new SQLiteService())
                    {
                        if (!(currentIndex == 0))
                        {
                            sqlService.TransactionalQuery(
                                "UPDATE DetalleUsuarioTour SET " +
                                "fechaInicio = '" + detalleUsuarioTour.fechaInicio.Value.ToString("dd/MM/yyyy HH:mm:ss") + "' " +
                                "WHERE id = " + detalleUsuarioTour.idDetalleUsuarioTour
                                );
                        }
                        else
                        {
                            detalleUsuarioTour.fechaLlegada = detalleUsuarioTour.fechaInicio;

                            sqlService.TransactionalQuery(
                                "UPDATE DetalleUsuarioTour SET " +
                                "fechaInicio = '" + detalleUsuarioTour.fechaInicio.Value.ToString("dd/MM/yyyy HH:mm:ss") + "' AND " +
                                "fechaLlegada = '" + detalleUsuarioTour.fechaLlegada.Value.ToString("dd/MM/yyyy HH:mm:ss") + "' " +
                                "WHERE id = " + detalleUsuarioTour.idDetalleUsuarioTour
                                );
                        }
                    }
                }
                else if (!isEndingSectionTour && currentSectionTourData.Hasta == nodeName)
                {
                    isEndingSectionTour = true;
                    var detalleUsuarioTour = this.detalleUsuarioTourList.Find(detalle =>
                    {
                        return(detalle.idPuntoReunionTour == currentSectionTourData.IdPuntoReuionNodoHasta);
                    });

                    detalleUsuarioTour.fechaLlegada = DateTime.Now;

                    using (var sqlService = new SQLiteService())
                    {
                        if (!(currentIndex == sectionTourDataList.Count - 1))
                        {
                            sqlService.TransactionalQuery(
                                "UPDATE DetalleUsuarioTour SET " +
                                "fechaLlegada = '" + detalleUsuarioTour.fechaLlegada.Value.ToString("dd/MM/yyyy HH:mm:ss") + "' " +
                                "WHERE id = " + detalleUsuarioTour.idDetalleUsuarioTour
                                );
                        }
                        else
                        {
                            detalleUsuarioTour.fechaInicio = detalleUsuarioTour.fechaLlegada;

                            sqlService.TransactionalQuery(
                                "UPDATE DetalleUsuarioTour SET " +
                                "fechaInicio = '" + detalleUsuarioTour.fechaInicio.Value.ToString("dd/MM/yyyy HH:mm:ss") + "' AND " +
                                "fechaLlegada = '" + detalleUsuarioTour.fechaLlegada.Value.ToString("dd/MM/yyyy HH:mm:ss") + "' " +
                                "WHERE id = " + detalleUsuarioTour.idDetalleUsuarioTour
                                );
                        }
                    }
                }
            }

            if (isEndingSectionTour && isStartingSectionTour)
            {
                ResetValues();
                if (!CanChangeToNextSectionTour())
                {
                    isEndTour = true;
                }

                return(true);
            }

            return(false);
        }
Пример #5
0
        public void Update()
        {
            State.ChangeState(eState.Tour);


            using (var sqlService = new SQLiteService())
            {
                //Verificar si el tour se completó
                var tourCtrl = ModelPoolManager.GetInstance().GetValue("tourCtrl") as TourController;

                if (tourCtrl.isEndTour)
                {
                    sqlService.TransactionalQuery(
                        "UPDATE UsuarioTour SET estado = 'finalizado' AND fechaFin = '" + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + "' WHERE id = " + this.idUsuarioTour
                        );
                }
                else
                {
                    sqlService.TransactionalQuery(
                        "UPDATE UsuarioTour SET estado = 'inconcluso' AND fechaFin = null WHERE id = " + this.idUsuarioTour
                        );
                }

                ModelPoolManager.GetInstance().Remove("tourCtrl");

                this.detalleUsuarioTourList.Clear();
                var sql = "SELECT * FROM DetalleUsuarioTour WHERE idUsuarioTour = " + idUsuarioTour;

                using (var resultDetalleUsuarioTour = sqlService.SelectQuery(sql))
                {
                    while (resultDetalleUsuarioTour.Read())
                    {
                        DateTime?updatedDate = null, startDate = null, endDate = null;
                        DateTime temp;

                        var 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;
                            }
                        }

                        this.detalleUsuarioTourList.Add(
                            new DetalleUsuarioTour()
                        {
                            idDetalleUsuarioTour = Convert.ToInt32(resultDetalleUsuarioTour["id"]),
                            idPuntoReunionTour   = Convert.ToInt32(resultDetalleUsuarioTour["idPuntoReunionTour"]),
                            idUsuarioTour        = idUsuarioTour,
                            fechaInicio          = startDate,
                            fechaLlegada         = endDate,
                            fechaFin             = updatedDate
                        }
                            );
                    }
                }
            }

            UpdateCreateScrollView();
        }
Пример #6
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;
        }
Пример #7
0
        public IEnumerator ReceiveFollowingRequest()
        {
            var idUser = "";

            if (Application.platform == RuntimePlatform.WindowsEditor)
            {
                idUser = "******";
            }
            else
            {
                idUser = FB.UserId;
            }

            WWWForm form = new WWWForm();

            form.AddField("id", idUser);

            yield return(WebService.POST(SERVER_URL + "/usuario/notifyFollowingRequest", form, (status, response) =>
            {
                if (status)
                {
                    Debug.Log("notifyFollowingRequest -> " + response);
                    var json = new JSONObject(response);

                    if (json.list.Count > 0)
                    {
                        using (var sqlite = new SQLiteService())
                        {
                            Dictionary <long, string> notificationToSave = new Dictionary <long, string>();
                            foreach (var notification in json.list)
                            {
                                var idNotification = Convert.ToInt64(notification.GetField("id").str);
                                var nombre = notification.GetField("name").str;
                                notificationToSave.Add(idNotification, nombre);

                                Debug.Log("Request for FOLLOW from: " + idNotification);
                            }

                            //Limpiar la tabla de notificaciones
                            sqlite.TransactionalQuery("DELETE FROM UserFollowingNotification");

                            //Insertar en la base de datos
                            int id = 0;
                            var queryBuilder = new StringBuilder();

                            foreach (var notification in notificationToSave)
                            {
                                id++;
                                queryBuilder.Append("INSERT INTO UserFollowingNotification VALUES (" + id + ",'" + idUser + "','" + notification.Key + "','" + notification.Value + "');");
                            }

                            sqlite.TransactionalQuery(queryBuilder.ToString());

                            if (UIUtils.notificationPendingFollowCount == id)
                            {
                                UIUtils.PushFollowingNotification(false);
                            }
                            else
                            {
                                UIUtils.PushFollowingNotification(true);
                            }
                        }
                    }
                }
            }));

            if (!IsEnterPendingFollowingNotification)
            {
                StartCoroutine(CountDown(10f, value => IsEnterPendingFollowingNotification = value));
                yield return(new WaitForSeconds(0.5f));
            }
        }
Пример #8
0
        private IEnumerator ReceiveSharedFriendLocatioNotification()
        {
            var idUser = "";

            if (Application.platform == RuntimePlatform.WindowsEditor)
            {
                idUser = "******";
            }
            else
            {
                idUser = FB.UserId;
            }

            WWWForm form = new WWWForm();

            form.AddField("id", idUser);

            yield return(WebService.POST(SERVER_URL + "/usuario/notifySharedLocationRequest", form, (status, response) =>
            {
                if (status)
                {
                    Debug.Log("notifySharedLocationRequest -> " + response);
                    var json = new JSONObject(response);

                    if (json.list.Count > 0)
                    {
                        using (var sqlite = new SQLiteService())
                        {
                            Dictionary <long, object> notificationToSave = new Dictionary <long, object>();
                            foreach (var notification in json.list)
                            {
                                var idUsuario = Convert.ToInt64(notification.GetField("id").str);
                                var nombre = notification.GetField("nombre").str;
                                var nodo = Convert.ToInt32(notification.GetField("nodo").n);
                                var mensaje = notification.GetField("mensaje").str;

                                notificationToSave.Add(idUsuario, new { nombre, nodo, mensaje });

                                Debug.Log("Shared Location Request from: " + idUsuario);
                            }

                            //Limpiar la tabla de notificaciones
                            sqlite.TransactionalQuery("DELETE FROM UserSharedLocationNotification");

                            //Insertar en la base de datos
                            int id = 0;
                            var queryBuilder = new StringBuilder();

                            foreach (var notification in notificationToSave)
                            {
                                id++;

                                var nodo = Convert.ToInt32(notification.Value.GetType().GetProperty("nodo").GetValue(notification.Value, null));
                                var nombre = Convert.ToString(notification.Value.GetType().GetProperty("nombre").GetValue(notification.Value, null));
                                var mensaje = Convert.ToString(notification.Value.GetType().GetProperty("mensaje").GetValue(notification.Value, null));

                                queryBuilder.Append("INSERT INTO UserSharedLocationNotification VALUES (" + id + ",'" + idUser + "','" + notification.Key + "','" + nombre + "'," + nodo + ",'" + mensaje + "');");
                            }

                            sqlite.TransactionalQuery(queryBuilder.ToString());

                            //if (UIUtils.notificationPendingFollowCount == id)
                            //{
                            //    UIUtils.PushSharedLocationNotification(false);
                            //}
                            //else
                            //{
                            //    UIUtils.PushSharedLocationNotification(true);
                            //}
                        }
                    }
                }
            }));

            if (!IsEnterSharedLocationNotification)
            {
                StartCoroutine(CountDown(10f, value => IsEnterSharedLocationNotification = value));
                yield return(new WaitForSeconds(0.5f));
            }
        }