Korero – Rev 1

Subversion Repositories:
Rev:
using System;

namespace Korero.Database
{
    public class DatabaseMessage : IEquatable<DatabaseMessage>
    {
        #region Public Enums, Properties and Fields

        public string FirstName { get; }

        public string LastName { get; }

        public string Message { get; }

        public DateTime Time { get; }

        #endregion

        #region Constructors, Destructors and Finalizers

        public DatabaseMessage(string firstName, string lastName, string message, DateTime time)
        {
            FirstName = firstName;
            LastName = lastName;
            Message = message;
            Time = time;
        }

        #endregion

        #region Interface

        public bool Equals(DatabaseMessage other)
        {
            if (ReferenceEquals(null, other))
            {
                return false;
            }

            if (ReferenceEquals(this, other))
            {
                return true;
            }

            return FirstName == other.FirstName && LastName == other.LastName && Message == other.Message &&
                   Time.Equals(other.Time);
        }

        #endregion

        #region Public Overrides

        public override bool Equals(object obj)
        {
            if (ReferenceEquals(null, obj))
            {
                return false;
            }

            if (ReferenceEquals(this, obj))
            {
                return true;
            }

            if (obj.GetType() != GetType())
            {
                return false;
            }

            return Equals((DatabaseMessage) obj);
        }

        public override int GetHashCode()
        {
            unchecked
            {
                var hashCode = FirstName != null ? FirstName.GetHashCode() : 0;
                hashCode = hashCode * 397 ^ (LastName != null ? LastName.GetHashCode() : 0);
                hashCode = hashCode * 397 ^ (Message != null ? Message.GetHashCode() : 0);
                hashCode = hashCode * 397 ^ Time.GetHashCode();
                return hashCode;
            }
        }

        #endregion
    }
}

Generated by GNU Enscript 1.6.5.90.