Exemplo n.º 1
0
 private static void AccessGoodData(GoodData data, int field, int iterations)
 {
     for (int x = 0; x < iterations; x++)
     {
         if (field == 0)
         {
             data.field1++;
         }
         else
         {
             data.field2++;
         }
     }
 }
Exemplo n.º 2
0
        private static void Main(string[] args)
        {
            int iterations = 100000000;

            var badData   = new FalseSharingData();
            var stopwatch = Stopwatch.StartNew();
            var t1        = Task.Factory.StartNew(() => AccessFalseSharingData(badData, 0, iterations));
            var t2        = Task.Factory.StartNew(() => AccessFalseSharingData(badData, 1, iterations));

            Task.WaitAll(t1, t2);
            Console.WriteLine("BadData  Access Time: {0} ms", stopwatch.ElapsedMilliseconds);

            var goodData = new GoodData();

            stopwatch.Restart();
            t1 = Task.Factory.StartNew(() => AccessGoodData(goodData, 0, iterations));
            t2 = Task.Factory.StartNew(() => AccessGoodData(goodData, 1, iterations));
            Task.WaitAll(t1, t2);
            Console.WriteLine("GoodData Access Time: {0} ms", stopwatch.ElapsedMilliseconds);

            Console.ReadLine();
        }
Exemplo n.º 3
0
 public ReceiveInitData()
 {
     goodInfo     = new GoodData();
     jxbAngleInfo = new JXBAngleData();
     simulateInfo = new SimulateData();
 }
Exemplo n.º 4
0
        public static async Task GetFromWebAsync(
            ApplicationContext context,
            Good good,
            string accessKey     = "76f28ee177457757896164a36c9e9a2c",
            string proxyLocation = "US",
            string renderJs      = "1")
        {
            Random locationRnd = new Random();

            proxyLocation = Enum.GetName(typeof(locations), locationRnd.Next(1, 27));

            var uriBuilder = new UriBuilder("https://api.scrapestack.com/scrape");
            var query      = HttpUtility.ParseQueryString(uriBuilder.Query);

            query["access_key"]     = accessKey;
            query["proxy_location"] = proxyLocation;
            query["render_js"]      = renderJs;
            query["url"]            = good.ProductDetailUrl.Replace("ru.", "").Replace("eu.", "");
            //query["url"] = good.ProductDetailUrl.Contains("wwww.") ?
            //    good.ProductDetailUrl.Replace("ru.", "").Replace("eu.", "").Replace("wwww.", "www2.") :
            //    good.ProductDetailUrl.Replace("ru.", "").Replace("eu.", "").Replace("https://", "https://www2.");
            //query["url"] = good.ProductDetailUrl.Replace("ru.", "").Replace("eu.", "");
            //query["url"] = good.ProductDetailUrl.Replace("eu.", "ru.");
            uriBuilder.Query = query.ToString();
            string url = uriBuilder.ToString();

            string resp = await client.GetStringAsync(url);

            if (
                !String.IsNullOrEmpty(resp) &&
                !resp.Contains("<meta name=\"ROBOTS\" content=\"NOINDEX, NOFOLLOW\">") &&
                !resp.Contains("{\"success\":false,\"error")
                )
            {
                good.IsWebDownloaded = true;
                GoodData goodData = await context.GoodDatas.FirstOrDefaultAsync(g => g.Good.Id == good.Id);

                if (goodData != null)
                {
                    goodData.Response     = resp;
                    goodData.CreationDate = DateTime.Now;
                    goodData.Url          = url;
                    goodData.Location     = proxyLocation;
                }
                else
                {
                    context.GoodDatas.Add(new GoodData {
                        CreationDate = DateTime.Now, Good = good, Response = resp, Url = url, Location = proxyLocation
                    });
                }
            }
            else
            {
                context.GoodDataErrors.Add(new GoodDataError {
                    CreationDate = DateTime.Now, Good = good, Response = resp, Url = url
                });
            }
            await context.SaveChangesAsync();

            return;

            var htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(resp);

            //*[@id="pdpPricingAvailability"]/div[2]/div[2]
            //*[@id="pdpPricingAvailability"]/div[2]/div[2]/div[2]
            //*[@id="pdpPricingAvailability"]/div[2]/div[2]

            var ddd = htmlDoc.DocumentNode.SelectNodes("//*[@id='pdpPricingAvailability']/div[2]/div[2]/div[@class='div-table-row']");

            int countPriceDiv = htmlDoc.DocumentNode.SelectNodes("//*[@id='pdpPricingAvailability']/div[2]/div[2]/div[@class='div-table-row']").Count();

            for (int i = 1; i <= countPriceDiv; i++)
            {
                var priceDiv = htmlDoc.DocumentNode.SelectSingleNode("//*[@id='pdpPricingAvailability']/div[2]/div[2]/div[ i + 1]");
            }

            HttpResponseMessage response = await client.GetAsync(url);

            if (response.IsSuccessStatusCode)
            {
                var result = await response.Content.ReadAsStringAsync();
            }
            int dd = 5;
        }
Exemplo n.º 5
0
        public static void PopulateGoodBrowser(Mouser.Domain.ApplicationContext context, Good good)
        {
            Random rnd     = new Random();
            int    proxyId = rnd.Next(2, 5);
            Proxy  proxy   = context.Proxies.Find(proxyId);

            if (proxy == null)
            {
                return;
            }

            WebProxy wp = new WebProxy(proxy.IPAddress, true);

            if (proxy.UserName != "")
            {
                ICredentials credentials = new NetworkCredential(proxy.UserName, proxy.Password);
                wp.Credentials = credentials;
            }

            var    web1 = new HtmlWeb();
            string url  = good.ProductDetailUrl.Replace("ru.", "").Replace("eu.", "");

            //NetworkCredential networkCredential = new NetworkCredential(proxy.UserName, proxy.Password);
            //var doc2 = web1.Load(url, "GET", wp, networkCredential);

            var doc1 = web1.LoadFromBrowser(HttpUtility.UrlDecode(url), o =>
            {
                var webBrowser = (WebBrowser)o;
                // WAIT until the dynamic text is set
                return(!string.IsNullOrEmpty(webBrowser.Document.GetElementById("mlnkMailTo").InnerText));
            });

            if (
                !String.IsNullOrEmpty(doc1.Text) &&
                !doc1.Text.Contains("<meta name=\"ROBOTS\" content=\"NOINDEX, NOFOLLOW\">") &&
                !doc1.Text.Contains("{\"success\":false,\"error")
                )
            {
                good.IsWebDownloaded = true;
                GoodData goodData = context.GoodDatas.FirstOrDefault(g => g.Good.Id == good.Id);
                if (goodData != null)
                {
                    goodData.Response     = doc1.Text;
                    goodData.CreationDate = DateTime.Now;
                    goodData.Url          = url;
                }
                else
                {
                    context.GoodDatas.Add(new GoodData {
                        CreationDate = DateTime.Now, Good = good, Response = doc1.Text, Url = url
                    });
                }
            }
            else
            {
                context.GoodDataErrors.Add(new GoodDataError {
                    CreationDate = DateTime.Now, Good = good, Response = doc1.Text, Url = url
                });
            }
            context.SaveChangesAsync();
        }