コード例 #1
0
        public void Run()
        {
            var data  = File.ReadAllText(RENT_FILE_PATH);
            var lines = data.Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries);

            var orderFields = new List <string>();

            foreach (var line in lines)
            {
                orderFields.AddRange(CsvDeserializer.DeserializeOrders(line));
            }

            var orders = new Dictionary <string, int>();

            foreach (var field in orderFields)
            {
                if (orders.ContainsKey(field))
                {
                    orders[field]++;
                }
                else
                {
                    orders.Add(field, 1);
                }
            }

            PrintOrders(orders);
        }
コード例 #2
0
        // Test deserialization on a normal file with a header
        public void TestDeserialize()
        {
            string          path    = TestCommon.GetPath("testcsv_deserialize.csv");
            List <TestData> results = new List <TestData>();

            using (StreamReader sr = File.OpenText(path))
            {
                CsvDeserializer <TestData> deserializer =
                    new CsvDeserializer <TestData>(new CsvParser(sr));
                while (deserializer.TryProduce(out TestData output))
                {
                    results.Add(output);
                }
            }

            Assert.IsTrue(results.Count == 3);

            Assert.IsTrue(results[0].Name == "Alice");
            Assert.IsTrue(results[0].Age == 32);
            Assert.IsTrue(results[0].Percent == 96.4f);
            Assert.IsTrue(results[0].FavoriteColor == Color.Blue);

            Assert.IsTrue(results[1].Name == "Bob");
            Assert.IsTrue(results[1].Age == 25);
            Assert.IsTrue(results[1].Percent == 87.3f);
            Assert.IsTrue(results[1].FavoriteColor == Color.Red);

            Assert.IsTrue(results[2].Name == "Charlie");
            Assert.IsTrue(results[2].Age == 33);
            Assert.IsTrue(results[2].Percent == 50.2f);
            Assert.IsTrue(results[2].FavoriteColor == Color.Green);
        }
コード例 #3
0
        private static List <Rent> LoadRents(string filePath)
        {
            var lines = LoadCsvLines(filePath);

            var rents = new List <Rent>();

            foreach (var line in lines)
            {
                rents.Add(CsvDeserializer.DeserializeRent(line));
            }

            return(rents);
        }
コード例 #4
0
        private static List <VehicleType> LoadVehicleTypes(string filePath)
        {
            var lines = LoadCsvLines(filePath);

            var vehicleTypes = new List <VehicleType>();

            foreach (var line in lines)
            {
                vehicleTypes.Add(CsvDeserializer.DeserializeVehicleType(line));
            }

            return(vehicleTypes);
        }
コード例 #5
0
        public void Can_deserialize_single()
        {
            var deserializer   = new CsvDeserializer();
            var bindingContext = new BindingContext()
            {
                DestinationType = typeof(User),
                GenericType     = null,
                Configuration   = new BindingConfig()
            };

            var result = deserializer.Deserialize("text/csv", new MemoryStream(Encoding.UTF8.GetBytes("Name,Age\r\nJim,45\r\n")),
                                                  bindingContext);

            ((User)result).ShouldBeEquivalentTo(_users[0]);
        }
コード例 #6
0
        public void Can_deserialize_collections(Type type)
        {
            var deserializer   = new CsvDeserializer();
            var bindingContext = new BindingContext()
            {
                DestinationType = type,
                GenericType     = type.GetGenericArguments()[0],
                Configuration   = new BindingConfig()
            };

            var result = deserializer.Deserialize("text/csv", new MemoryStream(Encoding.UTF8.GetBytes(_usersString)),
                                                  bindingContext);

            type.IsInstanceOfType(result).Should().BeTrue();

            ((IEnumerable)result).ShouldBeEquivalentTo(_users);
        }
