protected override void ProcessLineFromCSV(string[] rowData)
        {
            MasterRow row = new MasterRow();

            row.PlayerID = rowData[0];
            row.BirthYear = ConvertToInt32(rowData[1], true);
            row.BirthMonth = ConvertToInt32(rowData[2], true);
            row.BirthDay = ConvertToInt32(rowData[3], true);
            row.BirthCountry = rowData[4];
            row.BirthState = rowData[5];
            row.BirthCity = rowData[6];
            row.DeathYear = ConvertToInt32(rowData[7], true);
            row.DeathMonth = ConvertToInt32(rowData[8], true);
            row.DeathDay = ConvertToInt32(rowData[9], true);
            row.DeathCountry = rowData[10];
            row.DeathState = rowData[11];
            row.DeathCity = rowData[12];
            row.NameFirst = rowData[13];
            row.NameLast = rowData[14];
            row.NameGiven = rowData[15];
            row.Weight = ConvertToInt32(rowData[16], true);
            row.Height = ConvertToInt32(rowData[17], true);
            row.Bats = rowData[18];
            row.Throws = rowData[19];
            row.Debut = rowData[20];
            row.FinalGame = rowData[21];
            row.RetroID = rowData[22];
            row.BbrefID = rowData[23];

            list.Add(row);
        }
Esempio n. 2
0
        public void TestGeoCodeWithAddress()
        {
            var logger  = new MemoryLogger(LogLevel.Debug);
            var process = GetTestProcess("google-geocode");

            if (process.Errors().Any())
            {
                foreach (var error in process.Errors())
                {
                    Console.WriteLine(error);
                }
                throw new Exception("The configuration has errors");
            }

            var input = new MasterRow(process.GetAllFields().Count());

            var address          = process.Entities.First().Fields.First(f => f.Name == "Address");
            var latitude         = process.Entities.First().CalculatedFields.First(f => f.Name == "Latitude");
            var longitude        = process.Entities.First().CalculatedFields.First(f => f.Name == "Longitude");
            var formattedAddress = process.Entities.First().CalculatedFields.First(f => f.Name == "FormattedAddress");
            var state            = process.Entities.First().CalculatedFields.First(f => f.Name == "State");
            var county           = process.Entities.First().CalculatedFields.First(f => f.Name == "County");
            var partialMatch     = process.Entities.First().CalculatedFields.First(f => f.Name == "PartialMatch");
            var locality         = process.Entities.First().CalculatedFields.First(f => f.Name == "Locality");

            input[address]          = "1009 Broad Street St. Joseph MI 49085";
            input[latitude]         = null;
            input[longitude]        = null;
            input[formattedAddress] = null;

            var context = new PipelineContext(logger, process, process.Entities.First(), address, address.Transforms.First());

            using (var gt = new GeocodeTransform(context)) {
                var output = gt.Operate(input);

                Assert.AreEqual("1009 Broad Street St. Joseph MI 49085", output[address]);
                Assert.AreEqual("MI", output[state]);
                Assert.AreEqual(false, output[partialMatch]);
                Assert.AreEqual("Berrien County", output[county]);
                Assert.AreEqual("St Joseph", output[locality]);
                Assert.IsNotNull(output[latitude]);
                Assert.IsNotNull(output[longitude]);
                Assert.IsNotNull(output[formattedAddress]);
            }
        }
Esempio n. 3
0
        public Score PlayRow(Row newRow)
        {
            if (IsWon)
            {
                throw new Exception("Game Finished");
            }
            if (PlayedRows.Count >= 10)
            {
                throw new Exception("Game Finished");
            }

            PlayedRows.Add(newRow);
            var score = MasterRow.CompareToOtherRow(newRow);

            if (score.Same == 4)
            {
                IsWon = true;
            }
            return(score);
        }
