123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- using Avalonia.Controls;
- using FinancialManagement.Models;
- using ReactiveUI;
- using FinancialManagement.Views;
- using FinancialManagement.ViewModels;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Threading.Tasks;
- namespace FinancialManagement.ViewModels
- {
- public class RegistrationPageViewModel : ReactiveObject
- {
- ShmelevTeamContext teamContext;
- User newUser;
- string repeatInputPassword = "";
- string message = "";
- char? passwordChar = '*';
- public RegistrationPageViewModel()
- {
- }
- public RegistrationPageViewModel(ShmelevTeamContext teamContext)
- {
- this.teamContext = teamContext;
- NewUser = new User();
- }
- public string RepeatInputPassword { get => repeatInputPassword; set => repeatInputPassword = value; }
- public string Message { get => message; set => this.RaiseAndSetIfChanged(ref message, value); }
- public User NewUser { get => newUser; set => newUser = value; }
- public char? PasswordChar { get => passwordChar; set => this.RaiseAndSetIfChanged(ref passwordChar, value); }
- public User AddUserInDataBase()
- {
- if (string.IsNullOrEmpty(NewUser.Login) || string.IsNullOrEmpty(NewUser.Username) || string.IsNullOrEmpty(NewUser.Password) || string.IsNullOrEmpty(RepeatInputPassword) || string.IsNullOrEmpty(NewUser.Phone))
- {
- Message = "Заполните все поля";
- return null;
- }
- else if (!Regex.IsMatch(NewUser.Phone, @"^(?:\+7|8)\d{10}$"))
- {
- Message = "Введите корректный телефон";
- return null;
- }
- else if (NewUser.Password != RepeatInputPassword)
- {
- Message = "Пароли не совпадают.\nВведите корректные данные";
- return null;
- }
- else if (!Regex.IsMatch(NewUser.Password, @"\S{6,}"))
- {
- Message = "Ваш пароль не должен быть \nменьше 6 символов";
- return null;
- }
- else if (!Regex.IsMatch(NewUser.Password, @"\w*[0-9]\w*"))
- {
- Message = "У вашего пароля нет цифры";
- return null;
- }
- else if (teamContext.Users.FirstOrDefault(x => x.Login == NewUser.Login) != null)
- {
- Message = "Такой пользователь существует\nВведите другой логин";
- return null;
- }
- else
- {
- teamContext.Add(NewUser);
- teamContext.SaveChanges();
- return NewUser;
- }
- }
- public UserControl LoadPageAuthorization()
- {
- return new AuthorizationPage();
- }
- }
- }
|