Exemplo n.º 1
0
        //[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);
        }
Exemplo n.º 2
0
        //[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);
        }
Exemplo n.º 3
0
        //[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);
        }