using Newtonsoft.Json; using esoft.Class; using esoft.Entities; using esoft.Models.Respounce; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Security.Cryptography; 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.Navigation; using System.Windows.Shapes; namespace esoft.Pages { /// /// Логика взаимодействия для LoginPage.xaml /// public partial class LoginPage : Page { ActualContext actualContext = new ActualContext(); private const string apiUrl = "http://localhost:55429/api/Users/"; public LoginPage() { InitializeComponent(); } private async void BtnLogin_Click(object sender, RoutedEventArgs e) { // Получение логина и пароля из текстовых полей string username = TBoxLogin.Text; string password = PBoxPassword.Password; // Отправка запроса к API var user = await GetUserFromApi(username); if (user != null && user.Password == password && !user.IsDeleted) { // Успешная авторизация GetCurrent.CurrentUser = user; // Перенаправление пользователя на страницу с задачами NavigationService.Navigate(new Pages.TaskLists()); } else { // Ошибка авторизации MessageBox.Show("Ошибка авторизации. Пожалуйста, проверьте логин и пароль."); } } private async Task GetUserFromApi(string username) { using (HttpClient client = new HttpClient()) { try { // Отправка GET-запроса к API var response = await client.GetStringAsync(apiUrl); // Десериализация JSON-ответа в объект User var users = JsonConvert.DeserializeObject>(response); // Поиск пользователя по логину var user = users.FirstOrDefault(u => u.Login == username); return user; } catch (Exception ex) { // Обработка ошибок MessageBox.Show($"Ошибка при получении данных с сервера: {ex.Message}"); return null; } } } } }