From 4ce42d18eb790fb51fc7b982754a694f52e560e7 Mon Sep 17 00:00:00 2001 From: gardient Date: Wed, 2 Sep 2015 21:33:03 +0300 Subject: [PATCH] Added Random number range --- RedditRandomNumberGiveawayHelper/App.config | 2 +- .../MainForm.Designer.cs | 64 +++++++++----- RedditRandomNumberGiveawayHelper/MainForm.cs | 88 ++++++++++++------- .../Properties/Settings.Designer.cs | 2 +- .../Properties/Settings.settings | 2 +- 5 files changed, 100 insertions(+), 58 deletions(-) diff --git a/RedditRandomNumberGiveawayHelper/App.config b/RedditRandomNumberGiveawayHelper/App.config index b9ef0ea..5b2e534 100644 --- a/RedditRandomNumberGiveawayHelper/App.config +++ b/RedditRandomNumberGiveawayHelper/App.config @@ -11,7 +11,7 @@ - V0.2.0 + V0.3.0 diff --git a/RedditRandomNumberGiveawayHelper/MainForm.Designer.cs b/RedditRandomNumberGiveawayHelper/MainForm.Designer.cs index f2a255f..68333cc 100644 --- a/RedditRandomNumberGiveawayHelper/MainForm.Designer.cs +++ b/RedditRandomNumberGiveawayHelper/MainForm.Designer.cs @@ -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; } } diff --git a/RedditRandomNumberGiveawayHelper/MainForm.cs b/RedditRandomNumberGiveawayHelper/MainForm.cs index 8f3329e..f68820c 100644 --- a/RedditRandomNumberGiveawayHelper/MainForm.cs +++ b/RedditRandomNumberGiveawayHelper/MainForm.cs @@ -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) diff --git a/RedditRandomNumberGiveawayHelper/Properties/Settings.Designer.cs b/RedditRandomNumberGiveawayHelper/Properties/Settings.Designer.cs index a031dcf..02301d5 100644 --- a/RedditRandomNumberGiveawayHelper/Properties/Settings.Designer.cs +++ b/RedditRandomNumberGiveawayHelper/Properties/Settings.Designer.cs @@ -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"])); diff --git a/RedditRandomNumberGiveawayHelper/Properties/Settings.settings b/RedditRandomNumberGiveawayHelper/Properties/Settings.settings index 3688d9a..33727e5 100644 --- a/RedditRandomNumberGiveawayHelper/Properties/Settings.settings +++ b/RedditRandomNumberGiveawayHelper/Properties/Settings.settings @@ -3,7 +3,7 @@ - V0.2.0 + V0.3.0 \ No newline at end of file