//[ValidateAntiForgeryToken] ///<summary> /// Admin view all absences by all employees /// </summary> /// <returns></returns> public ActionResult ViewAllAbsenceEntries() { ActionResult oResponse = null; var userPO = (IUserPO)Session["UserModel"]; var viewAllAbsenceEntries = new AbsenceViewModel(); // User can view all absences if Admin if (userPO.Email != null && userPO.RoleID_FK == (int)RoleEnum.Administrator) { try { // Calls to retrieve all absences from data access var allAbsences = PointsDataAccess.ViewAllAbsences(); var allTeams = _TeamDataAccess.GetAllTeams(); // Retrieve widget values var bestStandingTeam = _TeamBusinessLogic.QueryBestStandingTeam(TeamMapper.MapListOfDOsToListOfBOs(allTeams), allAbsences); var bottomStandingTeam = _TeamBusinessLogic.QueryWorstStandingTeam(TeamMapper.MapListOfDOsToListOfBOs(allTeams), allAbsences); var teamRanker = _TeamBusinessLogic.QueryTeamRanker(TeamMapper.MapListOfDOsToListOfBOs(allTeams), allAbsences); foreach (var item in teamRanker) { viewAllAbsenceEntries.TeamRanker.Team.Name = item.Item1; viewAllAbsenceEntries.TeamRanker.Absence.RunningTotal = item.Item2; } AssociateAdminValues(viewAllAbsenceEntries, bestStandingTeam, bottomStandingTeam, allAbsences); viewAllAbsenceEntries.User.RoleID_FK = userPO.RoleID_FK; viewAllAbsenceEntries.User.Email = userPO.Email; oResponse = View(viewAllAbsenceEntries); } catch (Exception ex) { ErrorLogger.LogError(ex, "ViewAllAbsenceEntries", "Maint"); viewAllAbsenceEntries.ErrorMessage = "Something went wrong retrieving the list of absences. Please try again."; oResponse = View(viewAllAbsenceEntries); } } else { // State was invalid redirect home oResponse = RedirectToAction("Index", "Home"); } return(oResponse); }
//[ValidateAntiForgeryToken] ///<summary> /// Retrieves all Teams by a given user(i.e. Service Manager with multiple teams) /// </summary> /// TODO: Remove the reference to this as ViewAllTeams has all three roles captured!!!! public ActionResult ViewTeamsByUserID(int userID) { ActionResult oResponse = null; var selectedUserTeams = new TeamViewModel(); var userPO = (IUserPO)Session["UserModel"]; if (ModelState.IsValid) { if (userPO.Email != null && userPO.RoleID_FK >= (int)RoleEnum.Administrator && userPO.RoleID_FK <= (int)RoleEnum.Service_Manager) { try { // Stores teams of user using their id var allTeams = _TeamDataAccess.GetAllSMTeamsByUserID(userID); // Retrieve lists of absences and users for LINQ var allAbsences = PointsDataAccess.ViewAllAbsences(); var allUsers = _UserDataAccess.GetAllUsers(); // TODO: Fix LINQ query or create SQL Join //var topEmployee = _TeamBusinessLogic.QueryBestStandingTeamMember(allTeams, allAbsences, allUsers, userPO.RoleID_FK); // Maps Team from data objects to presentation objects selectedUserTeams.ListOfPos = TeamMapper.MapListOfDOsToListOfPOs(allTeams); selectedUserTeams.ListOfPos.FirstOrDefault(team => team.Name != null); oResponse = View(selectedUserTeams); } catch (Exception ex) { ErrorLogger.LogError(ex, "ViewTeamsByUserID", "Maint"); selectedUserTeams.ErrorMessage = "There was an issue retrieving the user's team! Please try again."; oResponse = View(selectedUserTeams); } } else { oResponse = View(selectedUserTeams); } } else { oResponse = View(selectedUserTeams); } return(oResponse); }
///<summary> /// Views all teams(admin) /// </summary> public ActionResult TestViews() { ActionResult oResponse = null; var ViewAllTeamsVM = new TeamViewModel(); var userPO = (IUserPO)Session["UserModel"]; // Ensures authenticated if (userPO.Email != null && userPO.RoleID_FK == (int)RoleEnum.Administrator) { try { // Test for retrieves var allTeams = _TeamDataAccess.GetAllTeams(); var allSMTeams = _TeamDataAccess.GetAllSMTeams(); var team = _TeamDataAccess.GetTeamNameByID(5); var allSMTeamAbsences = _TeamDataAccess.GetAllSMTeamsByUserID(8); var viewUserAbsence = PointsDataAccess.GetAbsenceByID(4); var viewAllAbsences = PointsDataAccess.ViewAllAbsences(); var teamAbsences = PointsDataAccess.GetAbsencesByTeamID(5); var viewUserAbsences = PointsDataAccess.ViewAbsencesByUserID(8); // Maps from data objects to presentation objects. ViewAllTeamsVM.ListOfPos = TeamMapper.MapListOfDOsToListOfPOs(allTeams); oResponse = View(ViewAllTeamsVM); } catch (Exception ex) { ErrorLogger.LogError(ex, "ViewAllTeams", "Maint"); ViewAllTeamsVM.ErrorMessage = ""; // TODO: Add meaningful front end message } } else { oResponse = RedirectToAction("Index", "Home"); } return(oResponse); }
public ActionResult AdminDashboard() { // Emp Name-> Points-> Status // if ((UserPO)Session["UserModel"] != null) // { //var loggedUSer = (UserPO)Session["UserModel"]; List <DashboardViewModel> emps = AbsenceMapper.MapListOfPOsToListOfVMs(AbsenceMapper.MapListOfBOsToListOfPOs(AbsenceBusinessLogic.DetermineEmployeeAbsenceStatus(AbsenceMapper.MapListOfDOsToListOfBOs(PointsDataAccess.ViewAllAbsences())))); //TODO: Implement AutoMapper Mapper.Map<List<IAbsenceBO>, List<DashboardViewModel>>(AbsenceBusinessLogic.DetermineEmployeeAbsenceStatus(Mapper.Map<List<IAbsenceDO>,List<IAbsenceBO>>( PointsDataAccess.ViewAllAbsences()))); // } return(View(emps)); }
//[ValidateAntiForgeryToken] ///<summary> /// Views all absences by for a given team(TL, SM, Admin) /// </summary> /// <returns></returns> public ActionResult ViewAbsencesByTeamID(int teamID) { ActionResult oResponse = null; var selectedTeamAbsences = new AbsenceViewModel(); var userPO = (IUserPO)Session["UserModel"]; if (userPO.Email != null && userPO.RoleID_FK <= (int)RoleEnum.Team_Lead && userPO.RoleID_FK >= (int)RoleEnum.Administrator) { if (ModelState.IsValid) { try { // Stores list of absences by TeamID var absences = PointsDataAccess.GetAbsencesByTeamID(teamID); var teamName = _TeamDataAccess.GetTeamNameByID(teamID); // Retrieve lists for LINQ queries var allAbsences = PointsDataAccess.ViewAllAbsences(); var allTeams = _TeamDataAccess.GetAllTeams(); var allUsers = _UserDataAccess.GetAllUsers(); var topMemeberBOs = UserMapper.MapListOfDOsToListOfBOs(allUsers); // LINQ Queries var bestStandingTeam = _TeamBusinessLogic.QueryBestStandingTeam(TeamMapper.MapListOfDOsToListOfBOs(allTeams), allAbsences); var bottomStandingTeam = _TeamBusinessLogic.QueryWorstStandingTeam(TeamMapper.MapListOfDOsToListOfBOs(allTeams), allAbsences); var topEmployee = _TeamBusinessLogic.QueryBestStandingEmployee(allTeams, allAbsences, allUsers); var teamRanker = _TeamBusinessLogic.QueryTeamRanker(TeamMapper.MapListOfDOsToListOfBOs(allTeams), allAbsences); MapAdminObjects(selectedTeamAbsences, allTeams, absences); switch (userPO.RoleID_FK) { // Admin case 1: selectedTeamAbsences.ListOfPos = AbsenceMapper.MapListOfDOsToListOfPOs(absences); AssociateAdminValues(selectedTeamAbsences, teamRanker, teamName, bestStandingTeam, bottomStandingTeam, topEmployee); break; // Service Manager case 2: var teamAbsences = AbsenceMapper.MapListOfDOsToListOfPOs(absences); var smTeams = _TeamDataAccess.GetAllSMTeamsByUserID(userPO.UserID); selectedTeamAbsences.SMTeams = TeamMapper.MapListOfDOsToListOfPOs(smTeams); AssociateAdminValues(selectedTeamAbsences, teamRanker, teamName, bestStandingTeam, bottomStandingTeam, topEmployee); //selectedTeamAbsences.ListOfPos = teamAbsences; //selectedTeamAbsences.TopTeam.Team.Name = bestStandingTeam.Item1; //selectedTeamAbsences.TopTeam.Absence.Point = bestStandingTeam.Item2; //selectedTeamAbsences.BottomTeam.Team.Name = bottomStandingTeam.Item1; //selectedTeamAbsences.BottomTeam.Absence.Point = bottomStandingTeam.Item2; //selectedTeamAbsences.TopEmployee.Name = topEmployee.Item1; //selectedTeamAbsences.TopEmployee.Absence.Point = topEmployee.Item2; //MapServiceManagerObjects(selectedTeamAbsences, allTeams, absences); //AssociateServiceManagerObjects(selectedTeamAbsences, topEmployee); oResponse = View(selectedTeamAbsences); break; // Team Lead case 3: var tlAbsences = AbsenceMapper.MapListOfDOsToListOfPOs(absences); selectedTeamAbsences.ListOfPos = tlAbsences; AssociateAdminValues(selectedTeamAbsences, teamRanker, teamName, bestStandingTeam, bottomStandingTeam, topEmployee); //selectedTeamAbsences.TopTeam.Team.Name = bestStandingTeam.Item1; //selectedTeamAbsences.TopTeam.Absence.Point = bestStandingTeam.Item2; //selectedTeamAbsences.BottomTeam.Team.Name = bottomStandingTeam.Item1; //selectedTeamAbsences.BottomTeam.Absence.Point = bottomStandingTeam.Item2; //selectedTeamAbsences.TopEmployee.Name = topEmployee.Item1; //selectedTeamAbsences.TopEmployee.Absence.Point = topEmployee.Item2; oResponse = View(selectedTeamAbsences); break; default: break; } oResponse = View(selectedTeamAbsences); } catch (Exception ex) { ErrorLogger.LogError(ex, "ViewAbsencesByTeamID", "Maint"); selectedTeamAbsences.ErrorMessage = "Something went wrong retrieving the list of absences. Please try again."; oResponse = View(selectedTeamAbsences); } } else { oResponse = View(selectedTeamAbsences); } } return(oResponse); }
//[ValidateAntiForgeryToken] ///<summary> /// Views all teams(admin, service manager and team leads) /// </summary> public ActionResult ViewAllTeams() { ActionResult oResponse = null; var viewAllTeamsVM = new TeamViewModel(); var userPO = (IUserPO)Session["UserModel"]; // Ensures authenticated if (userPO.Email != null && userPO.RoleID_FK >= (int)RoleEnum.Administrator && (int)RoleEnum.Team_Lead <= 3) { try { var allTeams = _TeamDataAccess.GetAllTeams(); var smAllTeams = _TeamDataAccess.GetAllSMTeamsByUserID(userPO.UserID); var smTeams = _TeamDataAccess.GetAllSMTeams(); var allUsers = _UserDataAccess.GetAllUsers(); var allAbsences = PointsDataAccess.ViewAllAbsences(); switch (userPO.RoleID_FK) { case 1: // TODO: Add widget data to view model/view // Maps from data objects to presentation objects. viewAllTeamsVM.ListOfPos = TeamMapper.MapListOfDOsToListOfPOs(allTeams); var bestStandingTeam = _TeamBusinessLogic.QueryBestStandingTeam(TeamMapper.MapListOfDOsToListOfBOs(allTeams), allAbsences); var bottomStandingTeam = _TeamBusinessLogic.QueryWorstStandingTeam(TeamMapper.MapListOfDOsToListOfBOs(allTeams), allAbsences); var teamRanker = _TeamBusinessLogic.QueryTeamRanker(TeamMapper.MapListOfDOsToListOfBOs(allTeams), allAbsences); AssociateAdminValues(viewAllTeamsVM, bestStandingTeam, bottomStandingTeam, allAbsences, teamRanker, userPO); oResponse = View(viewAllTeamsVM); break; case 2: // TODO: Add Widget data to view model/view // Maps from data objects to presentation objects. viewAllTeamsVM.ListOfPos = TeamMapper.MapListOfDOsToListOfPOs(smAllTeams); //var teamAbsences = allAbsences.Where(a => a.); Need to retrieve absences by Team // TODO: list of service manager team absences viewAllTeamsVM.ListOfTeamAbsences = AbsenceMapper.MapListOfDOsToListOfPOs(allAbsences); var topEmployee = _TeamBusinessLogic.QueryBestStandingTeamMember(smTeams, allAbsences, allUsers, userPO.RoleID_FK); oResponse = View(viewAllTeamsVM); break; case 3: // TODO: Finish DA call for Team Lead lolololol var getAllTeams = _TeamDataAccess.GetAllTeamsByUserID(userPO.UserID); viewAllTeamsVM.ListOfPos = TeamMapper.MapListOfDOsToListOfPOs(getAllTeams); var topTeamMember = _TeamBusinessLogic.QueryBestStandingTeamMember(smTeams, allAbsences, allUsers, userPO.RoleID_FK); oResponse = View(viewAllTeamsVM); break; default: oResponse = View("Index", "Home"); break; } } catch (Exception ex) { ErrorLogger.LogError(ex, "ViewAllTeams", "Maint"); viewAllTeamsVM.ErrorMessage = "There was an issure retrieving the view all teams. Please try again. If the problem persists contact your IT department."; } } else { oResponse = RedirectToAction("Index", "Home"); } return(oResponse); }