public dtoNodeDetails(liteCommunityInfo community, Int32 idCommunity, Dictionary <Int32, long> enrolledUsers = null, List <liteCommunityConstraint> constraints = null, liteSubscriptionInfo enrollment = null)
        {
            Permissions     = new dtoCommunityNodeItemPermission();
            NotAvailableFor = new List <EnrollingStatus>();
            Constraints     = new List <dtoCommunityConstraint>();
            Community       = new lm.Comol.Core.Dashboard.Domain.dtoCommunityItem(community, idCommunity);
            if (enrollment != null)
            {
                LastAccessOn = enrollment.LastAccessOn;
                EnrolledOn   = enrollment.SubscribedOn;
            }
            if (AvailableSeats <= 0)
            {
                NotAvailableFor.Add(EnrollingStatus.Seats);
            }
            if (!Community.AllowSubscription)
            {
                NotAvailableFor.Add(EnrollingStatus.Unavailable);
            }
            else
            {
                if (!Community.IsAvailableForSubscriptionStartOn(DateTime.Now))
                {
                    NotAvailableFor.Add(EnrollingStatus.StartDate);
                }
                else if (!Community.IsAvailableForSubscriptionEndOn(DateTime.Now))
                {
                    NotAvailableFor.Add(EnrollingStatus.EndDate);
                }
            }

            if (enrolledUsers != null && enrolledUsers.ContainsKey(idCommunity))
            {
                EnrolledUsers = enrolledUsers[idCommunity];
                if (AvailableSeats <= 0)
                {
                    NotAvailableFor.Add(EnrollingStatus.Seats);
                }
            }
        }
 public dtoNodeDetails()
 {
     Permissions     = new dtoCommunityNodeItemPermission();
     NotAvailableFor = new List <EnrollingStatus>();
     Constraints     = new List <dtoCommunityConstraint>();
 }