コード例 #1
0
        private static IList <T> ReadFromCsv <T>(string path) where T : new()
        {
            var csvImport = new CsvImport <T>();
            var items     = csvImport.Read(path).ToList();

            return(items);
        }
コード例 #2
0
ファイル: CNCLibDefaultData.cs プロジェクト: yazici/CNCLib
        private User[] UserSeed(CNCLibContext context)
        {
            var userImport = new CsvImport <User>();
            var users      = userImport.Read(DefaultDataDir + @"\DefaultData\User.csv").ToArray();

            return(users);
        }
コード例 #3
0
        public void InvalidMultipleOrder()
        {
            string input     = "TestFiles\\invalid_multiple_order.csv";
            string output    = "invalid_multiple_order.json";
            char   separator = ',';
            var    cx        = new CsvImport(input, output, separator);

            Assert.ThrowsException <NotImplementedException>(() => cx.Parse());
        }
コード例 #4
0
        /// <summary>
        /// Send exam list to client.
        /// </summary>
        /// <param name="client"></param>
        /// <param name="filename"></param>
        private static void SendExamListToClient(TcpClient client, object data)
        {
            _log.AppendToLog("Sending exam list to client: " +
                             ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString(), LogType.Info);
            _csv = new CsvImport(_exampath);
            var list = _csv.GetExamNames();

            _server.SendPacket(client, new AvailibleExams(list));
        }
コード例 #5
0
        public void InvalidMissingField()
        {
            string input     = "TestFiles\\invalid_missingfield.csv";
            string output    = "invalid_missingfield.json";
            char   separator = ',';
            var    cx        = new CsvImport(input, output, separator);

            Assert.ThrowsException <Exception>(() => cx.Parse());
        }
コード例 #6
0
ファイル: CNCLibDefaultData.cs プロジェクト: yazici/CNCLib
        private void ConfigurationSeed(CNCLibContext context, bool isTest)
        {
            if (isTest)
            {
                var configurationImport = new CsvImport <Configuration>();
                var configurations      = configurationImport.Read(DefaultDataDir + @"\DefaultData\Configuration.csv").ToArray();

                context.Set <Configuration>().AddRange(configurations);
            }
        }
コード例 #7
0
        /// <summary>
        /// Send exercises to client, depending on selected exam.
        /// </summary>
        /// <param name="client"></param>
        /// <param name="filename"></param>
        private static void SendExercisesToClient(TcpClient client, object data)
        {
            _server.SetExamFileName(client, (string)data);
            _log.AppendToLog("Sending exercises to client: " +
                             ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString(), LogType.Info);
            _csv = new CsvImport(_exampath);
            var ex = _csv.GetExercises((string)data);

            _server.SendPacket(client, ex);
        }
コード例 #8
0
 public XmlDocument ImportCatalogInCsvFromZip(string username, string password)
 {
     if (!IsUserValid(username, password))
     {
         return(new XmlDocument());
     }
     try
     {
         var result = new XmlDocument();
         if (!Directory.Exists(Server.MapPath("~/1c_temp")))
         {
             Directory.CreateDirectory(Server.MapPath("~/1c_temp"));
         }
         result.AppendChild(result.CreateElement("ImportLog"));
         var zipfile = Server.MapPath("~/1c_temp/import.zip");
         var impDir  = Server.MapPath("~/1c_temp/import/");
         if (!Directory.Exists(impDir))
         {
             Directory.CreateDirectory(impDir);
         }
         ExtractZip(zipfile, impDir);
         foreach (string file in Directory.GetFiles(impDir))
         {
             if (file.EndsWith(".csv") || file.EndsWith(".xml"))
             {
                 continue;
             }
             File.Delete(file.Replace("1c_temp\\import", "upload_images"));
             File.Move(file, file.Replace("1c_temp\\import", "upload_images"));
         }
         foreach (string file in Directory.GetFiles(impDir))
         {
             if (!file.EndsWith(".csv"))
             {
                 continue;
             }
             CsvImport.Factory(file, false).Process();
             if (result.DocumentElement == null)
             {
                 continue;
             }
             if (_sdsLog.DocumentElement == null)
             {
                 continue;
             }
             result.DocumentElement.InnerXml = result.DocumentElement.InnerXml + _sdsLog.DocumentElement.InnerXml;
             _sdsLog.DocumentElement.RemoveAll();
         }
         return(result);
     }
     catch (Exception ex)
     {
         return(MsgErr(ex.Message));
     }
 }
