Пример #1
0
        public void AddToMarketplaceList(MarketplaceList list)
        {
            MarketplaceList newItemsList = new MarketplaceList();

            foreach (MarketplaceQueryItem queryItem in results)
            {
                newItemsList.Add(queryItem.ConvertToItem());
            }
            list.AddRange(newItemsList);
        }
Пример #2
0
        private async static Task <MarketplaceList> ParsePage(MarketplaceQuery query)
        {
            MarketplaceList items        = new MarketplaceList();
            string          responseBody = await Client.GetStringAsync(query.Uri);

            MarketplaceQueryResponse response = JsonSerializer.Deserialize <MarketplaceQueryResponse>(responseBody);

            Console.WriteLine("Returned {0} items", response.results.Count);
            response.AddToMarketplaceList(items);
            return(items);
        }
Пример #3
0
        //TODO: Delegate convertation to item method.
        //TODO: Catch "Too many requests", add timeout and try again.
        public static void ObjToExcel(MarketplaceList items, bool open = false)
        {
            Console.WriteLine("Creating xlsx file. This can take a while.");
            XLWorkbook   workbook  = new XLWorkbook();
            IXLWorksheet worksheet = workbook.Worksheets.Add("Coins");

            worksheet.Cell(1, 1).Value = "Link";
            worksheet.Cell(1, 2).Value = "Name";
            worksheet.Cell(1, 3).Value = "Code";
            worksheet.Cell(1, 4).Value = "Color";
            worksheet.Cell(1, 5).Value = "Amount";
            worksheet.Cell(1, 6).Value = "Price";

            worksheet.Cells(true).Style.Font.SetBold();

            for (int i = 0; i < items.Count; i++)
            {
                MarketplaceItem item = items[i];

                worksheet.Cell(i + 2, 1).Hyperlink = new XLHyperlink(@item.Link);
                worksheet.Cell(i + 2, 1).Value     = @item.Link;
                worksheet.Cell(i + 2, 2).Value     = item.Name;
                worksheet.Cell(i + 2, 3).Value     = item.Code;
                worksheet.Cell(i + 2, 4).Value     = item.ColorStr;
                worksheet.Cell(i + 2, 4).Style.Fill.BackgroundColor = XLColor.FromArgb(item.ColorHex);
                worksheet.Cell(i + 2, 5).Value = item.Amount;
                worksheet.Cell(i + 2, 6).Value = item.Price;
                worksheet.Cell(i + 2, 6).Style.NumberFormat.Format = "0.00" + item.PriceCurrency;
            }

            worksheet.Columns(2, 6).AdjustToContents(10.0, 40.0);

            DateTime current = DateTime.Now;

            string saveLocation = SaveFolder + current.ToString("yyyy.MM.dd HH.mm.ss") + ".xlsx";

            Console.WriteLine("Saving your file to {0}", saveLocation);
            workbook.SaveAs(@saveLocation);

            if (open)
            {
                string           path  = Path.Combine(Environment.CurrentDirectory, saveLocation);
                ProcessStartInfo pInfo = new ProcessStartInfo(saveLocation)
                {
                    UseShellExecute = true
                };
                Process.Start(pInfo);
            }
        }
Пример #4
0
        public async static Task <MarketplaceList> ParseTolist(MarketplaceQuery query)
        {
            MarketplaceList items = new MarketplaceList();

            query.AddParam("start", 0);
            query.AddParam("count", 100);

            string responseBody = await Client.GetStringAsync(query.Uri);

            MarketplaceQueryResponse response = JsonSerializer.Deserialize <MarketplaceQueryResponse>(responseBody);

            Console.Write("Query 1 sent. ");
            Console.WriteLine("Returned {0} items", response.results.Count);
            response.AddToMarketplaceList(items);



            int count = response.total_count;

            if (count > 100)
            {
                try
                {
                    for (int pos = 100; pos <= count; pos += 100)
                    {
                        Console.WriteLine("({0}/{1})", pos, count);
                        Thread.Sleep(Delay);

                        query.AddParam("start", pos);

                        Console.Write("Query {0} sent. ", pos / 100 + 1);
                        items.AddRange(await ParsePage(query));
                    }
                }
                catch (HttpRequestException e)
                {
                    Console.WriteLine("\nException Caught!");
                    Console.WriteLine("Message :{0}", e.Message);
                    Console.WriteLine("Saving {0} items", items.Count);
                }
            }

            return(items);
        }
Пример #5
0
        public async static Task ParseToExcel(MarketplaceQuery query, bool open = false)
        {
            MarketplaceList list = await ParseTolist(query);

            ObjToExcel(list, open);
        }