// Returns non-null List of ServiceInstanceInfo objects.. empty list if null input.
        // No throw
        public static ReadOnlyCollection <ServiceEntity> GetAllServiceInstances(this ApplicationEntityList applications)
        {
            var services = new List <ServiceEntity>();

            if (applications != null)
            {
                foreach (var app in applications)
                {
                    services.AddRange(app.ServiceList);
                }
            }

            return(services.AsReadOnly());
        }
        // ActiveApplicationsInfo
        public static int GetPartitionCount(this ApplicationEntityList applications, Uri serviceName)
        {
            IEnumerable <ServiceEntity> services = applications.GetAllServiceInstances();

            foreach (var svc in services)
            {
                if (svc.ServiceName() == serviceName)
                {
                    return(svc.PartitionList.Count());
                }
            }

            return(0);
        }
 // No throw
 // Returns non-null.
 public static ReadOnlyCollection <Uri> GetAllServiceNames(this ApplicationEntityList applications)
 {
     // As applications.GetAllServiceInstances() returns non-null results, it should always return non-null.
     return(applications.GetAllServiceInstances().Select(svc => svc.Service.ServiceName).ToList().AsReadOnly());
 }