public IEnumerable <object> GetAllUsers() { using (var context = new MainDBEntities()) { if (this.GetType() == typeof(AdminAccess)) { List <User> users = context.Users.ToList(); //Map all schools to AdminSchoolViewModel objects ApplicationSpecificMapper mapper = new ApplicationSpecificMapper(); //Convert objects from dom model to view model IEnumerable <object> user_enum = mapper.MapAll(users, typeof(AdminUserViewModel)).Cast <object>().AsEnumerable(); //return enum of view models return(user_enum); } else if (this.GetType() == typeof(AmbassadorAccess)) { List <User> users = context.Users.ToList(); //Map all schools to AdminSchoolViewModel objects ApplicationSpecificMapper mapper = new ApplicationSpecificMapper(); //Convert objects from dom model to view model IEnumerable <object> user_enum = mapper.MapAll(users, typeof(AmbassUserViewModel)).Cast <object>().AsEnumerable(); //return enum of view models return(user_enum); } else { //Gracefully deal with error *** return(null); } } }
public IEnumerable <object> GetAllActiveProjects() { using (var context = new MainDBEntities()) { if (this.GetType() == typeof(AdminAccess)) { var temp = (from assignment in context.ProjectAssignments join project in context.Projects on assignment.ProjectID equals project.ProjectID into first from first_beg in first.DefaultIfEmpty() join school in context.Schools on assignment.SchoolID equals school.SchoolID into second from second_beg in second.DefaultIfEmpty() join ambassador in context.Users on second_beg.Username equals ambassador.Username into third from third_beg in third.DefaultIfEmpty() select new { ProjectAssignId = assignment.ProjectAssignID, ProjectID = assignment.ProjectID, SchoolID = assignment.SchoolID, ProjectName = first_beg.ProjectName, SchoolName = second_beg.SchoolName, ProgressStatus = assignment.ProgressStatus, Username = third_beg.Username, Email = third_beg.Email }); //Convert into necessary view model ApplicationSpecificMapper mapper = new ApplicationSpecificMapper(); IEnumerable <object> assignment_list = (IEnumerable <object>)(mapper.MapAll(temp, typeof(AdminActiveProjectViewModel))); //Return view models return(assignment_list); } else if (this.GetType() == typeof(AmbassadorAccess)) { //Modify to make ambassador specific *** var temp = (from assignment in context.ProjectAssignments join project in context.Projects on assignment.ProjectID equals project.ProjectID into first from first_beg in first.DefaultIfEmpty() join school in context.Schools on assignment.SchoolID equals school.SchoolID into second from second_beg in second.DefaultIfEmpty() join ambassador in context.Users on second_beg.Username equals ambassador.Username into third from third_beg in third.DefaultIfEmpty() select new { ProjectAssignId = assignment.ProjectAssignID, ProjectID = assignment.ProjectID, SchoolID = assignment.SchoolID, ProjectName = first_beg.ProjectName, SchoolName = second_beg.SchoolName, ProgressStatus = assignment.ProgressStatus, Username = third_beg.Username, Email = third_beg.Email }); //Convert into necessary view model ApplicationSpecificMapper mapper = new ApplicationSpecificMapper(); IEnumerable <AmbassActiveProjectViewModel> vm_assignment_list = (IEnumerable <AmbassActiveProjectViewModel>)(mapper.MapAll(temp, typeof(AmbassActiveProjectViewModel))).Cast <AmbassActiveProjectViewModel>(); //Eliminate archived ideas for ambassador access vm_assignment_list = vm_assignment_list.Where(x => x.ProgressStatus != ProjectStatus.ARCHIVED); //Box items for passage into controller IEnumerable <object> ob_assignment_list = (IEnumerable <object>)vm_assignment_list.Cast <object>(); //Return view models return(ob_assignment_list); } else { //Error -- Access type of object not recognized return(null); } } }
//Func Desc: Used to get the current list of projects. // Input: None. // Output: An IEnumerable< T = appropriate view model >, or null public IEnumerable <object> GetProjectList() { using (var context = new MainDBEntities()) { //Create mapper ApplicationSpecificMapper mapper = new ApplicationSpecificMapper(); IEnumerable <object> project_list; IEnumerable <object> view_model_list; //Check the type of the calling object and vary reaction if (this.GetType() == typeof(AdminAccess)) { //If admin, use admin project view model //Get project list project_list = (IEnumerable <object>)context.Projects.ToList().Cast <object>(); try { //Map list to corresponding view model view_model_list = mapper.MapAll(project_list, typeof(AdminProjectViewModel)).Cast <AdminProjectViewModel>(); } catch { view_model_list = null; } if (view_model_list == null) { return(null); } //Return list of view models return((IEnumerable <object>)view_model_list.Cast <AdminProjectViewModel>().GetEnumerator()); } else if (this.GetType() == typeof(AmbassadorAccess)) { //If ambassador, use ambass project view model //Get project list project_list = (IEnumerable <object>)context.Projects.ToList().Cast <object>(); IEnumerable <AmbassProjectViewModel> temp; try { //Map list to corresponding view model temp = (IEnumerable <AmbassProjectViewModel>)mapper.MapAll(project_list, typeof(AmbassProjectViewModel)).Cast <AmbassProjectViewModel>(); } catch { temp = null; } if (temp == null) { return(null); } //Eliminate archived ideas for ambassador view_model_list = temp.Where(x => x.IsArchived == false).Cast <object>(); //Return list of view models return((IEnumerable <object>)view_model_list.Cast <AmbassProjectViewModel>().GetEnumerator()); } else if (this.GetType() == typeof(ContributorAccess)) { //If contributor, use contributor project view model //Get project list project_list = (IEnumerable <object>)context.Projects.ToList().Cast <object>(); IEnumerable <ContributorProjectViewModel> temp; try { //Map list to corresponding view model temp = (IEnumerable <ContributorProjectViewModel>)mapper.MapAll(project_list, typeof(ContributorProjectViewModel)).Cast <ContributorProjectViewModel>(); } catch { temp = null; } if (temp == null) { return(null); } //Eliminate archived ideas for contributor view_model_list = temp.Where(x => x.IsArchived == false).Cast <object>(); //Return list of view models return((IEnumerable <object>)view_model_list.Cast <ContributorProjectViewModel>().GetEnumerator()); } else if (this.GetType() == typeof(DefaultAccess)) { //If default, use default project view model //Get project list project_list = (IEnumerable <object>)context.Projects.ToList().Cast <object>(); //Map list to corresponding view model IEnumerable <ProjectViewModel> temp; try { temp = (IEnumerable <ProjectViewModel>)mapper.MapAll(project_list, typeof(ProjectViewModel)).Cast <ProjectViewModel>(); } catch { temp = null; } if (temp == null) { return(null); } //Eliminate archived ideas for default view_model_list = temp.Where(x => x.IsArchived == false).Cast <object>(); //Return list of view models return((IEnumerable <object>)view_model_list.Cast <ProjectViewModel>().GetEnumerator()); } else { //Invalid access type Debug.WriteLine("\n\n***** " + "Access object type wasn't recognized during GetProject(). " + "ERROR IN: CommerceIdeaBank.DatabaseInterface.BusinessLogic.ContributorAccess GetProject()" + "*****\n\n"); //Gracefully indicate error return(null); } } }