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