Exemplo n.º 1
0
        private static void InsertData(IList<VendorDataAdapter> importData)
        {
            var cee = new CmsEntities(5000);
            cee.Configuration.LazyLoadingEnabled = false;
            FixUpDataAdapters(importData);

            var existingVendors = cee.Vendors.ToList();

            Int32 rowNumber = 2;
            //import all vendor data
            foreach (var vendor in importData)
            {
                if (existingVendors.Any(x => x.Name.ToLower() == vendor.Name.ToLower()))
                {
                    string message = string.Format("Vendor Name '{0}' already exist in Database. Skipping", vendor.Name);
                    mLog.Info(message);
                    //Console.WriteLine(message);
                    continue;
                }

                if (existingVendors.Any(x => x.Number == vendor.Number))
                {
                    string message = string.Format("Vendor Number '{0}' already exist in Database. Skipping", vendor.Number);
                    mLog.Info(message);
                    //Console.WriteLine(message);
                    continue;
                }

                Vendor newVendor = new Vendor
                {
                    Name = vendor.Name,
                    SiteId = mSiteId,
                    Number = vendor.Number,
                    IsActive = true
                };

                cee.Vendors.Add(newVendor);
                mSavedResults.Add(newVendor);
                if ((rowNumber - 2 % 100) == 0)
                {
                    cee.SaveChanges();
                    cee.Dispose();
                    cee = new CmsEntities(5000);
                    cee.Configuration.AutoDetectChangesEnabled = false;
                }

                rowNumber++;
            }

            if (mSavedResults.Count == 0)
            {
                mLog.Warning("", "No Vendors were imported");
                Console.WriteLine("No Vendors were imported");
            }
            else
            {
                //SAVE
                cee.SaveChanges();

                foreach (var vendor in mSavedResults)
                {
                    mLog.Info(string.Format("Processed Vendor  Number = '{0}' Name = '{1}'",vendor.Number, vendor.Name));
                }
                Console.WriteLine("{0} Vendors were imported", mSavedResults.Count);
            }
        }