Exemple #1
0
        private static List <Listings> ParseGoogleListings(List <Listings> listings, string csvData, string symbol, string companyName)
        {
            string path = HostingEnvironment.MapPath("~/Error Log File/Error.txt");

            char[]          delimiter  = { ',', '\t', '\r', '\n', '"', '/', '{', '}' };
            string[]        rows       = csvData.Replace("\r", "").Split('\n');
            Listings        list       = null;
            SailiRepository repository = new SailiRepository();
            bool            pass       = false;
            int             count      = 0;

            foreach (string row in rows)
            {
                if (!pass)
                {
                    pass = true;
                    continue;
                }

                if (string.IsNullOrEmpty(row))
                {
                    continue;
                }

                string[] cols = row.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);

                decimal convert = 0;

                bool result = Decimal.TryParse(cols[1].ToString(), out convert);

                if (!result)
                {
                    SaveErrorInRequest(path, cols);
                    continue;
                }
                result = Decimal.TryParse(cols[4].ToString(), out convert);
                if (!result)
                {
                    SaveErrorInRequest(path, cols);
                    continue;
                }
                count++;
                if (count == 2)
                {
                    break;
                }
                list             = new Listings();
                list.Symbol      = symbol;
                list.CompanyName = companyName;
                list.Open        = Convert.ToDecimal(cols[1].ToString());
                list.Close       = Convert.ToDecimal(cols[4].ToString());
                list.Change      = list.Close - list.Open;
                listings.Add(list);
            }
            return(listings);
        }
Exemple #2
0
        private static Listings CreateUnknownListing(Listings model, string symbol, string[] cols)
        {
            string csvData = null;

            char[] delimiter = { ',', '\t', '\r', '\n', '"', '/', '{', '}', '>', '<' };
            //Note the <> brakes was used to specifically split known scripting tags.
            //The theory here is that by splinting it and removing it, how can a scipt
            // exist without the accompaning scripting tag?

            try
            {
                using (WebClient web = new WebClient())
                {
                    csvData = web.DownloadString("http://finance.yahoo.com/d/quotes.csv?s=" + symbol + "&f=n");
                }

                string[] temp = csvData.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
                model        = new Listings();
                model.Symbol = symbol;
                if (temp.Count() > 1)
                {
                    model.CompanyName = temp[0] + " " + temp[1];
                }
                else
                {
                    model.CompanyName = temp[0];
                }

                if (Regex.IsMatch(model.CompanyName, @"^[A-Za-z ]+$"))
                {
                    DefaultConnection.Companies.Add(new Company()
                    {
                        Symbol      = model.Symbol,
                        CompanyName = model.CompanyName,
                        SectorID    = 0,
                        IsDeleted   = false
                    });
                    DefaultConnection.SaveChanges();
                }
                else
                {
                    model.CompanyName = "false";
                }
            }
            catch
            {
            }

            return(model);
        }
Exemple #3
0
        private static List <Listings> ParseScoreListings(List <Listings> listings, string csvData, string symbol)
        {
            string path = HostingEnvironment.MapPath("~/Error Log File/Error.txt");

            char[]          delimiter  = { ',', '\t', '\r', '\n', '"', '/', '{', '}' };
            string[]        rows       = csvData.Replace("\r", "").Split('\n');
            SailiRepository repository = new SailiRepository();
            bool            check      = false;
            Listings        listing    = null;


            foreach (string row in rows)
            {
                if (string.IsNullOrEmpty(row))
                {
                    continue;
                }

                string[] cols = row.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);

                decimal convert = 0;

                bool result = Decimal.TryParse(cols[1].ToString(), out convert);

                if (!result)
                {
                    result = Decimal.TryParse(cols[2].ToString(), out convert);
                    if (result)
                    {
                        cols[1] = cols[2];
                    }
                    else
                    {
                        SaveErrorInRequest(path, cols);
                        continue;
                    }
                }
                result = Decimal.TryParse(cols[2].ToString(), out convert);
                if (!result)
                {
                    SaveErrorInRequest(path, cols);
                    continue;
                }
                if (!check)
                {
                    listing        = new Listings();
                    listing.Symbol = cols[0];
                    listing.Open   = Convert.ToDecimal(cols[1]);
                    listing.Close  = Convert.ToDecimal(cols[2]);
                    listing.Change = listing.Close - listing.Open;
                }
                else
                {
                    listing        = new Listings();
                    listing.Symbol = cols[0];
                    listing.Open   = Convert.ToDecimal(cols[1]);
                    listing.Close  = Convert.ToDecimal(cols[2]);
                    listing.Change = listing.Close - listing.Open;
                }
            }
            return(listings);
        }