Example #1
0
 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);
     }
 }
Example #2
0
 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!");
 }
Example #3
0
        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();
            }
        }