private void AddMoiveDetails(string s, ProductionDesigner localRecord) { var mb = new MovieBase(); FixMovieNames(mb, s); localRecord.MovieBases.Add(mb); }
public ProdDesignerParser(string sourceFile) { SourceFile = sourceFile; RegularList = new List <string> { @".*\t\w*.*\(.*\).*" }; ProductionDesigners = new Dictionary <string, ProductionDesigner>(); PreHeaderLine1 = "Name Titles"; PreHeaderLine2 = "---- ------"; _record = new ProductionDesigner(); }
protected override void PopulateRecords(IEnumerable <Match> lines) { foreach (var line in lines) { var scan = new Regex(@"^\s\s*"); var artistLine = scan.Match(UtfStr(line)); if (!artistLine.Success) //new Artist { if (!string.IsNullOrWhiteSpace(_record.Name)) { var mb = _record.MovieBases.OrderBy(y => y.Year).ToList(); _record.MovieBases = mb; if (ProductionDesigners.ContainsKey(_record.Name)) { var oldRcd = ProductionDesigners.First(m => m.Key.Equals(_record.Name)).Value; foreach (var movieBase in _record.MovieBases) { oldRcd.MovieBases.Add(movieBase); } } else { ProductionDesigners.Add(_record.Name, _record); } } _record = new ProductionDesigner(); var utfStr = UtfStr(line); var fields = utfStr.Split('\t').Where(v => v != "").ToArray(); if (fields.Length > 0) { _record.Name = fields[0].Trim(); } if (fields.Length >= 2) { AddMoiveDetails(fields[1], _record); } } else { foreach (var field in UtfStr(line).Split('\t').Where(v => v != "").ToArray()) { AddMoiveDetails(field, _record); } } } }