aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Utilities/Tango.ShortcutGenerator.CLI/Program.cs
blob: 9d1a4666b35a71e97f63ba664b5e64db10415e1f (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
29
30
31
32
33
34
using IWshRuntimeLibrary;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tango.ShortcutGenerator.CLI
{
    class Program
    {
        static void Main(string[] args)
        {
            var options = new Options();

            if (CommandLine.Parser.Default.ParseArguments(args, options))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(options.TargetPath));

                WshShell wsh = new WshShell();
                IWshShortcut shortcut = wsh.CreateShortcut(Path.GetFullPath(options.TargetPath)) as IWshShortcut;
                shortcut.Arguments = "";
                shortcut.TargetPath = Path.GetFullPath(options.SourcePath);
                shortcut.Description = FileVersionInfo.GetVersionInfo(shortcut.TargetPath).FileDescription;
                shortcut.WorkingDirectory = Path.GetDirectoryName(shortcut.TargetPath);
                //shortcut.IconLocation = "specify icon location";
                shortcut.Save();
                Console.WriteLine("Shortcut create: " + shortcut.TargetPath);
            }
        }
    }
}
// </summary> public User CurrentUser { get { return _currentUser; } private set { _currentUser = value; RaisePropertyChangedAuto(); } } /// <summary> /// Performs a user login by the specified email and password. /// </summary> /// <param name="email">The email.</param> /// <param name="password">The password.</param> /// <param name="encrypt">Determines whether to encrypt the provided password before attempting to login</param> /// <returns></returns> public Task<User> Login(string email, string password, bool encrypt = true) { return Task.Factory.StartNew<User>(() => { String hash = encrypt ? User.GetPasswordHash(password) : password; LogManager.Log($"Logging in user {email}..."); using (var db = ObservablesContext.CreateDefault()) { CurrentUser = new UserBuilder(db).Set(x => x.Email.ToLower() == email && x.Password == hash) .WithOrganization() .WithRolesAndPermissions() .Build(); } if (CurrentUser != null) { LogManager.Log($"Current user is now: {CurrentUser.Contact.FullName}."); } else { LogManager.Log("Login failed!"); } CurrentUserChanged?.Invoke(this, CurrentUser); return CurrentUser; }); } /// <summary> /// Logs-out the current logged-in user. /// </summary> public void LogOut() { LogManager.Log("Logging out current user."); CurrentUser = null; CurrentUserChanged?.Invoke(this, CurrentUser); NavigationManager.NavigateTo(NavigationView.LoginView); } } }