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); }
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); }
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); }