Esempio n. 1
0
        protected void DisplayProjectList()
        {
            var availableProjects = new List <ListItem>();

            using (var Dc = new NatalieDbDataContext())
            {
                var currUser = (from u in Dc.Users
                                where u.EmailAddress == Email
                                select u).FirstOrDefault();

                userproject["UserID"] = currUser.ID.ToString();

                var userName = currUser.FullName;
                var userRole = currUser.IsAdmin;

                var existingDatabases = Dc.ExecuteQuery <string>("select name from sys.databases").ToList();

                IEnumerable <UserProject> up = currUser.UserProjects;
                IEnumerable <Project>     p  = Dc.Projects;
                if (!userRole)
                {
                    up = up.Where(dp => dp.GroupID == Group.ExportAdminGroup || dp.GroupID == Group.ExportUserGroup &&
                                  existingDatabases.Contains(dp.Project.DatabaseName))
                         .Select(dp => dp);
                    availableProjects = up.Select(dp => new ListItem {
                        Text = dp.Project.ClientDescription + " " + dp.Project.SetName
                    }).Distinct().ToList();
                }

                else
                {
                    p = p.Where(dp => existingDatabases.Contains(dp.DatabaseName))
                        .Select(dp => dp);
                    availableProjects = p.Select(dp => new ListItem {
                        Text = dp.ClientDescription + " " + dp.SetName
                    }).Distinct().ToList();
                }

                ddlProject.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem {
                    Text = "--Select a Model--", Value = string.Empty
                });
                foreach (ListItem ap in availableProjects)
                {
                    ddlProject.Items.Add(new DevExpress.Web.ASPxEditors.ListEditItem {
                        Text = ap.ToString(), Value = ap.ToString()
                    });
                }
            }
        }