public AuthenticationController(PasswordActionContext context, Settings settings) { Context = context; Settings = settings ?? throw new ArgumentNullException(nameof(settings)); Context.Users.Load(); ChangeUser(Context.Users.FirstOrDefault()?.Id ?? -1); }
public bool VerifyUser(PasswordAction passwordAction, out double m, out double sigma, out double duration) { using (PasswordActionContext tempContext = new PasswordActionContext()) { m = 0; sigma = 0; duration = TimeSpanConverter.TotalSeconds(passwordAction.TimeDuration); //bool result = true; tempContext.PasswordActions .Include(p => p.SymbolActions) .Where(p => p.UserId == passwordAction.UserId) .Where(p => p.ValidPassword == passwordAction.ValidPassword) .Load(); if (tempContext.PasswordActions.Local.Count == 0) { //result = false; return(false); } DurationsStatistics durationStatistics = new DurationsStatistics(tempContext.PasswordActions.Local); m = durationStatistics.MathExpectation; sigma = durationStatistics.Sigma; if (Math.Abs(m - duration) > sigma) { return(false); } } return(true); }
public SettingsForm(MainForm mainForm, Settings settings, PasswordActionContext context) { InitializeComponent(); this.mainForm = mainForm; this.settings = settings; Context = context ?? throw new ArgumentNullException(nameof(context)); Init(); }
protected override void ReloadData() { GetLastPasswordActionId(); context = new PasswordActionContext(); LoadData(); UpdateForm(); //UpdateLablesGroupBox(); }
protected override void ReloadData() { GetLastPasswordActionId(); context = new PasswordActionContext(); LoadData(); Statistics.ChangeCollection(context.SymbolActions.Local); UpdateChart(); UpdateLablesGroupBox(); }
protected override void Init() { eveninigTime = new TimeSpan(18, 0, 0); morningTime = new TimeSpan(6, 0, 0); daytimePasswords = new PasswordActionContext(); eveningtimePasswords = new PasswordActionContext(); LoadData(); DaytimeStatistics = new DurationsStatistics(daytimePasswords.PasswordActions.Local); EveningtimeStatistics = new DurationsStatistics(eveningtimePasswords.PasswordActions.Local); base.Init(); }
protected override void ReloadData() { daytimePasswords = new PasswordActionContext(); eveningtimePasswords = new PasswordActionContext(); LoadData(); DaytimeStatistics.ChangeCollection(daytimePasswords.PasswordActions.Local); EveningtimeStatistics.ChangeCollection(eveningtimePasswords.PasswordActions.Local); UpdateChart(); UpdateLablesGroupBox(); }
protected override void Init() { mainForm.PasswordsUpdate -= UpdateForm; mainForm.PasswordsUpdate += ReloadData; context = new PasswordActionContext(); GetLastPasswordActionId(); LoadData(); Statistics = new PressDurationStatistics(context.SymbolActions.Local); base.Init(); }
private void ChangeUser() { DisposeContext(); Context = new PasswordActionContext(); Context.PasswordActions.Include(p => p.SymbolActions) .Where(p => p.UserId == Settings.UserId) .Where(p => p.ValidPassword == Settings.Password) .Load(); CurrentUser = Context.Users.Find(Settings.UserId); idLabel.Text = CurrentUser.Id.ToString(); loginLabel.Text = CurrentUser.Login.ToString(); passwordActionsGridView.DataSource = Context.PasswordActions.Local; }
protected override void Init() { mainForm.PasswordsUpdate -= UpdateForm; mainForm.PasswordsUpdate += ReloadData; context = new PasswordActionContext(); GetLastPasswordActionId(); LoadData(); layoutPanel.Font = new Font(layoutPanel.Font.FontFamily, 12); VectorTextBox = new TextBox(); VectorTextBox.Multiline = true; VectorTextBox.Width = layoutPanel.Width - 5; VectorTextBox.Height = layoutPanel.Height - 10; VectorTextBox.ReadOnly = true; //VectorTextBox.Dock= DockStyle.Fill; layoutPanel.Controls.Add(VectorTextBox); base.Init(); }
public User IdentifyUser(PasswordAction passwordAction, out double m, out double duration, out double different) { m = 0; different = 0; duration = TimeSpanConverter.TotalSeconds(passwordAction.TimeDuration); List <User> users = new List <User>(); using (PasswordActionContext tempContext = new PasswordActionContext()) { //tempContext.PasswordActions.Where(p => p.ValidPassword == passwordAction.ValidPassword); //tempContext.Users.Any( .Load(); users = tempContext.Users.Include(u => u.PasswordActions).ToList(); } List <User> newUsers = new List <User>(); foreach (var user in users) { if (user.PasswordActions.Any(p => p.ValidPassword == passwordAction.ValidPassword)) { newUsers.Add(user); } } User identifyUser = null; if (newUsers.Count == 0) { return(identifyUser); } foreach (var tempUser in newUsers) { using (PasswordActionContext newTempContext = new PasswordActionContext()) { newTempContext.PasswordActions .Include(p => p.SymbolActions) .Where(p => p.UserId == tempUser.Id) .Load(); DurationsStatistics statistics = new DurationsStatistics(newTempContext.PasswordActions.Local); if (identifyUser == null || Math.Abs(statistics.MathExpectation - duration) < different) { m = statistics.MathExpectation; different = Math.Abs(m - duration); identifyUser = tempUser; } } } return(identifyUser); // tempContext.Users // .Include(u => u.PasswordActions) // .Include(u => u.PasswordActions.Select(p => p.SymbolActions)) // .Load(); //} //return true; //PasswordAction mostRelevantPasswordAction = passwordActions.FirstOrDefault(p => p.ValidPassword == passwordAction.ValidPassword); //User user = Context.Users.Find(mostRelevantPasswordAction.UserId); //return user; }