コード例 #9
0
ファイル: UnitTest1.cs プロジェクト: pkshetlie/CsvImport
 public void CountProduct()
 {
     string str = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "CsvFolder\\");
     DirectoryInfo import = Directory.CreateDirectory(str);
     try
     {
         CsvImport csv = new CsvImport(import);
         csv.Import<ProductMap, ProductModel, MyContext>("products-*.csv");
     }
     catch { }
     MyContext db = new MyContext();
     Assert.AreEqual(2, db.Products.Count());
 }
コード例 #10
0
ファイル: UnitTest1.cs プロジェクト: pkshetlie/CsvImport
 public void BaguetteRightQuantity()
 {
     string str = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "CsvFolder\\");
     DirectoryInfo import = Directory.CreateDirectory(str);
     try
     {
         CsvImport csv = new CsvImport(import);
         csv.Import<ProductMap, ProductModel, MyContext>("products-*.csv");
     }
     catch { }
     MyContext db = new MyContext();
     Assert.AreEqual(20, db.Products.Where(x => x.Reference == "BAGUETTE").First().Quantity);
 }
コード例 #11
0
ファイル: Calls.cs プロジェクト: immdan/MoltrupMotion
        public void ImportBrugere()
        {
            string filsti;

            Console.WriteLine("Angiv sti til .CSV fil:");
            Console.WriteLine("Første linje i .CSV filen skal være formateret således: fornavn,efternavn,adress,postnummer,telefon,foedselsdag,mail");
            filsti = Console.ReadLine();

            CsvImport csvimport = new CsvImport();

            mmdb.ImportMedlemmer(csvimport.GetDataFromFile(filsti));

            Console.WriteLine("Medlemmer importeret");
        }
コード例 #12
0
        public void ValidSingleOrder()
        {
            string input     = "TestFiles\\valid_single_order.csv";
            string output    = "valid_single_order.json";
            char   separator = ',';
            var    cx        = new CsvImport(input, output, separator);

            cx.Parse();
            string errors = cx.ValidateImport();
            var    fn     = cx.SaveOutputToFile();

            TestFileCleanup(fn);
            Assert.IsTrue(string.IsNullOrWhiteSpace(errors));
        }
コード例 #13
0
        /// <summary>
        /// Process received answers from client and sending the result back
        /// </summary>
        /// <param name="client"></param>
        /// <param name="data"></param>
        private static void ProcessAnswers(TcpClient client, object data)
        {
            _csv = new CsvImport(_exampath);
            var filename = _server.GetExamFileName(client);
            var list     = _csv.GetExercises(filename);
            var erh      = new ExerciseResultHelper();
            var result   = erh.ProcessResult((List <DefaultAnswer>)data, list);
            var examlog  = new ExamLog
            {
                ConsoleOutput = true
            };

            examlog.AppendToLog(_server.GetIpFromClient(client), erh.ExistingAnswers, erh.CorrectAnswers);
            _server.SendPacket(client, result);
        }
コード例 #14
0
ファイル: UnitTest1.cs プロジェクト: pkshetlie/CsvImport
        public void BasicTest()
        {
            string str = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "CsvFolder\\");
            DirectoryInfo import = Directory.CreateDirectory(str);
            try
            {
                CsvImport csv = new CsvImport(import);
                csv.Import<ProductMap, ProductModel, MyContext>("products-*.csv");
            }
            catch { }
            MyContext db = new MyContext();

            Product p = db.Products.Where(x => x.Reference == "FROMAGE").FirstOrDefault();
            Assert.AreNotEqual(null, p);
        }
コード例 #15
0
        public void BaguetteRightQuantity()
        {
            string        str    = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "CsvFolder\\");
            DirectoryInfo import = Directory.CreateDirectory(str);

            try
            {
                CsvImport csv = new CsvImport(import);
                csv.Import <ProductMap, ProductModel, MyContext>("products-*.csv");
            }
            catch { }
            MyContext db = new MyContext();

            Assert.AreEqual(20, db.Products.Where(x => x.Reference == "BAGUETTE").First().Quantity);
        }
コード例 #16
0
        public void CountProduct()
        {
            string        str    = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "CsvFolder\\");
            DirectoryInfo import = Directory.CreateDirectory(str);

            try
            {
                CsvImport csv = new CsvImport(import);
                csv.Import <ProductMap, ProductModel, MyContext>("products-*.csv");
            }
            catch { }
            MyContext db = new MyContext();

            Assert.AreEqual(2, db.Products.Count());
        }
