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); }
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]); } }
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); }
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); }