BattleInfoPlugin.Models.Repositories.EnemyDataProvider.Merge C# (CSharp) Method

Merge() public method

public Merge ( string path ) : bool
path string
return bool
        public bool Merge(string path)
        {
            if (!File.Exists(path)) return false;

            lock (mergeLock)
            {
                var obj = path.Deserialize<EnemyData>();
                if (obj == null) return false;

                this.EnemyData.EnemyDictionary = this.EnemyData.EnemyDictionary.Merge(obj.EnemyDictionary);
                this.EnemyData.EnemyFormation = this.EnemyData.EnemyFormation.Merge(obj.EnemyFormation);
                this.EnemyData.EnemySlotItems = this.EnemyData.EnemySlotItems.Merge(obj.EnemySlotItems);
                this.EnemyData.EnemyUpgraded = this.EnemyData.EnemyUpgraded.Merge(obj.EnemyUpgraded);
                this.EnemyData.EnemyParams = this.EnemyData.EnemyParams.Merge(obj.EnemyParams);
                this.EnemyData.EnemyLevels = this.EnemyData.EnemyLevels.Merge(obj.EnemyLevels);
                this.EnemyData.EnemyHPs = this.EnemyData.EnemyHPs.Merge(obj.EnemyHPs);
                this.EnemyData.EnemyNames = this.EnemyData.EnemyNames.Merge(obj.EnemyNames);
                this.EnemyData.EnemyEncounterRank = this.EnemyData.EnemyEncounterRank.Merge(obj.EnemyEncounterRank);
                this.EnemyData.EnemyRank = this.EnemyData.EnemyRank.Merge(obj.EnemyRank);
                this.EnemyData.MapEnemyData = this.EnemyData.MapEnemyData.Merge(obj.MapEnemyData, (v1, v2) => v1.Merge(v2, (h1, h2) => h1.Merge(h2)));
                this.EnemyData.MapCellBattleTypes = this.EnemyData.MapCellBattleTypes.Merge(obj.MapCellBattleTypes, (v1, v2) => v1.Merge(v2));
                this.EnemyData.MapRoute = this.EnemyData.MapRoute.Merge(obj.MapRoute, (v1, v2) => v1.Merge(v2));
                this.EnemyData.MapCellDatas = this.EnemyData.MapCellDatas.Merge(obj.MapCellDatas, (v1, v2) => v1.Merge(v2, x => x.No));

                this.RemoveDuplicate();
                this.Save();
            }
            return true;
        }