コード例 #7
0
        /// <summary> The entry point. </summary>
        static void Main()
        {
            System.Console.Title = EClientApplicationName.WarThunderPresetRandomizer;
            var defaultColor = ConsoleColor.Gray;

            var requiredSettings = new List <string>
            {
                nameof(Settings.WarThunderLocation),
                nameof(Settings.KlensysWarThunderToolsLocation),
            };

            try
            {
                var loggers = new IConfiguredLogger[]
                {
                    new ConfiguredNLogger(ELoggerName.FileLogger, new ExceptionFormatter(), ESubdirectory.Logs),
                    new ConfiguredNLogger(ELoggerName.ConsoleLogger, new ExceptionFormatter()),
                };
                var fileManager           = new WarThunderFileManager(loggers);
                var fileReader            = new WarThunderFileReader(loggers);
                var settingsManager       = new WarThunderSettingsManager(fileManager, EConsoleClientFile.Settings, requiredSettings, loggers);
                var parser                = new Parser(loggers);
                var unpacker              = new Unpacker(fileManager, loggers);
                var dataRepositoryFactory = new DataRepositoryFactoryWarThunder(loggers);
                var converter             = new Converter(loggers);
                var jsonHelper            = new WarThunderJsonHelper(loggers);
                var csvDeserializer       = new CsvDeserializer(loggers);
                var randomiser            = new CustomRandomiser(loggers);
                var vehicleSelector       = new VehicleSelector(randomiser, loggers);
                var presetGenerator       = new PresetGenerator(randomiser, vehicleSelector, loggers);
                var thunderSkillParser    = new ThunderSkillParser(loggers);

                using (var manager = new Manager(fileManager, fileReader, settingsManager, parser, unpacker, converter, jsonHelper, csvDeserializer, dataRepositoryFactory, randomiser, vehicleSelector, presetGenerator, thunderSkillParser, true, false, false, loggers))
                {
                    manager.RemoveOldLogFiles();
                    manager.InitialiseGameClientVersion();

                    while (!settingsManager.WarThunderLocationIsValid())
                    {
                        System.Console.Write(EConsoleUiLogMessage.SelectValidLocation.Format(EApplicationName.WarThunder));
                        settingsManager.Save(nameof(Settings.WarThunderLocation), System.Console.ReadLine());
                    }
                    while (!settingsManager.KlensysWarThunderToolLocationIsValid())
                    {
                        System.Console.Write(EConsoleUiLogMessage.SelectValidLocation.Format(EApplicationName.KlensysWarThunderTools));
                        settingsManager.Save(nameof(Settings.KlensysWarThunderToolsLocation), System.Console.ReadLine());
                    }
                    System.Console.WriteLine();

                    manager.CacheData();

                    while (true)
                    {
                        var specification = ParseSpecification
                                            (
                            TakeSpecificationInput(),
                            manager
                            .ResearchTrees
                            .SelectMany(nationResearchTreeKeyValuePair => nationResearchTreeKeyValuePair.Value)
                            .SelectMany(branchKeyValuePair => branchKeyValuePair.Value)
                            .SelectMany(rankKeyValuePair => rankKeyValuePair.Value)
                            .Select(rankVehicleKeyValuePair => rankVehicleKeyValuePair.Value.GaijinId)
                                            );

                        foreach (var vehicle in manager.GeneratePrimaryAndFallbackPresets(specification)[EPreset.Primary])
                        {
                            System.Console.ForegroundColor = !vehicle.IsResearchable
                                ? ConsoleColor.Yellow
                                : ConsoleColor.White;

                            System.Console.WriteLine($"\t {vehicle.BattleRatingFormatted[specification.GameMode]} {vehicle.GaijinId}");
                        }

                        System.Console.ForegroundColor = defaultColor;
                    }
                }
            }
            catch
            {
                System.Console.Write($"\n{ECoreLogMessage.AnErrorHasOccurred} {EConsoleUiLogMessage.PressAnyKeyToExit} ");
                System.Console.ReadKey(true);
                Environment.Exit(0);
            }
        }
コード例 #8
0
ファイル: CsvReader.cs プロジェクト: MatthiWare/CSV
        public CsvReader(Stream input, CsvConfig config = null)
        {
            Config = config ?? new CsvConfig();

            reader = new CsvDeserializer(input, Config);
        }