コード例 #17
0
        public void BasicTest()
        {
            string        str    = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "CsvFolder\\");
            DirectoryInfo import = Directory.CreateDirectory(str);

            try
            {
                CsvImport csv = new CsvImport(import);
                csv.Import <ProductMap, ProductModel, MyContext>("products-*.csv");
            }
            catch { }
            MyContext db = new MyContext();

            Product p = db.Products.Where(x => x.Reference == "FROMAGE").FirstOrDefault();

            Assert.AreNotEqual(null, p);
        }
コード例 #18
0
        public void CsvImportQuotedStringTest()
        {
            var lines = new[]
            {
                "ColString1;ColString2",
                "No quote1;No quote2",
                "\"Single Quote1\";\"Single Quote2\"",
                "\"Semicolon in string ; Quoted1\";\"Semicolon in string ; Quoted2\"",
                "\"newline in string ", "Quoted1\";\"newline in string ", "Quoted2\"",
                "\"Quote \"\"in\"\" string1\";\"Quote \"\"in\"\" string2\"",
                "\"\"\"\"\"\"\"\";\"\"\"\""
            };

            var csvList = new CsvImport <CsvImportStringClass>().Read(lines);

            csvList.Should().HaveCount(lines.Length - 3);

            csvList[0].Should().BeEquivalentTo(new CsvImportStringClass()
            {
                ColString1 = "No quote1", ColString2 = "No quote2"
            });
            csvList[1].Should().BeEquivalentTo(new CsvImportStringClass()
            {
                ColString1 = "Single Quote1", ColString2 = "Single Quote2"
            });
            csvList[2].Should().BeEquivalentTo(new CsvImportStringClass()
            {
                ColString1 = "Semicolon in string ; Quoted1", ColString2 = "Semicolon in string ; Quoted2"
            });
            csvList[3].Should().BeEquivalentTo(new CsvImportStringClass()
            {
                ColString1 = "newline in string \nQuoted1", ColString2 = "newline in string \nQuoted2"
            });
            csvList[4].Should().BeEquivalentTo(new CsvImportStringClass()
            {
                ColString1 = "Quote \"in\" string1", ColString2 = "Quote \"in\" string2"
            });
            csvList[5].Should().BeEquivalentTo(new CsvImportStringClass()
            {
                ColString1 = "\"\"\"", ColString2 = "\""
            });
        }
コード例 #19
0
ファイル: CNCLibDefaultData.cs プロジェクト: yazici/CNCLib
        private void MachineSeed(CNCLibContext context, User[] users)
        {
            var machineImport = new CsvImport <Machine>();
            var machines      = machineImport.Read(DefaultDataDir + @"\DefaultData\Machine.csv").ToArray();

            var machineCommandImport = new CsvImport <MachineCommand>();
            var machineCommands      = machineCommandImport.Read(DefaultDataDir + @"\DefaultData\MachineCommand.csv").ToArray();

            var machineInitCommandImport = new CsvImport <MachineInitCommand>();
            var machineInitCommands      = machineInitCommandImport.Read(DefaultDataDir + @"\DefaultData\MachineInitCommand.csv").ToArray();

            foreach (var machineInitCommand in machineInitCommands)
            {
                machineInitCommand.Machine              = machines.First(m => m.MachineId == machineInitCommand.MachineId);
                machineInitCommand.MachineId            = 0;
                machineInitCommand.MachineInitCommandId = 0;
            }

            foreach (var machineCommand in machineCommands)
            {
                machineCommand.Machine          = machines.First(m => m.MachineId == machineCommand.MachineId);
                machineCommand.MachineId        = 0;
                machineCommand.MachineCommandId = 0;
            }

            foreach (var machine in machines)
            {
                machine.User      = users.FirstOrDefault(u => u.UserId == machine.UserId);
                machine.UserId    = null;
                machine.MachineId = 0;
            }

            foreach (var user in users)
            {
                user.UserId = 0;
            }

            context.Set <Machine>().AddRange(machines);
            context.Set <MachineCommand>().AddRange(machineCommands);
            context.Set <MachineInitCommand>().AddRange(machineInitCommands);
        }
コード例 #20
0
        public ActionResult Import(HttpPostedFileBase postedFile)
        {
            List <SalesRecord> sales     = new List <SalesRecord>();
            CsvImport          csvImport = new CsvImport();

            string filePath = string.Empty;

            if (postedFile == null || postedFile.ContentLength == 0)
            {
                ViewBag.Error = "Please select a CSV file";
                return(View("Index"));
            }
            else
            {
                if (postedFile.FileName.EndsWith("csv"))
                {
                    string path = Server.MapPath("~/Uploads/");
                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }

                    filePath = path + Path.GetFileName(postedFile.FileName);
                    postedFile.SaveAs(filePath);

                    // Read the contents of CSV file:
                    sales = csvImport.ParseCSV(filePath);

                    // Bulk Insert the sales record
                    csvImport.BulkInsertSalesRecords(sales);

                    return(View("Index", sales.Take(100)));
                }
                else
                {
                    ViewBag.Error = "File type is incorrect <br>";
                    return(View("Index"));
                }
            }
        }
