/// <summary> /// Equality method between two objects of the same type. /// Because the Equals method is strongly typed by generic constraints, /// it is not necessary to test for the correct object type. /// For safety we just want to match on business key value - in this case the fields /// that cannot be different between the two objects if they are supposedly equal. /// </summary> /// <param name="obj">The other object of this type that we are testing equality with</param> /// <returns></returns> public virtual bool Equals(ApplicationInformation <TIdType> obj) { if (obj != null) { // Transient objects are not considered as equal if (IsTransient() && obj.IsTransient()) { return(false); } else { // For safe equality we need to match on business key equality. // Base domain entities are functionally equal if their key and metadata and tags are equal. // Subclasses should extend to include their own enhanced equality checks, as required. if (TenantId != null) { return(Id.Equals(obj.Id) && Culture.Equals(obj.Culture) && ApplicationKey.Equals(obj.ApplicationKey) && Name.Equals(obj.Name)); } else { return(Id.Equals(obj.Id) && Culture.Equals(obj.Culture) && ApplicationKey.Equals(obj.ApplicationKey) && Name.Equals(obj.Name) && TenantId.Equals(obj.TenantId)); } } } return(false); }
public LaunchPadApplication(int?tenantId) : base() { TenantId = tenantId; AppInfo = new ApplicationInformation <TIdType>(tenantId); TenantInfo = new List <TenantInformation <TIdType> >(); Modules = new List <Module <TIdType, TEntityIdType> >(); }
/// <summary> /// Comparison method between two objects of the same type, used for sorting. /// Because the CompareTo method is strongly typed by generic constraints, /// it is not necessary to test for the correct object type. /// </summary> /// <param name="other">The other object of this type we are comparing to</param> /// <returns></returns> public virtual int CompareTo(ApplicationInformation <TIdType> other) { return(other == null ? 1 : String.Compare(Name, other.Name, StringComparison.InvariantCulture)); }
public LaunchPadApplication(int?tenantId, TIdType id, string cultureName) : base(id, cultureName) { AppInfo = new ApplicationInformation <TIdType>(tenantId); TenantInfo = new List <TenantInformation <TIdType> >(); Modules = new List <Module <TIdType, TEntityIdType> >(); }