protected void BindPopupApps() { RdsCollection collection = ES.Services.RDS.GetRdsCollection(PanelRequest.CollectionID); List <StartMenuApp> apps = ES.Services.RDS.GetAvailableRemoteApplications(PanelRequest.ItemID, collection.Name).ToList(); var sessionHosts = ES.Services.RDS.GetRdsCollectionSessionHosts(PanelRequest.CollectionID); var addedApplications = GetApps(); var aliases = addedApplications.Select(p => p.Alias); apps = apps.Where(x => !aliases.Contains(x.Alias)).ToList(); if (Direction == SortDirection.Ascending) { apps = apps.OrderBy(a => a.DisplayName).ToList(); Direction = SortDirection.Descending; } else { apps = apps.OrderByDescending(a => a.DisplayName).ToList(); Direction = SortDirection.Ascending; } var requiredParams = addedApplications.Select(a => a.RequiredCommandLine.ToLower()); foreach (var host in sessionHosts) { if (!requiredParams.Contains(string.Format("/v:{0}", host.ToLower()))) { var fullRemote = new StartMenuApp { DisplayName = string.Format("Full Desktop - {0}", host.ToLower()), FilePath = "c:\\windows\\system32\\mstsc.exe", RequiredCommandLine = string.Format("/admin /v:{0}", host.ToLower()) }; var sessionHost = collection.Servers.Where(s => s.FqdName.Equals(host, StringComparison.CurrentCultureIgnoreCase)).First(); if (sessionHost != null) { fullRemote.DisplayName = string.Format("Full Desktop - {0}", sessionHost.Name.ToLower()); } fullRemote.Alias = fullRemote.DisplayName.Replace(" ", ""); if (apps.Count > 0) { apps.Insert(0, fullRemote); } else { apps.Add(fullRemote); } } } gvPopupApps.DataSource = apps; gvPopupApps.DataBind(); }
protected static int CompareAccount(StartMenuApp app1, StartMenuApp app2) { return(string.Compare(app1.DisplayName, app2.DisplayName)); }