1 Commits

Author SHA1 Message Date
gardient
4ce42d18eb Added Random number range 2015-09-02 21:33:03 +03:00
5 changed files with 100 additions and 58 deletions

View File

@@ -11,7 +11,7 @@
<applicationSettings>
<RedditRandomNumberGiveawayHelper.Properties.Settings>
<setting name="Version" serializeAs="String">
<value>V0.2.0</value>
<value>V0.3.0</value>
</setting>
</RedditRandomNumberGiveawayHelper.Properties.Settings>
</applicationSettings>

View File

@@ -37,30 +37,32 @@
this.label3 = new System.Windows.Forms.Label();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.checkForUpdatesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.randomMin = new System.Windows.Forms.NumericUpDown();
((System.ComponentModel.ISupportInitialize)(this.randomMax)).BeginInit();
this.menuStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.randomMin)).BeginInit();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(11, 41);
this.label1.Location = new System.Drawing.Point(33, 41);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(100, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Giveaway Post URI";
this.label1.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(117, 38);
this.textBox1.Location = new System.Drawing.Point(139, 38);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(463, 20);
this.textBox1.Size = new System.Drawing.Size(441, 20);
this.textBox1.TabIndex = 1;
//
// randomMax
//
this.randomMax.Location = new System.Drawing.Point(117, 65);
this.randomMax.Location = new System.Drawing.Point(220, 64);
this.randomMax.Maximum = new decimal(new int[] {
100000,
0,
@@ -72,7 +74,7 @@
0,
0});
this.randomMax.Name = "randomMax";
this.randomMax.Size = new System.Drawing.Size(115, 20);
this.randomMax.Size = new System.Drawing.Size(75, 20);
this.randomMax.TabIndex = 2;
this.randomMax.Value = new decimal(new int[] {
5000,
@@ -85,15 +87,16 @@
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(11, 67);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(57, 13);
this.label2.Size = new System.Drawing.Size(122, 13);
this.label2.TabIndex = 3;
this.label2.Text = "Max Value";
this.label2.Text = "Random Number Range";
this.label2.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// button1
//
this.button1.Location = new System.Drawing.Point(238, 64);
this.button1.Location = new System.Drawing.Point(301, 64);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(342, 23);
this.button1.Size = new System.Drawing.Size(279, 23);
this.button1.TabIndex = 4;
this.button1.Text = "Get Me A Random Winner";
this.button1.UseVisualStyleBackColor = true;
@@ -105,7 +108,8 @@
this.textBox2.Multiline = true;
this.textBox2.Name = "textBox2";
this.textBox2.ReadOnly = true;
this.textBox2.Size = new System.Drawing.Size(568, 140);
this.textBox2.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.textBox2.Size = new System.Drawing.Size(568, 171);
this.textBox2.TabIndex = 5;
//
// label3
@@ -129,24 +133,39 @@
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.checkForUpdatesToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "File";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(115, 20);
this.fileToolStripMenuItem.Text = "Check for updates";
this.fileToolStripMenuItem.Click += new System.EventHandler(this.checkForUpdatesToolStripMenuItem_Click);
//
// checkForUpdatesToolStripMenuItem
// randomMin
//
this.checkForUpdatesToolStripMenuItem.Name = "checkForUpdatesToolStripMenuItem";
this.checkForUpdatesToolStripMenuItem.Size = new System.Drawing.Size(170, 22);
this.checkForUpdatesToolStripMenuItem.Text = "Check for updates";
this.checkForUpdatesToolStripMenuItem.Click += new System.EventHandler(this.checkForUpdatesToolStripMenuItem_Click);
this.randomMin.Location = new System.Drawing.Point(139, 64);
this.randomMin.Maximum = new decimal(new int[] {
100000,
0,
0,
0});
this.randomMin.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.randomMin.Name = "randomMin";
this.randomMin.Size = new System.Drawing.Size(75, 20);
this.randomMin.TabIndex = 8;
this.randomMin.Value = new decimal(new int[] {
1,
0,
0,
0});
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(593, 273);
this.ClientSize = new System.Drawing.Size(593, 304);
this.Controls.Add(this.randomMin);
this.Controls.Add(this.label3);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.button1);
@@ -162,6 +181,7 @@
((System.ComponentModel.ISupportInitialize)(this.randomMax)).EndInit();
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.randomMin)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@@ -178,7 +198,7 @@
private System.Windows.Forms.Label label3;
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem checkForUpdatesToolStripMenuItem;
private System.Windows.Forms.NumericUpDown randomMin;
}
}

View File