コード例 #21
0
ファイル: MainWindow.xaml.cs プロジェクト: freddyyi/NightFlux
        private async void Sync_Button_Click(object sender, RoutedEventArgs e)
        {
            SyncButton.IsEnabled = false;
            using (var sync = new NightSync(App.Configuration))
            {
                await Task.WhenAll(
                    sync.ImportBg(),
                    sync.ImportBasalProfiles(),
                    sync.ImportTempBasals(),
                    sync.ImportBoluses(),
                    sync.ImportExtendedBoluses(),
                    sync.ImportCarbs()
                    );
            }

            var csvsync = new CsvImport(App.Configuration);
            await csvsync.ImportFile(@"C:\Users\kurtl\Desktop\boluses.tsv").ConfigureAwait(true);

            await viewModel.Update();

            SyncButton.IsEnabled = true;
        }
コード例 #22
0
ファイル: CNCLibDefaultData.cs プロジェクト: yazici/CNCLib
        private void ItemSeed(CNCLibContext context)
        {
            var itemImport = new CsvImport <Item>();
            var items      = itemImport.Read(DefaultDataDir + @"\DefaultData\Item.csv").ToArray();

            var itemPropertyImport = new CsvImport <ItemProperty>();
            var itemProperties     = itemPropertyImport.Read(DefaultDataDir + @"\DefaultData\ItemProperty.csv").ToArray();

            foreach (var itemProperty in itemProperties)
            {
                itemProperty.Item   = items.First(i => i.ItemId == itemProperty.ItemId);
                itemProperty.ItemId = 0;
            }

            foreach (var item in items)
            {
                item.ItemId = 0;
            }

            context.Set <Item>().AddRange(items);
            context.Set <ItemProperty>().AddRange(itemProperties);
        }
コード例 #23
0
        private void btnLoad_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog
            {
                Title            = "Browse csv Files",
                CheckFileExists  = true,
                CheckPathExists  = true,
                DefaultExt       = "csv",
                Filter           = "CSV files (*.csv)|*.csv",
                RestoreDirectory = true,
            };

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                txtFileName.Text = openFileDialog1.FileName;

                dgvBooks.Columns.Clear();
                List <Book>   books       = CsvImport.GetBooks(txtFileName.Text, ";");
                List <string> bindingList = books.Select(b => b.Binding).Distinct().ToList();
                BindGrid(bindingList);
                dgvBooks.DataSource = books;
            }
        }
コード例 #24
0
        protected void btnAction_Click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(lblError.Text))
            {
                return;
            }


            if (!_fieldMapping.ContainsKey(ProductFields.Sku.StrName()) && !_fieldMapping.ContainsKey(ProductFields.Name.StrName()))
            {
                MsgErr(Resource.Admin_ImportCsv_SelectNameOrSKU);
                return;
            }

            divAction.Visible = false;
            choseDiv.Visible  = false;
            if (!File.Exists(_fullPath))
            {
                return;
            }

            if (CommonStatistic.IsRun)
            {
                return;
            }
            _hasHeadrs = Request["hasheadrs"] == "true";
            CommonStatistic.Init();
            CommonStatistic.CurrentProcess     = Request.Url.PathAndQuery;
            CommonStatistic.CurrentProcessName = Resource.Admin_ImportXLS_CatalogUpload;
            linkCancel.Visible = true;
            MsgErr(true);
            lblRes.Text = string.Empty;
            CsvImport.Factory(_fullPath, _hasHeadrs, chboxDisableProducts.Checked, CsvSettings.CsvSeparator, CsvSettings.CsvEnconing, _fieldMapping, CsvSettings.CsvColumSeparator, CsvSettings.CsvPropertySeparator).Process();
            OutDiv.Visible = true;
            TrialService.TrackEvent(TrialEvents.MakeCSVImport, "");
        }
