[Nugsoft-commits] nugsoft/nUGSoft.Entities Person.cs,1.4,1.5
Brought to you by:
javery,
jimholmesoh
|
From: Jim H. <jim...@us...> - 2005-12-04 04:00:34
|
Update of /cvsroot/nugsoft/nugsoft/nUGSoft.Entities In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3738/nUGSoft.Entities Modified Files: Person.cs Log Message: Fixed GetUnapprovedMembers, changed it to return IList<Person>. Added UpdatePersonList(). Added Equals() and ToString() Index: Person.cs =================================================================== RCS file: /cvsroot/nugsoft/nugsoft/nUGSoft.Entities/Person.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Person.cs 22 Nov 2005 21:20:09 -0000 1.4 --- Person.cs 4 Dec 2005 04:00:22 -0000 1.5 *************** *** 1,8 **** --- 1,11 ---- using System; using System.Collections; + using System.Collections.Generic; // generated using NHibernate.class.cst, see http://www.intesoft.net/nhibernate for notes and latest version using nUGSoft.Entities.Validation; + using System.IO; + using System.Text; namespace nUGSoft.Entities *************** *** 34,38 **** private IList _events; private IList _eventsEventCreatorID; ! private IList _personTypes; private IList _posts; private IList _subscriptionLink; --- 37,41 ---- private IList _events; private IList _eventsEventCreatorID; ! private IList _personTypes; private IList _posts; private IList _subscriptionLink; *************** *** 313,322 **** /// </summary> /// <returns>IList of members needing approval.</returns> ! public static IList GetUnapprovedMembers() { ! string hql = "from Person pers where pers.PersonTypes.TypeName = 'Test'"; return Person.Find<Person>(hql); } #endregion } --- 316,479 ---- /// </summary> /// <returns>IList of members needing approval.</returns> ! public static IList<Person> GetUnapprovedMembers() { ! PersonType member = PersonType.GetMemberRecord(); ! int id = member.Id; ! ! string hql = "from Person pers where " + id + " in elements(pers.PersonTypes)" + ! " and pers.Approved = 0"; return Person.Find<Person>(hql); } + + public static void UpdatePersonList(IList list) + { + foreach (Person pers in list) + { + pers.Update(); + } + } + + /// <summary> + /// Compares this BE to another. + /// </summary> + /// <param name="right">Business Entity to compare.</param> + /// <returns>True if equal, false if not.</returns> + // NOTE: Adapted from Bill Wagner's "Effective C#". + public override bool Equals(object right) + { + //check null + if (right == null) + return false; + + if (object.ReferenceEquals(this, right)) + return true; + + if (this.GetType() != right.GetType()) + return false; + return ComparePersonMembers(this, right as Person); + } + + /// <summary> + /// Returns a text representation of this entity. Note that Photo is + /// not changed into a textual string, rather only its system type is + /// returned. + /// </summary> + /// <returns>A string containing each member of this entity.</returns> + public override string ToString() + { + TextWriter w = new StringWriter(); + string nl = w.NewLine; + StringBuilder sb = new StringBuilder(); + sb.Append(Id.ToString()); + sb.Append(nl); + sb.Append(FName.ToString()); + sb.Append(nl); + sb.Append(LName.ToString()); + sb.Append(nl); + sb.Append(EMail.ToString()); + sb.Append(nl); + sb.Append(DateJoined.ToString()); + sb.Append(nl); + sb.Append(Approved.ToString()); + sb.Append(nl); + sb.Append(HowFound.ToString()); + sb.Append(nl); + sb.Append(PrimaryPhone.ToString()); + sb.Append(nl); + sb.Append(AltPhone.ToString()); + sb.Append(nl); + sb.Append(TopicsList.ToString()); + sb.Append(nl); + sb.Append(WebsiteURL.ToString()); + sb.Append(nl); + sb.Append(BlogURL.ToString()); + sb.Append(nl); + sb.Append(Photo.ToString()); + sb.Append(nl); + sb.Append(Bio.ToString()); + sb.Append(nl); + sb.Append(UnmoderatedEvent.ToString() + nl); + sb.Append(nl); + sb.Append(UnmoderatedPost.ToString()); + + return sb.ToString(); + } + + + #endregion + + #region Private Methods + /// <summary> + /// Compares each member of the Person for equality. + /// </summary> + /// <param name="left">Person to compare.</param> + /// <param name="right">Person to compare.</param> + /// <returns>True if all members are equal, otherwise false.</returns> + private bool ComparePersonMembers(Person left, Person right) + { + if (left.FName != right.FName) + return false; + if (left.LName != right.LName) + return false; + if (left.EMail != right.EMail) + return false; + if (left.DateJoined != right.DateJoined) + return false; + if (left.Approved != right.Approved) + return false; + if (left.HowFound != right.HowFound) + return false; + if (left.PrimaryPhone != right.PrimaryPhone) + return false; + if (left.AltPhone != right.AltPhone) + return false; + if (left.TopicsList != right.TopicsList) + return false; + if (left.WebsiteURL != right.WebsiteURL) + return false; + if (left.BlogURL != right.BlogURL) + return false; + + + /* ************************** + byte array compares + *************************** */ + //check nulls first + if (left.Photo == null && right.Photo == null) { return true; } + if ((left.Photo == null && right.Photo != null) || + (right.Photo == null && left.Photo != null)) + { return false; } + //compare lengths + if (left.Photo.Length != right.Photo.Length) + return false; + + int i = 0; + //compare each array cell + while (i < left.Photo.Length && + (left.Photo[i] == right.Photo[i])) + { + i++; + } + //if all cells were equal, i is same as length + if (i != left.Photo.Length) + return false; + + if (left.Bio != right.Bio) + return false; + if (left.UnmoderatedEvent != right.UnmoderatedEvent) + return false; + if (left.UnmoderatedPost != right.UnmoderatedPost) + return false; + //if (!left.PersonTypes.Equals(right.PersonTypes)) + // return false; + + if (!PersonType.CompareLists(left.PersonTypes, right.PersonTypes)) + return false; + + + return true; + } + #endregion } |