@@ -19,17 +19,40 @@ namespace RedditRandomNumberGiveawayHelper
public partial class MainForm : Form
{
//make sure to format with max number
private static string RANDOM_ORG_URI = "https://www.random.org/integers/?num=1&min=1&max={0}&col=1&base=10&format=plain&rnd=new";
private static string RANDOM_ORG_URI = "https://www.random.org/integers/?num=1&min={0}&max={1}&col=1&base=10&format=plain&rnd=new";
public MainForm()
{
InitializeComponent();
}
class DisplayTextbox
{
private TextBox txtBx;
public DisplayTextbox(TextBox x)
{
txtBx = x;
}
public void Write(params object[] strings)
{
txtBx.Text += string.Join(Environment.NewLine, strings) + Environment.NewLine;
}
public void Clear()
{
txtBx.Clear();
}
}
private void button1_Click(object sender, EventArgs e)
{
//textBox2.Text += string.Format("{0}", Environment.NewLine);
DisplayTextbox displayTextBox = new DisplayTextbox(textBox2);
displayTextBox.Clear();
var reddit = new Reddit();
Post giveawayPost = null;
int? randomNumber = null;
@@ -37,31 +60,26 @@ namespace RedditRandomNumberGiveawayHelper
try
{
textBox2.Text += string.Format("Getting giveaway post...{0}", Environment.NewLine);
displayTextBox.Write("Getting giveaway post...");
giveawayPost = reddit.GetPost(new Uri(textBox1.Text));
}
catch (Exception ex)
{
textBox2.Text += string.Format("{1}{0}{2}{0}",
Environment.NewLine,
"Failed getting giveaway post",
displayTextBox.Write("Failed getting giveaway post",
"You sure that's the right URI (alsomake sure to get the full uri from the address bar)");
return;
}
textBox2.Text += string.Format("{1}{2}{0}{3}{4}{0}",
Environment.NewLine,
"Post title: ",
displayTextBox.Write("Post title: ",
giveawayPost.Title,
"Comment count: ",
giveawayPost.CommentCount);
try
{
textBox2.Text += string.Format("{1}{0}",
Environment.NewLine,
"Getting random number from random.org...");
WebRequest randomDotOrgRequest = WebRequest.Create(string.Format(RANDOM_ORG_URI, decimal.Round(randomMax.Value, 0)));
displayTextBox.Write("Getting random number from random.org...");
WebRequest randomDotOrgRequest = WebRequest.Create(string.Format(RANDOM_ORG_URI, decimal.Round(randomMin.Value, 0), decimal.Round(randomMax.Value, 0)));
using (WebResponse resp = randomDotOrgRequest.GetResponse())
{
using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
@@ -72,16 +90,11 @@ namespace RedditRandomNumberGiveawayHelper
}
catch (Exception ex)
{
textBox2.Text += string.Format("{1}{0}{2}{0}",
Environment.NewLine,
"Failed getting giveaway post",
ex);
displayTextBox.Write("Failed getting giveaway post", ex);
return;
}
textBox2.Text += string.Format("{1}{2}{0}{3}{4}{0}",
Environment.NewLine,
"Random Number: ",
displayTextBox.Write("Random Number: ",
randomNumber,
"Getting winning comment...",
"This might take a while...");
@@ -96,29 +109,38 @@ namespace RedditRandomNumberGiveawayHelper
foreach (var x in nums)
{
if ((x.Value == randomNumber + i && randomNumber + i < decimal.Round(randomMax.Value, 0))
|| (x.Value == randomNumber - i && randomNumber - i > 0))
|| (x.Value == randomNumber - i && randomNumber - i > decimal.Round(randomMin.Value, 0)))
{
winningNumKey = x.Key;
winningNumVal = x.Value;
diff = i;
break;
}
//stop if we're out of range
if (randomNumber + i > decimal.Round(randomMax.Value, 0) && randomNumber - i < decimal.Round(randomMin.Value, 0))
break;
}
}
Comment winningComment = giveawayPost.Comments.FirstOrDefault(w => w.Shortlink == winningNumKey);
if (!string.IsNullOrEmpty(winningNumKey) && winningNumVal.HasValue)
{
Comment winningComment = giveawayPost.Comments.FirstOrDefault(w => w.Shortlink == winningNumKey);
textBox2.Text += string.Format("{1}{2}{0}{3}{4}{0}{5}{6}{0}{7}{8}{0}",
Environment.NewLine,
"Winning comment (link): ",
winningNumKey,
"Winning comment (body): ",
winningComment.Body,
"Winning comment (commenter): ",
winningComment.Author,
"Diff: ",
diff
);
displayTextBox.Write("Winning comment (link): ",
winningNumKey,
"Winning comment (body): ",
winningComment.Body,
"Winning comment (commenter): ",
winningComment.Author,
"Diff: ",
diff
);
}
else
{
displayTextBox.Write("What the heck?? not one post in the range? you sure you have that range right?");
}
}
private async void checkForUpdatesToolStripMenuItem_Click(object sender, EventArgs e)

View File

@@ -25,7 +25,7 @@ namespace RedditRandomNumberGiveawayHelper.Properties {
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("V0.2.0")]
[global::System.Configuration.DefaultSettingValueAttribute("V0.3.0")]
public string Version {
get {
return ((string)(this["Version"]));

View File

@@ -3,7 +3,7 @@
<Profiles />
<Settings>
<Setting Name="Version" Type="System.String" Scope="Application">
<Value Profile="(Default)">V0.2.0</Value>
<Value Profile="(Default)">V0.3.0</Value>
</Setting>
</Settings>
</SettingsFile>