コード例 #25
0
ファイル: ImportDialog.cs プロジェクト: Alc2110/MyLibrary
        public async Task Process(string filePath, string type)
        {
            // read file
            CsvImport import = null;

            try
            {
                import = await CsvImport.ImportFactory(type, filePath);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Error importing file", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            this.startButton.Enabled = true;

            this.label1.Text = "Importing...";
            this.label2.Text = filePath;

            int warnCount    = 0;
            int errorCount   = 0;
            int successCount = 0;

            foreach (var row in import)
            {
                // process row
                int currRow = row.Row;
                if (row.RowStatus == CsvRowResult.Status.SUCCESS)
                {
                    try
                    {
                        if (await import.AddIfNotExists(row))
                        {
                            successCount++;
                        }
                        else
                        {
                            RegisterWarning(currRow, row.EntityName, import.GetTypeName);

                            warnCount++;
                        }
                    }
                    catch
                    {
                        // something bad happened while accessing the database
                        // register it as an error
                        // TODO: provide error message?
                        RegisterError(currRow);

                        errorCount++;
                    }
                }
                else if (row.RowStatus == CsvRowResult.Status.ERROR)
                {
                    // failed to parse row as the proper entity
                    // register it in the list
                    RegisterError(currRow);

                    errorCount++;
                }
            }

            // finished
            this.startButton.Enabled = true;
            // display summary
            this.label1.Text = "Task Complete.";
            this.label2.Text = errorCount + " errors, " + warnCount + " warnings. " + successCount + " " + type + "s added.";
        }
コード例 #26
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            await _context.Database.ExecuteSqlCommandAsync(@"DELETE FROM Bookings");

            await _context.Database.ExecuteSqlCommandAsync(@"DELETE FROM Tools");

            int lineCount = 0;

            try
            {
                using (var streamReader = new StreamReader(files.OpenReadStream()))
                    using (var csv = new CsvReader(streamReader))
                    {
                        //csv.Configuration.PrepareHeaderForMatch = (string header, int index) => header.Trim(new Char[] { ' ', '*', '.' });
                        csv.Configuration.PrepareHeaderForMatch = (string header, int index) => header.Replace(" ", string.Empty).Replace(".", string.Empty);

                        csv.Configuration.HeaderValidated = null;
                        var record  = new CsvImport();
                        var records = csv.EnumerateRecords(record);


                        foreach (var r in records)
                        {
                            char[] charsToTrim = { '"', '\'' };
                            string startData   = r.Fra;
                            string endDate     = r.Til;

                            foreach (var month in months)
                            {
                                if (startData.ToLower().Contains(month.Key))
                                {
                                    startData = startData.ToLower().Replace(month.Key, month.Value);
                                    startData = startData.Replace(" ", "-").Trim(charsToTrim);
                                }
                                if (endDate.ToLower().Contains(month.Key))
                                {
                                    endDate = endDate.ToLower().Replace(month.Key, month.Value);
                                    endDate = endDate.Replace(" ", "-").Trim(charsToTrim);
                                }
                            }

                            var tool = new Tool()
                            {
                                isComplete = false,
                                Title      = r.Produkt,
                            };
                            _context.Tools.Add(tool);

                            await _context.SaveChangesAsync();

                            var booking = new Booking()
                            {
                                ToolId    = tool.Id,
                                Title     = r.Hold,
                                StartDate = DateTime.ParseExact(startData, "dd-MM-yyyy", CultureInfo.InvariantCulture),
                                EndDate   = DateTime.ParseExact(endDate, "dd-MM-yyyy", CultureInfo.InvariantCulture),
                            };
                            _context.Bookings.Add(booking);
                            await _context.SaveChangesAsync();
                        }
                    }

                /*
                 * using (var streamReader = new StreamReader(files.OpenReadStream()))
                 * {
                 *  while (streamReader.Peek() >= 0)
                 *  {
                 *      lineCount++;
                 #if DEBUG
                 *      if (lineCount == 30) Console.Write("Break");
                 #endif
                 *      var line = streamReader.ReadLine();
                 *      if (lineCount == 1) continue;
                 *      var data = line.Split(new[] { ';' });
                 *      //DateTime myDate = new DateTime();
                 *      //DateTime.TryParseExact(data[3], "d-M-yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out myDate);
                 *
                 *      char[] charsToTrim = { '"', '\'' };
                 *      string startData = data[(int)MembaExport.Fra];
                 *      string endDate = data[(int)MembaExport.Til];
                 *
                 *      foreach (var month in months)
                 *      {
                 *          if (startData.ToLower().Contains(month.Key))
                 *          {
                 *              startData = startData.ToLower().Replace(month.Key, month.Value);
                 *              startData = startData.Replace(" ", "-").Trim(charsToTrim);
                 *          }
                 *          if (endDate.ToLower().Contains(month.Key))
                 *          {
                 *              endDate = endDate.ToLower().Replace(month.Key, month.Value);
                 *              endDate = endDate.Replace(" ", "-").Trim(charsToTrim);
                 *          }
                 *      }
                 *
                 *      var tool = new Tool()
                 *      {
                 *          isComplete = false,
                 *          Title = data[(int)MembaExport.Produkt],
                 *      };
                 *      _context.Tools.Add(tool);
                 *
                 *      await _context.SaveChangesAsync();
                 *      var booking = new Booking()
                 *      {
                 *          ToolId = tool.Id,
                 *          Title = data[(int)MembaExport.Hold],
                 *          StartDate = DateTime.ParseExact(startData, "dd-MM-yyyy", CultureInfo.InvariantCulture),
                 *          EndDate = DateTime.ParseExact(endDate, "dd-MM-yyyy", CultureInfo.InvariantCulture),
                 *      };
                 *      _context.Bookings.Add(booking);
                 *      await _context.SaveChangesAsync();
                 *
                 *  }
                 * }*/
            }
            catch (Exception exp)
            {
                TempData["Message-Type"]    = "danger";
                TempData["Message-Content"] = "Could not import file. Error in line " + lineCount.ToString() + ". " + exp.Message;
                return(Page());
            }

            await _context.SaveChangesAsync();

            //return RedirectToAction(nameof(Details), new { id = areaFile.AreaID });

            // _context.Projects.Add(Project);
            //await _context.SaveChangesAsync();

            return(RedirectToPage("./Index"));
        }
