using System; using Sockeye.Models; namespace Sockeye.Biz { public class SockTypeId : System.Object { private long _id; private SockType _sockType; public long ObjectId { get { return _id; } } public SockType SockType { get { return _sockType; } } public int ATypeAsInt { get { return (int)_sockType; } } public SockTypeId(SockType aType, long Id) { _id = Id; _sockType = aType; } [Newtonsoft.Json.JsonConstructor] public SockTypeId(string sAType, string sId) { _id = long.Parse(sId); int nType = int.Parse(sAType); if (!SockTypeExists(nType)) _sockType = SockType.NoType; else _sockType = (SockType)Enum.Parse(typeof(SockType), sAType); } public bool Equals(SockTypeId x, SockTypeId y) { //Check whether the compared objects reference the same data. if (Object.ReferenceEquals(x, y)) return true; //Check whether any of the compared objects is null. if (Object.ReferenceEquals(x, null) || Object.ReferenceEquals(y, null)) return false; //Check whether the products' properties are equal. return x.ObjectId == y.ObjectId && x.SockType == y.SockType; } public bool IsEmpty { get { return (_sockType == SockType.NoType) || (_id == 0); } } /// /// Check if the numeric or name type value is an actual enum value /// /// /// public bool SockTypeExists(int enumNumber) { return Enum.IsDefined(typeof(SockType), enumNumber); } //Custom attribute checking /// /// Is object a core biz object /// /// public bool IsCoreBizObject { get { return this.SockType.HasAttribute(typeof(CoreBizObjectAttribute)); } } }//eoc }//eons