示例#1
0
        public static void SaveBaseVehicleAppData(string connectionString)
        {
            using (var context = new AutoCareDataContext(connectionString))
            {
                var appData = context.CKDownloadedVariant.OrderBy(I => I.ProductID).ThenBy(I => I.VariantID).ThenBy(I => I.SubModel).ToList();
                foreach (var a in appData)
                {
                    context.CKDownloadedVariant.Attach(a);

                    var baseVehicleId =
                        CallService(
                            $"http://api.coverking.com/getData.asmx/GetSubmodel?Productid={a.ProductID}&Year={a.From_Year}&Make={a.Make_Descr}&Model={a.Model_Descr}",
                            "//ns:Submodel_table/ns:Basevehicle");
                    a.BaseVehicleID = baseVehicleId;

                    if (baseVehicleId != null)
                    {
                        var recID =
                            CallService(
                                $"http://api.coverking.com/getData.asmx/Get_options_gen?Basevehicle={baseVehicleId}&Productid={a.ProductID}&Submodel=&Customer_IP=223.223.154.114&DealerID=ACG92",
                                "//ns:ArrayOfOptions/ns:Options/ns:recid");
                        a.RecID = recID;
                        context.Entry(a).Property(I => I.RecID).IsModified = true;
                    }
                    context.Entry(a).Property(I => I.BaseVehicleID).IsModified = true;
                }
                context.SaveChanges();
            }
        }
示例#2
0
 public static void UpdateProduct(ConfigurationData config, int qbId, string sku)
 {
     using (var context = new AutoCareDataContext(config.ConnectionString))
     {
         context.Database.ExecuteSqlCommand(
             $"UPDATE `3dc_products` SET qb_product_id = {qbId} WHERE SKU = '{sku}'");
         context.SaveChanges();
     }
 }
示例#3
0
 public static void UpdateCustomer(ConfigurationData config, int qbId, long customerId)
 {
     using (var context = new AutoCareDataContext(config.ConnectionString))
     {
         context.Database.ExecuteSqlCommand(
             $"UPDATE customers SET qb_customer_id = {qbId} WHERE customer_id = {customerId}");
         context.SaveChanges();
     }
 }
示例#4
0
 public static void SaveJFWOrders(string connectionString, List <jfw_orders> orders, string filename)
 {
     using (var context = new AutoCareDataContext(connectionString))
     {
         foreach (var order in orders)
         {
             Console.WriteLine(string.Format("  Storing JFW PO to JFW table {0} ", order.PO));
             order.Filename = filename;
             context.JFWOrders.Add(order);
         }
         context.SaveChanges();
     }
 }
示例#5
0
        private static void AddProducts(string connectionString, List <Product> products)
        {
            List <products> productDB = GetProducts(products);

            using (var context = new AutoCareDataContext(connectionString))
            {
                foreach (var prod in productDB)
                {
                    context.Products.AddOrUpdate(prod);
                }
                context.SaveChanges();
            }
        }
示例#6
0
        public static void Save(string connectionString, IEnumerable <IEnumerable <AmazonVariant> > amazonVariants)
        {
            using (var context = new AutoCareDataContext(connectionString))
            {
                context.Configuration.AutoDetectChangesEnabled = false;
                context.Configuration.ValidateOnSaveEnabled    = false;
                context.Database.ExecuteSqlCommand("TRUNCATE ck_amazon_variant;");

                foreach (var item in amazonVariants)
                {
                    var groupItem = item.GroupBy(i => i.ASIN).Select(j => j.First()).ToList();
                    context.CKAmazonVariant.AddRange(groupItem);
                    context.SaveChanges();
                }
                context.Configuration.AutoDetectChangesEnabled = true;
                context.Configuration.ValidateOnSaveEnabled    = true;

                var data = context.Database.SqlQuery <string>(
                    "SELECT ASIN FROM car.ck_temp_amazon_variant GROUP BY ASIN HAVING COUNT(1) >1").ToList();
                if (data.Count > 0)
                {
                    foreach (var d in data)
                    {
                        var dupObjs = context.CKAmazonVariant.Where(I => I.ASIN == d).ToList();
                        foreach (var dup in dupObjs)
                        {
                            var item = context.CKDownloadedItem.FirstOrDefault(I => I.ItemID == dup.NavItem);
                            if (item == null)
                            {
                                context.CKAmazonVariant.Remove(dup);
                            }
                        }
                        //context.CKAmazonVariant.Remove()
                    }
                }
                context.SaveChanges();
            }
        }
示例#7
0
 public static void UpdateOrderStatus(string connectionString, List <order_tracking> trackingList)
 {
     using (var context = new AutoCareDataContext(connectionString))
     {
         foreach (var tracking in trackingList)
         {
             context.Entry(tracking).State = EntityState.Modified;
             context.OrderTracking.Attach(entity: tracking);
             tracking.processed = 1;
             context.Entry(tracking).Property(I => I.processed).IsModified = true;
         }
         context.SaveChanges();
     }
 }