コード例 #27
0
        public void CsvImportFileTest()
        {
            var lines = new[]
            {
                "ColString;ColInt;ColShort;ColDecimal;ColByte;ColBool;ColLong;ColEnum;ColDate;ColDateAndTime;ColDateAndTimeFraction;ColTimeSpan;ColDouble;ColIntNull;ColShortNull;ColDecimalNull;ColByteNull;ColBoolNull;ColLongNull;ColEnumNull;ColDateNull;ColDateAndTimeNull;ColDateAndTimeFractionNull;ColDoubleNull;ColTimeSpanNull",
                "Str;1;2;2.5;127;true;1234567890;EnumValue1;2018/12/31;2018/12/31 15:56:45;2018/12/31 15:56:45.123;15:56:45;34.12;1;2;2.5;127;false;9876543210;EnumValue1;2018/12/31;2018/12/31 15:56:45;2018/12/31 15:56:45.123;34.12;15:56:45",
                ";1;2;2.5;127;true;1234567890;EnumValue2;2018/12/31;2018/12/31 15:56:45;2018/12/31 15:56:45.123;15:56:45.123;34.12;;;;;;;;;;;"
            };

            var csvList = new CsvImport <CsvImportClass>().Read(lines);

            csvList.Should().HaveCount(lines.Length - 1);

            var csvObjectShouldBe = new CsvImportClass
            {
                ColString                  = "Str",
                ColInt                     = 1,
                ColShort                   = 2,
                ColDecimal                 = 2.5m,
                ColByte                    = 127,
                ColBool                    = true,
                ColLong                    = 1234567890,
                ColEnum                    = CsvImportClass.TestEnum.EnumValue1,
                ColDate                    = 31.December(2018),
                ColDateAndTime             = new DateTime(2018, 12, 31, 15, 56, 45),
                ColDateAndTimeFraction     = new DateTime(2018, 12, 31, 15, 56, 45, 123),
                ColTimeSpan                = new TimeSpan(15, 56, 45),
                ColDouble                  = 34.12,
                ColIntNull                 = 1,
                ColShortNull               = 2,
                ColDecimalNull             = 2.5m,
                ColByteNull                = 127,
                ColBoolNull                = false,
                ColLongNull                = 9876543210,
                ColEnumNull                = CsvImportClass.TestEnum.EnumValue1,
                ColDateNull                = 31.December(2018),
                ColDateAndTimeNull         = new DateTime(2018, 12, 31, 15, 56, 45),
                ColDateAndTimeFractionNull = new DateTime(2018, 12, 31, 15, 56, 45, 123),
                ColTimeSpanNull            = new TimeSpan(15, 56, 45),
                ColDoubleNull              = 34.12
            };
            var csvObjectShouldBeNull = new CsvImportClass
            {
                ColString              = string.Empty,
                ColInt                 = 1,
                ColShort               = 2,
                ColDecimal             = 2.5m,
                ColByte                = 127,
                ColBool                = true,
                ColLong                = 1234567890,
                ColEnum                = CsvImportClass.TestEnum.EnumValue2,
                ColDate                = 31.December(2018),
                ColDateAndTime         = new DateTime(2018, 12, 31, 15, 56, 45),
                ColDateAndTimeFraction = new DateTime(2018, 12, 31, 15, 56, 45, 123),
                ColTimeSpan            = new TimeSpan(0, 15, 56, 45, 123),
                ColDouble              = 34.12,
            };

            var csvObject     = csvList[0];
            var csvObjectNull = csvList[1];

            csvObject.Should().BeEquivalentTo(csvObjectShouldBe);
            csvObjectNull.Should().BeEquivalentTo(csvObjectShouldBeNull);
        }
