示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }