|
@@ -29,35 +29,60 @@ namespace esoft.Pages
|
|
|
public partial class LoginPage : Page
|
|
|
{
|
|
|
ActualContext actualContext = new ActualContext();
|
|
|
+ private const string apiUrl = "http://localhost:55429/api/Users/";
|
|
|
+
|
|
|
public LoginPage()
|
|
|
{
|
|
|
InitializeComponent();
|
|
|
}
|
|
|
|
|
|
- private void BtnLogin_Click(object sender, RoutedEventArgs e)
|
|
|
+ private async void BtnLogin_Click(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
|
|
|
// Получение логина и пароля из текстовых полей
|
|
|
string username = TBoxLogin.Text;
|
|
|
string password = PBoxPassword.Password;
|
|
|
|
|
|
- using (var context = new esoftEntities())
|
|
|
+ // Отправка запроса к API
|
|
|
+ var user = await GetUserFromApi(username);
|
|
|
+
|
|
|
+ if (user != null && user.Password == password && !user.IsDeleted)
|
|
|
{
|
|
|
- // Поиск пользователя по введенному логину
|
|
|
- var user = context.User.FirstOrDefault(u => u.Login == username);
|
|
|
+ // Успешная авторизация
|
|
|
+ GetCurrent.CurrentUser = user;
|
|
|
|
|
|
- if (user != null && user.Password == password)
|
|
|
+ // Перенаправление пользователя на страницу с задачами
|
|
|
+ NavigationService.Navigate(new Pages.TaskLists());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // Ошибка авторизации
|
|
|
+ MessageBox.Show("Ошибка авторизации. Пожалуйста, проверьте логин и пароль.");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private async Task<User> GetUserFromApi(string username)
|
|
|
+ {
|
|
|
+ using (HttpClient client = new HttpClient())
|
|
|
+ {
|
|
|
+ try
|
|
|
{
|
|
|
- // Устанавливаем текущего пользователя
|
|
|
- GetCurrent.CurrentUser = user;
|
|
|
+ // Отправка GET-запроса к API
|
|
|
+ var response = await client.GetStringAsync(apiUrl);
|
|
|
+
|
|
|
+ // Десериализация JSON-ответа в объект User
|
|
|
+ var users = JsonConvert.DeserializeObject<List<User>>(response);
|
|
|
+
|
|
|
+ // Поиск пользователя по логину
|
|
|
+ var user = users.FirstOrDefault(u => u.Login == username);
|
|
|
|
|
|
- // Перенаправление пользователя на страницу с задачами
|
|
|
- NavigationService.Navigate(new Pages.TaskLists());
|
|
|
+ return user;
|
|
|
}
|
|
|
- else
|
|
|
+ catch (Exception ex)
|
|
|
{
|
|
|
- // Ошибка авторизации
|
|
|
- MessageBox.Show("Ошибка авторизации. Пожалуйста, проверьте логин и пароль.");
|
|
|
+ // Обработка ошибок
|
|
|
+ MessageBox.Show($"Ошибка при получении данных с сервера: {ex.Message}");
|
|
|
+ return null;
|
|
|
}
|
|
|
}
|
|
|
}
|