void Export() { using (var entities = new Model.ManheimEntities(dbPath)) { CsvFileDescription outputFileDescription = new CsvFileDescription { SeparatorChar = ',', FirstLineHasColumnNames = true, }; CsvContext cc = new CsvContext(); var path = System.IO.Path.GetDirectoryName(excelPath) + "\\" + System.IO.Path.GetFileNameWithoutExtension(excelPath) + DateTime.Today.ToString("_yyyyMMdd") + System.IO.Path.GetExtension(excelPath); cc.Write(entities.vPreSales, path, outputFileDescription); System.Diagnostics.Process.Start(path); } }
void FillSearch() { Browser.GoTo(this.GetHomeUrl()); using (var entities = new Model.ManheimEntities(dbPath)) { entities.Configuration.LazyLoadingEnabled = true; while (Browser.Frames.Count < 2) { Thread.Sleep(100); } var makeList = Browser.Frames[1].TryFind <WC.SelectList>("makeList"); if (!makeList.Exists) { return; } var modelList = Browser.Frames[1].TryFind <WC.SelectList>("modelList"); if (!modelList.Exists) { return; } var models = modelList.Options.Select(o => o.Text); bool saveToDb = false; foreach (var make in makeList.Options.Skip(1)) { Debug.WriteLine(make.Text); var dbMake = entities.Makes.SingleOrDefault(m => m.Name == make.Text); if (dbMake == null) { dbMake = new Model.Make() { Name = make.Text }; entities.Makes.Add(dbMake); saveToDb = true; } modelList.SetAttributeValue("selectedIndex", "-1"); makeList.Select(make.Text); while (modelList.SelectedItem == null) { Thread.Sleep(100); } foreach (var model in modelList.Options.Skip(1)) { Debug.WriteLine("\t" + model.Text); if (!dbMake.Models.Where(m => m.Name == model.Text).Any()) { dbMake.Models.Add(new Model.Model() { Name = model.Text }); saveToDb = true; } } if (saveToDb) { entities.SaveChanges(); saveToDb = false; } } } Log = new Exception("Done with FillSearch!"); }
private static void AddPreSale(Model.ManheimEntities manheimModel, Model.Auction auctionEntity, DateTime saleDate, WC.TableCellCollection tds, string vin, WC.IE vehicleInfoIE) { var rightContent = vehicleInfoIE.Div("rightContent"); #region Vehicle #region Grade var grade = 0.0; var lastColumn = rightContent.Div(WC.Find.ByClass("lastColumn")); if (lastColumn.Exists) { var gradeLink = lastColumn.Link(WC.Find.ByText(new Regex("Grade"))); if (gradeLink.Exists) { double.TryParse(Regex.Replace(gradeLink.Text, @"[^\d.]", ""), out grade); } } #endregion var mmrElement = vehicleInfoIE.Link("mmrHover"); int mmrPrice = 0; if (mmrElement.Exists) { int.TryParse(mmrElement.Text, NumberStyles.AllowThousands | NumberStyles.AllowCurrencySymbol, NumberFormatInfo.CurrentInfo, out mmrPrice); } var div = vehicleInfoIE.Div(new Regex("vdpTab_detail-1")); var table = div.Tables.First(); if (table != null) { var vehicleEntity = manheimModel.Vehicles.SingleOrDefault(v => v.VIN == vin); if (vehicleEntity == null) { vehicleEntity = SetVehicle(table); vehicleEntity.Grade = grade; manheimModel.Vehicles.Add(vehicleEntity); } else { UpdateVehicle(vehicleEntity, table); } vehicleEntity.MMR = mmrPrice; manheimModel.SaveChanges(); #endregion #region Seller var sellerElement = rightContent.Div(WC.Find.ByClass("firstColumn")).ElementWithTag("li", WC.Find.First()); var sellerName = sellerElement.Exists ? sellerElement.Text : ""; var sellerEntity = manheimModel.Sellers.SingleOrDefault(s => s.Name == sellerName); if (sellerEntity == null) { sellerEntity = new Model.Seller() { Name = sellerName }; manheimModel.Sellers.Add(sellerEntity); manheimModel.SaveChanges(); } #endregion #region PreSale var preSale = new Model.PreSale() { Ln = int.Parse(tds[0].Text.Split('-')[0]), Run = int.Parse(tds[0].Text.Split('-')[1]), SaleDate = saleDate }; lock (auctionEntity) { preSale.Vehicle = vehicleEntity; preSale.Auction = auctionEntity; preSale.Seller = sellerEntity; manheimModel.PreSales.Add(preSale); } #endregion manheimModel.SaveChanges(); } }