aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/Dialogs/AddProjectView.xaml.cs
blob: 83856f4e7ab3794480c0515e27ce359ed70d3a33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using System.Collections.Generic;
using System.Linq;
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 Tango.Scripting.IDE.Dialogs
{
    /// <summary>
    /// Interaction logic for AddProjectControl.xaml
    /// </summary>
    public partial class AddProjectView : UserControl
    {
        public AddProjectView()
        {
            InitializeComponent();
        }
    }
}
n>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.BL.Entities; using Tango.MachineStudio.Common.Authentication; using Tango.BL; using Tango.BL.Enumerations; using System.Data.Entity; using Tango.Transport.Web; using Tango.Settings; using Tango.MachineStudio.Common; using Tango.MachineStudio.Common.StudioApplication; using Tango.Core.Helpers; using Tango.MachineStudio.Common.Web; using Tango.BL.Builders; namespace Tango.MachineStudio.UI.Authentication { /// <summary> /// Represents the default Machine Studio <see cref="IAuthenticationProvider">Authentication provider</see> /// </summary> /// <seealso cref="Tango.Core.ExtendedObject" /> /// <seealso cref="Tango.MachineStudio.Common.Authentication.IAuthenticationProvider" /> public class DefaultAuthenticationProvider : ExtendedObject, IAuthenticationProvider { private MachineStudioWebClient _client; private User _currentUser; /// <summary> /// Gets the current logged-in user. /// </summary> public User CurrentUser { get { return _currentUser; } set { _currentUser = value; CurrentUserChanged?.Invoke(this, _currentUser); RaisePropertyChangedAuto(); } } /// <summary> /// Occurs when the current logged-in user has changed. /// </summary> public event EventHandler<User> CurrentUserChanged; /// <summary> /// Initializes a new instance of the <see cref="DefaultAuthenticationProvider"/> class. /// </summary> /// <param name="machineStudioWebClient">The machine studio web client.</param> public DefaultAuthenticationProvider(MachineStudioWebClient machineStudioWebClient) { _client = machineStudioWebClient; } /// <summary> /// Performs a user login by the specified email and password. /// </summary> /// <param name="email">The email.</param> /// <param name="password">The password.</param> /// <returns></returns> /// <exception cref="AuthenticationException">Login failed for user " + email</exception> public AuthenticationLoginResult Login(string email, string password) { var settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>(); _client.Environment = settings.DeploymentSlot; var response = _client.Login(new LoginRequest() { Email = email, Password = password, Version = AssemblyHelper.GetCurrentAssemblyVersion().ToString(), }).Result; if (settings.Environment == MachineStudioSettings.WorkingEnvironment.Remote) { ObservablesContext.OverrideSettingsDataSource(response.DataSource); } try { ObservablesStaticCollections.Instance.Initialize(); } catch (System.Data.Entity.Core.MetadataException) { ObservablesContext.ClearModelStore(); ObservablesStaticCollections.Instance.Initialize(); } using (ObservablesContext db = ObservablesContext.CreateDefault()) { User user = new UserBuilder(db).Set(x => x.Email.ToLower() == email.ToLower()).WithRolesAndPermissions().WithOrganization().Build(); if (user == null) { throw new AuthenticationException("Invalid credentials for " + email); } if (!response.VersionChangeRequired) { CurrentUser = user; } return new AuthenticationLoginResult() { User = user, Response = response }; } } /// <summary> /// Logs-out the current logged-in user. /// </summary> public void Logout() { CurrentUser = null; } } }