コード例 #1
0
        private void AddMoiveDetails(string s, ProductionDesigner localRecord)
        {
            var mb = new MovieBase();

            FixMovieNames(mb, s);
            localRecord.MovieBases.Add(mb);
        }
コード例 #2
0
 public ProdDesignerParser(string sourceFile)
 {
     SourceFile  = sourceFile;
     RegularList = new List <string>
     {
         @".*\t\w*.*\(.*\).*"
     };
     ProductionDesigners = new Dictionary <string, ProductionDesigner>();
     PreHeaderLine1      = "Name			Titles";
     PreHeaderLine2      = "----			------";
     _record             = new ProductionDesigner();
 }
コード例 #3
0
        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);
                    }
                }
            }
        }