using System; using System.Collections.Generic; using System.Linq; using System.Security.Authentication; using System.Text; using System.Threading.Tasks; using Tango.Core; using Tango.DAL.Observables; using Tango.MachineStudio.Common.Authentication; namespace Tango.MachineStudio.UI.Authentication { public class DefaultAuthenticationProvider : ExtendedObject, IAuthenticationProvider { private User _currentUser; public User CurrentUser { get { return _currentUser; } set { _currentUser = value; CurrentUserChanged?.Invoke(this, _currentUser); RaisePropertyChangedAuto(); } } public event EventHandler CurrentUserChanged; public User Login(string email, string password) { User user = ObservablesEntitiesAdapter.Instance.Users.SingleOrDefault(x => x.Email.ToLower() == email.ToLower() && x.Password == password); if (user == null) { throw new AuthenticationException("Login failed for user " + email); } CurrentUser = user; return user; } public void Logout() { CurrentUser = null; } } }