示例#8
0
 public static void Save(string connectionString, IEnumerable <IEnumerable <DownloadVariant> > downloadedVariant)
 {
     using (var context = new AutoCareDataContext(connectionString))
     {
         context.Configuration.AutoDetectChangesEnabled = false;
         context.Configuration.ValidateOnSaveEnabled    = false;
         context.Database.ExecuteSqlCommand("TRUNCATE ck_app_data;");
         foreach (var items in downloadedVariant)
         {
             context.CKDownloadedVariant.AddRange(items);
         }
         context.SaveChanges();
         context.Configuration.AutoDetectChangesEnabled = true;
         context.Configuration.ValidateOnSaveEnabled    = true;
     }
 }
示例#9
0
        public static void AddCustomers(string connectionString, List <Customer> customers, List <CustomerGroup> customerGroups)
        {
            var customerAndGroup = GetCustomers(customers, customerGroups);
            var customerDB       = customerAndGroup.Item1;
            var customerGroupDB  = customerAndGroup.Item2;

            using (var context = new AutoCareDataContext(connectionString))
            {
                foreach (var cust in customerDB)
                {
                    context.Customers.AddOrUpdate(cust);
                }
                foreach (var custGrp in customerGroupDB)
                {
                    context.CustomerGroups.AddOrUpdate(custGrp);
                }
                context.SaveChanges();
            }
        }
示例#10
0
        public static void SaveCKVariant(string connectionString, List <TempCKVariant> variants)
        {
            var group_variant = variants.GroupBy(i => i.SKU).Select(j => j.First()).ToList();

            using (var context = new AutoCareDataContext(connectionString))
            {
                context.Configuration.AutoDetectChangesEnabled = false;
                context.Configuration.ValidateOnSaveEnabled    = false;

                foreach (var ck_var in group_variant)
                {
                    var this_set = context.TempCKVariants.FirstOrDefault(i => i.SKU == ck_var.SKU);
                    if (this_set == null)
                    {
                        context.TempCKVariants.AddOrUpdate(ck_var);
                    }
                }
                context.SaveChanges();
                context.Configuration.AutoDetectChangesEnabled = true;
                context.Configuration.ValidateOnSaveEnabled    = true;
            }
        }
示例#11
0
        public static void SaveOrderTracking(string connectionString, List <order_tracking> trackings)
        {
            DateTime      thisDateMinus2 = DateTime.Now.AddDays(-20);
            StringBuilder sb             = new StringBuilder("");

            using (var context = new AutoCareDataContext(connectionString))
            {
                context.Configuration.AutoDetectChangesEnabled = false;
                context.Configuration.ValidateOnSaveEnabled    = false;
                var query = trackings.GroupBy(x => x.tracking_no)
                            .Select(y => y.FirstOrDefault());
                foreach (var tracking in query)
                {
                    var existingEntry =
                        context.OrderTracking.FirstOrDefault(I => I.po_no == tracking.po_no &&
                                                             I.tracking_no == tracking.tracking_no && I.SKU == tracking.SKU);
                    // Sam: changed on Sep 20 - only change New tracking entries.
                    // Sam: Changed on Sep 28 - only update if tracking data is within last 2 days

                    /*if (existingEntry != null)
                     * {
                     * tracking.processed = existingEntry.processed;
                     * }
                     * context.OrderTracking.AddOrUpdate(tracking);
                     */
                    if (existingEntry == null && tracking.ship_date >= thisDateMinus2)
                    {
                        // context.OrderTracking.AddOrUpdate(tracking);
                        sb.AppendLine(string.Format("INSERT INTO `order_tracking` (`po_no`,`order_no`,`order_date`,`SKU`,`ship_address`,`ship_date`,`tracking_no`,`ship_agent`,`ship_service`,`processed`) values (" +
                                                    "'{0}','{1}','{2} 00:00:00','{3}','{4}','{5} 00:00:00','{6}','{7}','{8}',0);", tracking.po_no, tracking.order_no, tracking.order_date.ToString("yyyy-MM-dd"), tracking.SKU,
                                                    tracking.ship_address, tracking.ship_date.ToString("yyyy-MM-dd"), tracking.tracking_no, tracking.ship_agent, tracking.ship_service));
                    }
                }
                context.SaveChanges();
                context.Configuration.AutoDetectChangesEnabled = true;
                context.Configuration.ValidateOnSaveEnabled    = true;
            }
        }
示例#12
0
 public static void SaveProductOnJobber(string connectionString)
 {
     using (var context = new AutoCareDataContext(connectionString))
     {
         var products = context.CKProductMaster.ToList();
         foreach (var p in products)
         {
             var jobbers = context.CKDownloadedItem.Where(I => I.ItemID.StartsWith(p.product_id) && I.Product_Family_ID == p.product_family_id).ToList();
             if (jobbers.Count > 0)
             {
                 foreach (var jobber in jobbers)
                 {
                     context.CKDownloadedItem.Attach(jobber);
                     jobber.ProductID  = p.product_id;
                     jobber.MaterialID = jobber.ItemID.Replace(p.product_id, "");
                     context.Entry(jobber).Property(I => I.ProductID).IsModified  = true;
                     context.Entry(jobber).Property(I => I.MaterialID).IsModified = true;
                 }
             }
         }
         context.SaveChanges();
     }
 }