public bool AddFriend(int userId, int friendId)
        {
            try
            {
                CinguettioDBEntities context = new CinguettioDBEntities();
                User user = context.Users.FirstOrDefault(u => u.Id == userId);

                if (user == null)
                {
                    return false;
                }

                User friend = context.Users.FirstOrDefault(u => u.Id == friendId);

                if (friend == null)
                {
                    return false;
                }

                user.Friends.Add(friend);
                context.SaveChanges();

                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
        public bool CreateUser(string userName, string password, string firstName, string lastName, string email, string latitude, string longitude)
        {
            try
            {
                decimal? latitudeDecimal = null;
                if (!string.IsNullOrEmpty(latitude))
                {
                    latitudeDecimal = decimal.Parse(latitude, System.Globalization.CultureInfo.InvariantCulture);
                }

                decimal? longitudeDecimal = null;
                if (!string.IsNullOrEmpty(longitude))
                {
                    longitudeDecimal = decimal.Parse(longitude, System.Globalization.CultureInfo.InvariantCulture);
                }

                CinguettioDBEntities context = new CinguettioDBEntities();
                context.AddToUsers(new User()
                {
                    UserName = userName,
                    Password = password,
                    FirstName = firstName,
                    LastName = lastName,
                    Email = email,
                    Latitude = latitudeDecimal,
                    Longitude = longitudeDecimal
                });
                context.SaveChanges();
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
        public void CreatePost(int userId, string title, string content)
        {
            CinguettioDBEntities context = new CinguettioDBEntities();

            context.AddToPosts(new Post()
            {
                UserId = userId,
                Title = title,
                Content = content,
                DateCreated = DateTime.UtcNow
            });

            context.SaveChanges();
        }
        public void UpdateUserProfile(int userId, string firstName, string lastName, string email, string imageUrl)
        {
            CinguettioDBEntities context = new CinguettioDBEntities();
            User user = context.Users.FirstOrDefault(u => u.Id == userId);

            if (user == null)
            {
                return;
            }

            if (!string.IsNullOrEmpty(firstName) && firstName != user.FirstName)
            {
                user.FirstName = firstName;
            }

            if (!string.IsNullOrEmpty(lastName) && lastName != user.LastName)
            {
                user.LastName = lastName;
            }

            if (!string.IsNullOrEmpty(email) && email != user.Email)
            {
                user.Email = email;
            }

            if (!string.IsNullOrEmpty(imageUrl) && imageUrl != user.ImageUrl)
            {
                user.ImageUrl = imageUrl;
            }

            context.SaveChanges();
        }
        public void UpdateUserPosition(int userId, decimal latitude, decimal longitude)
        {
            CinguettioDBEntities context = new CinguettioDBEntities();
            User user = context.Users.FirstOrDefault(u => u.Id == userId);

            if (user == null)
            {
                return;
            }

            user.Latitude = latitude;
            user.Longitude = longitude;

            context.SaveChanges();
        }
        public void UpdatePost(int postId, string title, string content)
        {
            CinguettioDBEntities context = new CinguettioDBEntities();

            Post post = context.Posts.FirstOrDefault(p => p.Id == postId);
            if (post == null)
            {
                return;
            }

            if (!string.IsNullOrEmpty(title) && post.Title != title)
            {
                post.Title = title;
            }

            if (!string.IsNullOrEmpty(content) && post.Content != content)
            {
                post.Content = content;
            }

            context.SaveChanges();
        }