-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathConsoleHelper.cs
More file actions
72 lines (62 loc) · 2.07 KB
/
ConsoleHelper.cs
File metadata and controls
72 lines (62 loc) · 2.07 KB
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using System;
using System.Security;
namespace SendPushoverNotification
{
public class ConsoleHelper
{
public SecureString GetPasswordFromConsoleInput()
{
ConsoleKeyInfo key;
var pass = new SecureString();
Console.WriteLine("Enter password:");
do
{
key = Console.ReadKey(true);
pass.AppendChar(GetKeyValue(key));
} while (key.Key != ConsoleKey.Enter);
Console.WriteLine();
return pass;
}
private static char GetKeyValue(ConsoleKeyInfo key)
{
var value = new char();
if (Char.IsLetterOrDigit(key.KeyChar) || Char.IsPunctuation(key.KeyChar))
{
value = (key.KeyChar);
Console.Write("*");
}
else if (key.Key != ConsoleKey.Enter)
{
Console.Beep();
Console.Error.WriteLine("That character is not allowed.");
}
return value;
}
public PushRequest GetRequest()
{
// TODO: use a 3rd party library to more robustly handle parameters
var args = Environment.GetCommandLineArgs();
var request = new PushRequest();
if (args.Length == 4 & args[0].Contains("SendPushoverNotification"))
{
args = new[] { args[1], args[2], args[3] };
}
if (args.Length == 3)
{
request.Message = args[0];
request.Url = args[1];
request.Title = args[2];
}
else
{
Console.WriteLine("Enter message:");
request.Message = Console.ReadLine();
Console.WriteLine(@"Enter url: (eg bufferapp:// or rivr://newpost or http://schellack.net)");
request.Url = Console.ReadLine();
Console.WriteLine("Enter title:");
request.Title = Console.ReadLine();
}
return request;
}
}
}