public List <DlcMatch <OfficialDlcItem, DlcTuningItem> > CheckDlcLists(DlcOwnershipInput input)
        {
            var officialDlcList = GetOfficialDlcList(input.OfficialDlcSource, input.OfficialDlcSongNodeSelector, input.RemapOfficialEntries);
            var tuningDlcList   = GetTuningDlcList(input.TuningSource);

            var stringCleaner      = new StringCleaner(true, true, true, true);
            var dlcMatchCalculator = new DlcMatchCalculator(stringCleaner);
            var dlcMatches         = dlcMatchCalculator.GetDlcMatches(officialDlcList.DlcList, tuningDlcList.DlcList);

            return(dlcMatches);
        }
        public DlcOwnership CalculateOwnership(DlcOwnershipInput input)
        {
            var officialDlcList = GetOfficialDlcList(input.OfficialDlcSource, input.OfficialDlcSongNodeSelector, input.RemapOfficialEntries);
            var existingDlcList = GetExistingDlcList(input.DlcFolder2014, input.DlcFolder2012);

            var stringCleaner          = new StringCleaner(true, true, false, false);
            var dlcSortCalculator      = new DlcSortCalculator(stringCleaner);
            var dlcMatchCalculator     = new DlcMatchCalculator(stringCleaner);
            var dlcOwnershipCalculator = new DlcOwnershipCalculator(dlcSortCalculator, dlcMatchCalculator);

            return(dlcOwnershipCalculator.Calculate(officialDlcList, existingDlcList));
        }
 public DlcListWriter(StringCleaner stringCleaner)
 {
     _stringCleaner = stringCleaner;
 }
 public DlcSortCalculator(StringCleaner stringCleaner)
 {
     _stringCleaner = stringCleaner;
 }
 public DlcMatchCalculator(StringCleaner stringCleaner)
 {
     _stringCleaner  = stringCleaner;
     _sortCalculator = new DlcSortCalculator(_stringCleaner);
 }