Files
School/Anul 2/Semestrul 2/ISS/Lab5/CasualProfile/District 3 App/FriendsWindow/CustomWindow.xaml.cs
T
2024-08-31 12:07:21 +03:00

149 lines
4.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace District_3_App.FriendsWindow
{
/// <summary>
/// Interaction logic for CustomWindow.xaml
/// </summary>
public partial class CustomWindow : Window
{
// Mock friends list
private static Dictionary<string, UserInfo> GetFriends()
{
var contacts = new Dictionary<string, UserInfo>();
// Create User objects with usernames and add them to the dictionary
contacts["0752111222"] = new UserInfo("@patri.stoica", "0752111222");
contacts["0743111222"] = new UserInfo("@delia.gherasim", "0743111222");
contacts["0755111222"] = new UserInfo("@anita.gorog", "0755111222");
return contacts;
}
// Mock posts
private static List<Post> GetPosts()
{
List<Post> posts = new List<Post>();
Post post = new Post(9);
posts.Add(post);
return posts;
}
private static Dictionary<Post, List<UserInfo>> MakePostDictionary()
{
Dictionary<Post, List<UserInfo>> posts = new Dictionary<Post, List<UserInfo>>();
foreach (Post post in GetPosts())
{
posts[post] = new List<UserInfo>();
}
return posts;
}
private Post GetCurrentPost()
{
return allowedProfiles.Keys.First();
}
private Dictionary<string, UserInfo> friends = GetFriends();
private Dictionary<Post, List<UserInfo>> allowedProfiles = MakePostDictionary();
private List<string> allowedNames = new List<string>();
// private List<Post> listPosts = getPosts();
private void LoadUsernames()
{
listBox.Items.Clear();
foreach (UserInfo user in friends.Values)
{
listBox.Items.Add(user.Username);
}
}
public CustomWindow()
{
InitializeComponent();
// listBox.ItemsSource = getUsernames();
LoadUsernames();
}
private void SearchButton_Clicked(object sender, RoutedEventArgs e)
{
string searchText = textBox.Text.ToLower();
if (searchText != string.Empty)
{
List<string> filteredUsernames = friends.Values
.Where(user => user.Username.ToLower().Contains(searchText))
.Select(user => user.Username)
.ToList();
listBox.Items.Clear();
foreach (string user in filteredUsernames)
{
listBox.Items.Add(user);
}
}
else
{
LoadUsernames();
}
}
private void TextBox_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
textBox.Text = string.Empty;
}
private bool AddAllowedUserToSeePost(UserInfo user, Post key)
{
allowedProfiles[key].Add(user);
return true;
}
private void SaveButton_Clicked(object sender, RoutedEventArgs e)
{
foreach (UserInfo user in friends.Values)
{
if (allowedNames.Contains(user.Username))
{
AddAllowedUserToSeePost(user, GetCurrentPost());
}
}
MessageBox.Show("Restricted Usernames: " + string.Join(", ", allowedNames));
}
private void CheckedFunction(object sender, RoutedEventArgs e)
{
CheckBox clickedButton = (CheckBox)sender;
Grid grid = (Grid)VisualTreeHelper.GetParent(clickedButton);
TextBlock textBlock = (TextBlock)grid.Children[1];
string username = textBlock.Text;
allowedNames.Add(username);
MessageBox.Show("Restricted: " + username);
}
private void UnCheckedFunction(object sender, RoutedEventArgs e)
{
CheckBox clickedButton = (CheckBox)sender;
Grid grid = (Grid)VisualTreeHelper.GetParent(clickedButton);
TextBlock textBlock = (TextBlock)grid.Children[1];
string username = textBlock.Text;
allowedNames.Remove(username);
MessageBox.Show("Removed from restricted: " + username);
}
}
}