Пример #1
0
        /// <summary>
        /// Reads a local CSV file and imports the data into database.
        /// </summary>
        public void Index(string type)
        {
            switch (type)
            {
            case "csv":
                var fileName     = Server.MapPath("~/App_Data/MINI_FS_logic_v48.csv");
                var fileEncoding = GetEncoding(fileName);

                using (var fileReader = System.IO.File.OpenText(fileName))
                    using (var csv = new CsvReader(fileReader))
                    {
                        csv.Configuration.Encoding = fileEncoding;
                        csv.Configuration.IgnoreReadingExceptions  = true;
                        csv.Configuration.ReadingExceptionCallback = ReadingExceptionCallback;
                        csv.Configuration.WillThrowOnMissingField  = false;
                        csv.Configuration.IsHeaderCaseSensitive    = false;
                        csv.Configuration.HasHeaderRecord          = true;
                        csv.Configuration.TrimFields             = true;
                        csv.Configuration.IgnoreHeaderWhiteSpace = true;
                        csv.Configuration.RegisterClassMap <NewCarConfig>();

                        var records = csv.GetRecords <Models.NewCar>().Distinct().ToList();
                        using (var context = new CombobulatorDataContext())
                        {
                            foreach (var record in records)
                            {
                                var finance = new EntitySet <Finance>
                                {
                                    new Finance
                                    {
                                        Info           = record.Info,
                                        Term           = record.Term ?? 0,
                                        FinalPayment   = record.FinalPayment ?? 0.0,
                                        FinancePrice   = record.FinancePrice ?? 0.0,
                                        APR            = record.APR,
                                        ROI            = record.ROI,
                                        Contribution   = record.Contribution ?? 0.0,
                                        CreditCharge   = record.CreditCharge ?? 0.0,
                                        Deposit        = record.Deposit ?? 0.0,
                                        Payment        = record.Payment ?? 0.0,
                                        PurchaseFee    = record.PurchaseFee ?? 0.0,
                                        TotalAmount    = record.TotalAmount ?? 0.0,
                                        DealerDiscount = record.DealerDiscount ?? 0.0,
                                        TotalDeposit   = record.TotalDeposit ?? 0.0
                                    }
                                };

                                context.Cars.InsertOnSubmit(new Car
                                {
                                    Brand       = Common.Config.Brand,
                                    Code        = record.Code,
                                    Color       = record.Color,
                                    Engine      = record.Engine,
                                    EngineName  = record.EngineName,
                                    Model       = record.Model,
                                    Url         = record.Url,
                                    Joke        = record.Joke,
                                    Name        = record.Name,
                                    Capacity    = record.Capacity,
                                    Luggage     = record.Luggage,
                                    Lifestyle   = record.Lifestyle,
                                    Awd         = record.Awd,
                                    High        = record.High,
                                    Convertible = record.Convertible,
                                    Price       = record.Price,
                                    Cost        = record.Cost,
                                    Speed       = record.Speed,
                                    Mph         = record.Mph,
                                    Economy     = record.Economy,
                                    Mpg         = record.Mph,
                                    Alt1        = record.Alt_1,
                                    Alt2        = record.Alt_2,
                                    Alt3        = record.Alt_3,
                                    Terms       = record.Terms,
                                    Finances    = finance
                                });
                                context.SubmitChanges();
                            }
                        }
                    }
                break;

            case "json":
                var file          = Server.MapPath("~/App_Data/data.json");
                var json          = System.IO.File.ReadAllText(file);
                var dataViewModel = JsonConvert.DeserializeObject <List <DataViewModel> >(json);

                using (var context = new CombobulatorDataContext())
                {
                    foreach (var record in dataViewModel)
                    {
                        var finance = new EntitySet <Finance>
                        {
                            new Finance
                            {
                                Info         = record.Finance.Info,
                                Term         = record.Finance.Term,
                                FinalPayment = record.Finance.Final_Payment,
                                FinancePrice = record.Finance.Price,
                                APR          = record.Finance.APR,
                                ROI          = record.Finance.ROI,
                                Contribution = record.Finance.Contribution,
                                CreditCharge = record.Finance.Credit_Charge,
                                Deposit      = record.Finance.Deposit,
                                Payment      = record.Finance.Payment,
                                PurchaseFee  = record.Finance.Purchase_Fee
                            }
                        };

                        context.Cars.InsertOnSubmit(new Car
                        {
                            Code        = record.Code,
                            Color       = record.Color,
                            Engine      = record.Engine,
                            Name        = record.Name,
                            Capacity    = record.Capacity,
                            Luggage     = record.Luggage,
                            Lifestyle   = record.Lifestyle,
                            Awd         = record.Awd,
                            High        = record.High,
                            Convertible = record.Convertible,
                            Price       = record.Price,
                            Cost        = record.Cost,
                            Speed       = record.Speed,
                            Mph         = record.Mph,
                            Economy     = record.Economy,
                            Mpg         = record.Mph,
                            Alt1        = record.Alt_1,
                            Alt2        = record.Alt_2,
                            Alt3        = record.Alt_3,
                            Terms       = record.Terms,
                            Finances    = finance
                        });
                        context.SubmitChanges();
                    }
                }

                break;
            }
        }