Esempio n. 4
0
        public void TestPlace()
        {
            var logger  = new MemoryLogger(LogLevel.Debug);
            var process = GetTestProcess("google-place");

            if (process.Errors().Any())
            {
                foreach (var error in process.Errors())
                {
                    Console.WriteLine(error);
                }
                throw new Exception("The configuration has errors");
            }

            var input = new MasterRow(process.GetAllFields().Count());

            var address          = process.Entities.First().Fields.First(f => f.Name == "Address");
            var latitude         = process.Entities.First().CalculatedFields.First(f => f.Name == "Latitude");
            var longitude        = process.Entities.First().CalculatedFields.First(f => f.Name == "Longitude");
            var formattedAddress = process.Entities.First().CalculatedFields.First(f => f.Name == "FormattedAddress");
            var place            = process.Entities.First().CalculatedFields.First(f => f.Name == "PlaceId");

            input[address]          = "1009 Broad St Joseph Michigan 49085";
            input[latitude]         = null;
            input[longitude]        = null;
            input[formattedAddress] = null;

            var context = new PipelineContext(logger, process, process.Entities.First(), address, address.Transforms.First());

            using (var gt = new PlaceTransform(context)) {
                var output = gt.Operate(input);

                Assert.AreEqual("1009 Broad St Joseph 49085", output[address]);
                Assert.AreEqual("ChIJsxyoG5_GEIgRMN8IWvngddA", output[place]);
                Assert.IsNotNull(output[latitude]);
                Assert.IsNotNull(output[longitude]);
                Assert.IsNotNull(output[formattedAddress]);
            }
        }
        private static string TransformParameters(IComponentContext ctx, string cfg)
        {
            var preProcess = new ConfigurationFacade.Process(
                cfg,
                new Dictionary <string, string>(),
                new List <IDependency> {
                ctx.Resolve <IReader>(),
                new DateMathModifier(),
                new ParameterModifier(new NullPlaceHolderReplacer()),
                ctx.ResolveNamed <IDependency>(TransformModule.ParametersName)
            }.ToArray());

            if (!preProcess.Parameters.Any(pr => pr.Transforms.Any()))
            {
                return(null);
            }

            var fields = preProcess.Parameters.Select(pr => new Field {
                Name       = pr.Name,
                Alias      = pr.Name,
                Default    = pr.Value,
                Type       = pr.Type,
                Transforms = pr.Transforms.Select(o => o.ToOperation()).ToList()
            }).ToList();
            var len    = fields.Count;
            var entity = new Entity {
                Name = "Parameters", Alias = "Parameters", Fields = fields
            };
            var mini = new Process {
                Name     = "ParameterTransform",
                ReadOnly = true,
                Entities = new List <Entity> {
                    entity
                },
                Maps    = preProcess.Maps.Select(m => m.ToMap()).ToList(),      // for map transforms
                Scripts = preProcess.Scripts.Select(s => s.ToScript()).ToList() // for transforms that use scripts (e.g. js)
            };

            mini.Load(); // very important to check after creating, as it runs validation and even modifies!

            if (!mini.Errors().Any())
            {
                // modification in Load() do not make it out to local variables so overwrite them
                fields = mini.Entities.First().Fields;
                entity = mini.Entities.First();

                var c          = new PipelineContext(ctx.Resolve <IPipelineLogger>(), mini, entity);
                var transforms = new List <ITransform> {
                    new Transforms.System.DefaultTransform(c, fields)
                };
                transforms.AddRange(TransformFactory.GetTransforms(ctx, c, fields));

                // make an input out of the parameters
                var input = new List <IRow>();
                var row   = new MasterRow(len);
                for (var i = 0; i < len; i++)
                {
                    row[fields[i]] = preProcess.Parameters[i].Value;
                }

                input.Add(row);

                var output = transforms.Aggregate(input.AsEnumerable(), (rows, t) => t.Operate(rows)).ToList().First();

                for (var i = 0; i < len; i++)
                {
                    var parameter = preProcess.Parameters[i];
                    parameter.Value = output[fields[i]].ToString();
                    parameter.T     = string.Empty;
                    parameter.Transforms.Clear();
                }

                return(preProcess.Serialize());
            }

            var context = new PipelineContext(ctx.Resolve <IPipelineLogger>(), mini, entity);

            foreach (var error in mini.Errors())
            {
                context.Error(error);
            }

            return(null);
        }