Example #1
0
        private void ProcessData(string s)
        {
            List <List <string> > table = CSVReader.GetTableFromCSV(s);

            if (table == null)
            {
                return;
            }


            IOrderedEnumerable <List <string> > sell = from List <string> row in table
                                                       where row[7] == "False" && row[13] == "0"
                                                       orderby
                                                       double.Parse(row[0], CultureInfo.InvariantCulture) ascending
                                                       select row;

            string sss = sell.Any() ? sell.ElementAt(0)[0] : "-1.0";

            _sell = double.Parse(sss, CultureInfo.InvariantCulture);

            IOrderedEnumerable <List <string> > buy = from List <string> row in table
                                                      where row[7] == "True" && row[13] == "0"
                                                      orderby
                                                      double.Parse(row[0], CultureInfo.InvariantCulture) descending
                                                      select row;

            string bbb = buy.Any() ? buy.ElementAt(0)[0] : "-1.0";

            _buy = double.Parse(bbb, CultureInfo.InvariantCulture);

            IEnumerable <List <string> > aRow = from List <string> row in table
                                                where row[13] == "0"
                                                select row;

            foreach (var list in aRow)
            {
                int i;
                _typeId = int.TryParse(list[2], out i) ? i : -1;
                break;
            }

            var setItemName = new BackgroundWorker();

            setItemName.DoWork += (sender, args) =>
            {
                var prod = new TypeName(new[] { _typeId.ToString(CultureInfo.InvariantCulture) });
                prod.Query();

                Dispatcher.Invoke(new Action(delegate
                {
                    if (prod.types.Count > 0)
                    {
                        TypeName.GameType type =
                            prod.types[0];
                        lblItemName.Content = type.typeName;
                        lblItemName.ToolTip = type.typeName;
                    }
                    else
                    {
                        lblItemName.Content = "Unknown";
                        lblItemName.ToolTip =
                            "Product not found";
                    }
                }));
            };
            setItemName.RunWorkerAsync();

            var getVolumes = new BackgroundWorker();

            getVolumes.DoWork += (sender, args) =>
            {
                var volumes = new Dictionary <string, long>();
                if (_typeId > 0)
                {
                    volumes = VolumeFetcher.GetVolumes(table);
                }


                Dispatcher.Invoke(new Action(delegate
                {
                    if (volumes.Count > 0)
                    {
                        long i, j;
                        if (
                            volumes.TryGetValue("sellvol",
                                                out i) &&
                            volumes.TryGetValue("sellmov",
                                                out j))
                        {
                            lblSellvols.Content =
                                string.Format(
                                    "{0:n0}/{1:n0}", i, j);
                        }

                        if (
                            volumes.TryGetValue("buyvol",
                                                out i) &&
                            volumes.TryGetValue("buymov",
                                                out j))
                        {
                            lblBuyvols.Content =
                                string.Format(
                                    "{0:n0}/{1:n0}", i, j);
                        }
                    }
                }));
            };
            getVolumes.RunWorkerAsync();

            Dispatcher.Invoke(new Action(delegate
            {
                lblSell.Content = _sell >= 0
                                                                       ? String.Format("{0:n} ISK", _sell)
                                                                       : "No orders in range";
                lblBuy.Content = _buy >= 0
                                                                      ? String.Format("{0:n} ISK", _buy)
                                                                      : "No orders in range";
            }));

            var cdt = new CalculateDataThread(_sell, _buy, this);
            var calc = new Thread(cdt.Run);

            calc.Start();
        }
        private void ProcessData(string s)
        {
            List <List <string> > table = CSVReader.GetTableFromCSV(s);

            if (table == null)
            {
                return;
            }

            if (profile.sellRange == (int)Profile.ranges.HUB)
            {
                IOrderedEnumerable <List <string> > sell = from List <string> row in table
                                                           where row[7] == "False" && row[13] == "0" && hubIds.Contains(double.Parse(row[10]))
                                                           orderby
                                                           double.Parse(row[0], CultureInfo.InvariantCulture) ascending
                                                           select row;

                string sss = sell.Any() ? sell.ElementAt(0)[0] : "-1.0";
                _sell = double.Parse(sss, CultureInfo.InvariantCulture);
            }
            else if (profile.sellRange == (int)Profile.ranges.SYSTEM)
            {
                IOrderedEnumerable <List <string> > sell = from List <string> row in table
                                                           where row[7] == "False" && row[13] == "0"
                                                           orderby
                                                           double.Parse(row[0], CultureInfo.InvariantCulture) ascending
                                                           select row;

                string sss = sell.Any() ? sell.ElementAt(0)[0] : "-1.0";
                _sell = double.Parse(sss, CultureInfo.InvariantCulture);
            }
            else if (profile.sellRange == (int)Profile.ranges.ONEJUMP)
            {
                IOrderedEnumerable <List <string> > sell = from List <string> row in table
                                                           where row[7] == "False" && Int32.Parse(row[13]) < 2
                                                           orderby
                                                           double.Parse(row[0], CultureInfo.InvariantCulture) ascending
                                                           select row;

                string sss = sell.Any() ? sell.ElementAt(0)[0] : "-1.0";
                _sell = double.Parse(sss, CultureInfo.InvariantCulture);
            }
            else if (profile.sellRange == (int)Profile.ranges.TWOJUMP)
            {
                IOrderedEnumerable <List <string> > sell = from List <string> row in table
                                                           where row[7] == "False" && Int32.Parse(row[13]) < 3
                                                           orderby
                                                           double.Parse(row[0], CultureInfo.InvariantCulture) ascending
                                                           select row;

                string sss = sell.Any() ? sell.ElementAt(0)[0] : "-1.0";
                _sell = double.Parse(sss, CultureInfo.InvariantCulture);
            }
            else
            {
                IOrderedEnumerable <List <string> > sell = from List <string> row in table
                                                           where row[7] == "False"
                                                           orderby
                                                           double.Parse(row[0], CultureInfo.InvariantCulture) ascending
                                                           select row;

                string sss = sell.Any() ? sell.ElementAt(0)[0] : "-1.0";
                _sell = double.Parse(sss, CultureInfo.InvariantCulture);
            }

            if (profile.buyRange == (int)Profile.ranges.HUB)
            {
                IOrderedEnumerable <List <string> > buy = from List <string> row in table
                                                          where row[7] == "True" && row[13] == "0" && hubIds.Contains(double.Parse(row[10]))
                                                          orderby
                                                          double.Parse(row[0], CultureInfo.InvariantCulture) descending
                                                          select row;

                string bbb = buy.Any() ? buy.ElementAt(0)[0] : "-1.0";
                _buy = double.Parse(bbb, CultureInfo.InvariantCulture);
            }
            else if (profile.buyRange == (int)Profile.ranges.SYSTEM)
            {
                IOrderedEnumerable <List <string> > buy = from List <string> row in table
                                                          where row[7] == "True" && row[13] == "0"
                                                          orderby
                                                          double.Parse(row[0], CultureInfo.InvariantCulture) descending
                                                          select row;

                string bbb = buy.Any() ? buy.ElementAt(0)[0] : "-1.0";
                _buy = double.Parse(bbb, CultureInfo.InvariantCulture);
            }
            else if (profile.buyRange == (int)Profile.ranges.ONEJUMP)
            {
                IOrderedEnumerable <List <string> > buy = from List <string> row in table
                                                          where row[7] == "True" && Int32.Parse(row[13]) < 2
                                                          orderby
                                                          double.Parse(row[0], CultureInfo.InvariantCulture) descending
                                                          select row;

                string bbb = buy.Any() ? buy.ElementAt(0)[0] : "-1.0";
                _buy = double.Parse(bbb, CultureInfo.InvariantCulture);
            }
            else if (profile.buyRange == (int)Profile.ranges.TWOJUMP)
            {
                IOrderedEnumerable <List <string> > buy = from List <string> row in table
                                                          where row[7] == "True" && Int32.Parse(row[13]) < 3
                                                          orderby
                                                          double.Parse(row[0], CultureInfo.InvariantCulture) descending
                                                          select row;

                string bbb = buy.Any() ? buy.ElementAt(0)[0] : "-1.0";
                _buy = double.Parse(bbb, CultureInfo.InvariantCulture);
            }
            else
            {
                IOrderedEnumerable <List <string> > buy = from List <string> row in table
                                                          where row[7] == "True"
                                                          orderby
                                                          double.Parse(row[0], CultureInfo.InvariantCulture) descending
                                                          select row;

                string bbb = buy.Any() ? buy.ElementAt(0)[0] : "-1.0";
                _buy = double.Parse(bbb, CultureInfo.InvariantCulture);
            }


            IEnumerable <List <string> > aRow = from List <string> row in table
                                                select row;

            foreach (var list in aRow)
            {
                int i;
                _typeId = int.TryParse(list[2], out i) ? i : -1;
                break;
            }

            var setItemName = new BackgroundWorker();

            setItemName.DoWork += (sender, args) =>
            {
                var prod = new TypeName(new[] { _typeId.ToString(CultureInfo.InvariantCulture) });
                prod.Query();

                Dispatcher.Invoke(new Action(delegate
                {
                    if (prod.types.Count > 0)
                    {
                        TypeName.GameType type = prod.types[0];
                        lblItemName.Content    = type.typeName;
                        lblItemName.ToolTip    = type.typeName;
                    }
                    else
                    {
                        lblItemName.Content = "Unknown";
                        lblItemName.ToolTip = "Product not found";
                    }
                }));
            };

            setItemName.RunWorkerAsync();

            Dispatcher.Invoke(new Action(delegate
            {
                lblSell.Content = _sell >= 0
                                    ? String.Format("{0:n} ISK", _sell)
                                    : "No orders in range";
                lblBuy.Content = _buy >= 0
                                    ? String.Format("{0:n} ISK", _buy)
                                    : "No orders in range";
            }));

            var cdt = new CalculateDataThread(_sell, _buy, this);
            var calc = new Thread(cdt.Run);

            calc.Start();
        }