コード例 #28
0
ファイル: ResultSet.cs プロジェクト: OlekNg/AHMED
 private void LoadIterationsData()
 {
     IterationData = passes.Select(passFolder =>
     {
         var csv = new CsvImport<IterationData>();
         csv.Import(Path.Combine(passFolder, "iterations.csv"));
         return csv.Objects;
     }).ToList();
 }
コード例 #29
0
        protected void Page_Init(object sender, EventArgs e)
        {
            MsgErr(true);
            divStart.Visible  = !CommonStatistic.IsRun && (string.IsNullOrEmpty(Request["action"]));
            divAction.Visible = !CommonStatistic.IsRun && (Request["action"] == "start");

            choseDiv.Visible = !CommonStatistic.IsRun;

            OutDiv.Visible     = CommonStatistic.IsRun;
            linkCancel.Visible = CommonStatistic.IsRun;

            if (CommonStatistic.IsRun || (Request["action"] != "start"))
            {
                return;
            }
            if (!File.Exists(_fullPath))
            {
                return;
            }

            var tbl = new Table {
                ID = "tblValues"
            };
            var namesRow = new TableRow {
                ID = "namesRow", BackColor = System.Drawing.ColorTranslator.FromHtml("#0D76B8"), Height = 28
            };
            var firstValRow = new TableRow {
                ID = "firstValsRow"
            };
            var ddlRow = new TableRow {
                ID = "ddlRow"
            };

            var firstCell = new TableCell {
                Width = 200, BackColor = System.Drawing.Color.White,
            };

            firstCell.Controls.Add(new Label {
                Text = Resource.Admin_ImportCsv_Column, CssClass = "firstColumn"
            });
            var div1 = new Panel {
                CssClass = "arrow_left_bg"
            };

            div1.Controls.Add(new Panel {
                CssClass = "arrow_right_bg"
            });
            firstCell.Controls.Add(div1);


            var secondCell = new TableCell {
                Width = 200
            };

            secondCell.Controls.Add(new Label {
                Text = Resource.Admin_ImportCsv_FistLineInTheFile, CssClass = "firstColumn"
            });
            var div2 = new Panel {
                CssClass = "arrow_left_bg_two"
            };

            div2.Controls.Add(new Panel {
                CssClass = "arrow_right_bg"
            });
            secondCell.Controls.Add(div2);

            var firdCell = new TableCell {
                Width = 200
            };

            firdCell.Controls.Add(new Label {
                Text = Resource.Admin_ImportCsv_DataType, CssClass = "firstColumn"
            });
            var div3 = new Panel {
                CssClass = "arrow_left_bg_free"
            };

            div3.Controls.Add(new Panel {
                CssClass = "arrow_right_bg"
            });
            firdCell.Controls.Add(div3);
            var div4 = new Panel {
                Width = 200
            };

            firdCell.Controls.Add(div4);

            namesRow.Cells.Add(firstCell);
            firstValRow.Cells.Add(secondCell);
            ddlRow.Cells.Add(firdCell);

            _hasHeadrs = Request["hasheadrs"].TryParseBool();
            var csvrows = CsvImport.Factory(_fullPath, false, false, CsvSettings.CsvSeparator, CsvSettings.CsvEnconing, null, CsvSettings.CsvColumSeparator, CsvSettings.CsvPropertySeparator).ReadFirst2();

            if (csvrows.Count == 0)
            {
                MsgErr(Resource.Admin_ImportCsv_ErrorReadFille);
                return;
            }

            if (_hasHeadrs && csvrows[0].HasDuplicates())
            {
                var strFileds = string.Empty;
                foreach (var item in csvrows[0].Duplicates())
                {
                    strFileds += "\"" + item + "\",";
                }
                MsgErr(Resource.Admin_ImportCsv_DuplicateHeader + strFileds.Trim(','));
                btnAction.Visible = false;
            }

            for (int i = 0; i < csvrows[0].Length; i++)
            {
                var cell = new TableCell {
                    ID = "cell" + i
                };
                var  lb = new Label();
                bool flagMustReqField = false;
                if (Request["hasheadrs"].ToLower() == "true")
                {
                    var tempCsv = (csvrows[0][i].Length > 50 ? csvrows[0][i].Substring(0, 49) : csvrows[0][i]);
                    if (_mustRequiredFfield.Any(item => item.StrName() == tempCsv.ToLower()))
                    {
                        flagMustReqField = true;
                    }
                    lb.Text = tempCsv;
                }
                else
                {
                    lb.Text = Resource.Admin_ImportCsv_Empty;
                }
                lb.ForeColor = System.Drawing.Color.White;
                cell.Controls.Add(lb);

                if (flagMustReqField)
                {
                    var lbl = new Label
                    {
                        Text      = @"*",
                        ForeColor = System.Drawing.Color.Red
                    };
                    cell.Controls.Add(lbl);
                }

                namesRow.Cells.Add(cell);

                cell = new TableCell {
                    Width = 150
                };
                var ddl = new DropDownList {
                    ID = "ddlType" + i, Width = 150
                };
                ddl.Items.Add(new ListItem(ProductFields.None.ResourceKey(), ProductFields.None.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Sku.ResourceKey(), ProductFields.Sku.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Name.ResourceKey(), ProductFields.Name.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.ParamSynonym.ResourceKey(), ProductFields.ParamSynonym.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Category.ResourceKey(), ProductFields.Category.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Enabled.ResourceKey(), ProductFields.Enabled.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Price.ResourceKey(), ProductFields.Price.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.PurchasePrice.ResourceKey(), ProductFields.PurchasePrice.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Amount.ResourceKey(), ProductFields.Amount.StrName()));

                ddl.Items.Add(new ListItem(ProductFields.MultiOffer.ResourceKey(), ProductFields.MultiOffer.StrName()));

                ddl.Items.Add(new ListItem(ProductFields.Unit.ResourceKey(), ProductFields.Unit.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Discount.ResourceKey(), ProductFields.Discount.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.ShippingPrice.ResourceKey(), ProductFields.ShippingPrice.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Weight.ResourceKey(), ProductFields.Weight.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Size.ResourceKey(), ProductFields.Size.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.BriefDescription.ResourceKey(), ProductFields.BriefDescription.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Description.ResourceKey(), ProductFields.Description.StrName()));

                ddl.Items.Add(new ListItem(ProductFields.Title.ResourceKey(), ProductFields.Title.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.MetaKeywords.ResourceKey(), ProductFields.MetaKeywords.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.MetaDescription.ResourceKey(), ProductFields.MetaDescription.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.H1.ResourceKey(), ProductFields.H1.StrName()));


                ddl.Items.Add(new ListItem(ProductFields.Photos.ResourceKey(), ProductFields.Photos.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Videos.ResourceKey(), ProductFields.Videos.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Markers.ResourceKey(), ProductFields.Markers.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Properties.ResourceKey(), ProductFields.Properties.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Producer.ResourceKey(), ProductFields.Producer.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.OrderByRequest.ResourceKey(), ProductFields.OrderByRequest.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.SalesNotes.ResourceKey(), ProductFields.SalesNotes.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Sorting.ResourceKey(), ProductFields.Sorting.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Related.ResourceKey(), ProductFields.Related.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Alternative.ResourceKey(), ProductFields.Alternative.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.CustomOption.ResourceKey(), ProductFields.CustomOption.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Gtin.ResourceKey(), ProductFields.Gtin.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.GoogleProductCategory.ResourceKey(), ProductFields.GoogleProductCategory.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.Adult.ResourceKey(), ProductFields.Adult.StrName()));
                ddl.Items.Add(new ListItem(ProductFields.ManufacturerWarranty.ResourceKey(), ProductFields.ManufacturerWarranty.StrName()));

                ddl.SelectedValue = lb.Text.Trim().ToLower();
                cell.Controls.Add(ddl);
                ddlRow.Cells.Add(cell);
            }

            var dataRow = csvrows.Count > 1 ? csvrows[1] : csvrows[0];

            if (dataRow != null)
            {
                for (int i = 0; i < dataRow.Length; i++)
                {
                    var cell = new TableCell();
                    if (dataRow[i] == null)
                    {
                        cell.Controls.Add(new Label {
                            Text = string.Empty
                        });
                    }
                    else
                    {
                        cell.Controls.Add(new Label {
                            Text = dataRow[i].Length > 50 ? dataRow[i].Substring(0, 49).HtmlEncode() : dataRow[i].HtmlEncode()
                        });
                    }
                    firstValRow.Cells.Add(cell);
                }
            }

            tbl.Rows.Add(namesRow);
            tbl.Rows.Add(firstValRow);
            tbl.Rows.Add(ddlRow);
            choseDiv.Controls.Add(tbl);
        }