using System; using System.Windows; using System.ComponentModel; using System.Runtime.CompilerServices; using sharpknife.ViewModel; using System.Reflection; using System.Xml.Serialization; using System.IO; using System.Linq; using System.Threading; using System.Collections.Generic; using sharpknife.Utils; using sharpknife.Controls; namespace sharpknife.Commands { public class GeneratePTCPageCommand : Command { //Top 10 PTC sites in December 2012 //1 (Banner image) //Ads: ~10 per day, click rate $0.001-$0.02. //Payout: Minimum $8 for standard members, to PayPal or AlertPay. //Online and paying since 2007. //Chance to win $5 every day. //Referrals: $0.0002-$0.008 per click. Unlimited number of referrals. //Join ClixSense Now | Site Details //
//

1

//
//ClixSense // // //
//
private List sources; public static Dictionary AverageEarnings; public GeneratePTCPageCommand() : base(DateTime.Now) { Timeout = 30; using (databaseEntities context = new databaseEntities()) { sources = (from s in context.PTCSource where s.ReferralLink != null select s).ToList(); } AverageEarnings = new Dictionary(); foreach (PTCSource source in sources) { AverageEarnings[source.Name] = BalanceUtils.GetAverageEarning(source); } } public override void Execute() { base.Execute(); string path = "../../Web/ptcpage.htm"; string sourcesHtml = string.Empty; int i = 1; SortOnAverageBalance comparer = new SortOnAverageBalance(); sources.Sort(comparer); foreach (PTCSource source in sources) { sourcesHtml += string.Format(@"

{0}

{1}
", i, SourceInfo(source)); i++; } // string table = string.Format(@" // // // // // // {0} //
PTCPayout
", tableRows); string contents = string.Format(@" Best PTC Sites

Last update: {0}

{1}
", DateTime.Now, sourcesHtml); File.WriteAllText(path, contents); // Debug WebBrowserControl browser = WebBrowserControl.GetWebBrowserControl(); string webpagePath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); browser.Navigate(Path.Combine(webpagePath, path)); Complete(); } //DonkeyMails.com: No Minimum Payout public string SourceInfo(PTCSource source) { decimal averageEarning = BalanceUtils.GetAverageEarning(source); return string.Format(@" {2}
  • Average Earning: $ {6:0.0000} per day.
  • Payout: $ {3:0.00}.
", source.ReferralLink, source.Banner, source.Name, source.Payout, source.ReferralLink, source.Name, averageEarning); } } public class SortOnAverageBalance : IComparer { public int Compare(PTCSource a, PTCSource b) { if (GeneratePTCPageCommand.AverageEarnings[a.Name] < GeneratePTCPageCommand.AverageEarnings[b.Name]) return 1; else if (GeneratePTCPageCommand.AverageEarnings[a.Name] > GeneratePTCPageCommand.AverageEarnings[b.Name]) return -1; else return 0; } } }