/// <summary> /// Deep compare /// </summary> /// <param name="obj"></param> /// <returns></returns> public override bool Equals(object obj) { if (obj.GetType() != typeof(ModAction)) { return(false); } ModAction ma = (ModAction)obj; if (!Type.Equals(ma.Type)) { return(false); } if (!Body.Equals(ma.Body)) { return(false); } if (!AfterComment.Equals(ma.AfterComment)) { return(false); } if (!BeforeComment.Equals(ma.BeforeComment)) { return(false); } if (!(Modifier == null && ma.Modifier == null)) { if (!Modifier.Equals(ma.Modifier)) { return(false); } } // ignore start line return(true); }
/// <summary> /// Deep Compare /// </summary> /// <param name="obj"></param> /// <returns></returns> public override bool Equals(object obj) { if (obj.GetType() != typeof(ModHeader)) { return(false); } ModHeader mh = (ModHeader)obj; if (!Title.Equals(mh.Title)) { return(false); } if (!Authors.Equals(mh.Authors)) { return(false); } if (!Description.Equals(mh.Description)) { return(false); } if (!Version.Equals(mh.Version)) { return(false); } if (!InstallationLevel.Equals(mh.InstallationLevel)) { return(false); } if (!InstallationTime.Equals(mh.InstallationTime)) { return(false); } if (!SuggestedInstallTime.Equals(mh.SuggestedInstallTime)) { return(false); } if (FilesToEdit.Count != mh.FilesToEdit.Count) { return(false); } for (int i = 0; i < FilesToEdit.Count; i++) { if (!FilesToEdit[i].Equals(mh.FilesToEdit[i])) { return(false); } } if (IncludedFiles.Count != mh.IncludedFiles.Count) { return(false); } for (int i = 0; i < IncludedFiles.Count; i++) { if (!IncludedFiles[i].Equals(mh.IncludedFiles[i])) { return(false); } } // ignore generator if (!AuthorNotes.Equals(mh.AuthorNotes)) { return(false); } if (!EasyModCompatibility.Equals(mh.EasyModCompatibility)) { return(false); } if (!History.Equals(mh.History)) { return(false); } if (!PhpbbVersion.Equals(mh.PhpbbVersion)) { return(false); } if (Meta.Count != mh.Meta.Count) { return(false); } foreach (string key in Meta.Keys) { if (!mh.Meta.ContainsKey(key)) { return(false); } if (!Meta[key].Equals(mh.Meta[key])) { return(false); } } if (License != null) { if (!License.Equals(mh.License)) { return(false); } } else { if (mh.License != null && mh.License != "") { return(false); } } return(true); }