Exemplo n.º 1
0
        public async Task <IActionResult> GetTableData(BoardTableModel boardTableViewModel)
        {
            switch (boardTableViewModel.TableType)
            {
            case TableType.CELEBRATION:
                var celebrationData = await GetViewModel <CelebrationViewModel>(boardTableViewModel);

                return(Json(celebrationData));

            case TableType.WIP:
                var wipData = await GetViewModel <WIPViewModel>(boardTableViewModel);

                return(Json(wipData));

            case TableType.NEWIMPOP:
                var newImpOpData = await GetViewModel <NewImpOpViewModel>(boardTableViewModel);

                return(Json(newImpOpData));

            case TableType.IMPIDEAS:
                var impIdeasData = await GetViewModel <ImpIdeasImplementedViewModel>(boardTableViewModel);

                return(Json(impIdeasData));
            }

            return(Json("No table found."));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> GetAuditData(BoardTableModel boardTableViewModel)
        {
            var search = boardTableViewModel.Search?.ToUpper().Trim();
            var table  = _applicationDbContext.Audits.OrderByDescending(a => a.ID);
            var total  = await table.CountAsync();

            var data = table.Skip(boardTableViewModel.Offset).Take(boardTableViewModel.Limit);

            if (!string.IsNullOrWhiteSpace(search))
            {
                data = data.Where(a => a.KeyValues.ToUpper().Contains(search) ||
                                  a.NewValues.ToUpper().Contains(search) ||
                                  a.OldValues.ToUpper().Contains(search) ||
                                  a.State.ToUpper().Contains(search) ||
                                  a.TableName.ToUpper().Contains(search) ||
                                  a.Username.ToUpper().Contains(search) ||
                                  a.DateTime.ToString().ToUpper().Contains(search));
            }

            var list = await data.ToListAsync();

            foreach (var audit in list)
            {
                audit.OldValues = HttpUtility.HtmlEncode(audit.OldValues);
                audit.NewValues = HttpUtility.HtmlEncode(audit.NewValues);
            }

            return(Json(new AuditViewModel
            {
                Total = total,
                Audits = list
            }));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> SearchBoards(BoardTableModel boardTableModel)
        {
            var user = await _userManager.GetUserAsync(User);

            var adminRoleID = (await _applicationDbContext.Roles.SingleOrDefaultAsync(r => r.Name.Equals("Admin"))).Id;
            var isAdmin     = await _applicationDbContext.UserRoles.AnyAsync(r => r.UserId.Equals(user.Id) && r.RoleId.Equals(adminRoleID));

            var unitsAccess = await _applicationDbContext.UnitAccesses.Where(u => u.UserID.Equals(user.Id)).Select(u => u.UnitID).ToListAsync();

            var search = boardTableModel.Search?.ToUpper().Trim();

            if (!string.IsNullOrWhiteSpace(search))
            {
                if (isAdmin)
                {
                    var units  = _applicationDbContext.Units.Where(u => u.Name.ToUpper().Contains(search));
                    var boards = _applicationDbContext.Boards.Where(b => b.Name.ToUpper().Contains(search)).Include(b => b.Unit);

                    return(Json(new HomeIndexViewModel
                    {
                        Units = await units.ToListAsync(),
                        Boards = await boards.ToListAsync()
                    }));
                }
                else
                {
                    var units  = _applicationDbContext.Units.Where(u => u.Name.ToUpper().Contains(search));
                    var boards = _applicationDbContext.Boards.Where(b => b.Name.ToUpper().Contains(search) && unitsAccess.Contains(b.UnitID)).Include(b => b.Unit);

                    return(Json(new HomeIndexViewModel
                    {
                        Units = await units.ToListAsync(),
                        Boards = await boards.ToListAsync()
                    }));
                }
            }

            if (isAdmin)
            {
                return(Json(new HomeIndexViewModel
                {
                    Units = await _applicationDbContext.Units.ToListAsync(),
                    Boards = await _applicationDbContext.Boards.ToListAsync()
                }));
            }
            else
            {
                return(Json(new HomeIndexViewModel
                {
                    Units = await _applicationDbContext.Units.ToListAsync(),
                    Boards = await _applicationDbContext.Boards.Where(b => unitsAccess.Contains(b.UnitID)).ToListAsync()
                }));
            }
        }
Exemplo n.º 4
0
        public async Task <IActionResult> GetUserData(BoardTableModel boardTableViewModel)
        {
            var search = boardTableViewModel.Search?.ToUpper().Trim();
            var table  = _applicationDbContext.Users;
            var total  = await table.CountAsync();

            var data = table.Skip(boardTableViewModel.Offset).Take(boardTableViewModel.Limit);

            var adminRoleID = (await _applicationDbContext.Roles.SingleOrDefaultAsync(r => r.Name.Equals("Admin"))).Id;
            var staffRoleID = (await _applicationDbContext.Roles.SingleOrDefaultAsync(r => r.Name.Equals("Staff"))).Id;

            List <UserViewModel> userViewModels = new List <UserViewModel>();

            foreach (var applicationUser in table)
            {
                List <AdminUnitViewModel> adminUnitViewModels = new List <AdminUnitViewModel>();
                foreach (var unit in _applicationDbContext.Units)
                {
                    adminUnitViewModels.Add(new AdminUnitViewModel
                    {
                        ID        = unit.ID,
                        Name      = unit.Name,
                        HasAccess = _applicationDbContext.UnitAccesses.Any(u => u.UserID.Equals(applicationUser.Id) && u.UnitID.Equals(unit.ID))
                    });
                }

                userViewModels.Add(new UserViewModel
                {
                    ID                  = applicationUser.Id,
                    Username            = applicationUser.UserName,
                    IsAdmin             = await _applicationDbContext.UserRoles.AnyAsync(r => r.UserId.Equals(applicationUser.Id) && r.RoleId.Equals(adminRoleID)),
                    IsStaff             = await _applicationDbContext.UserRoles.AnyAsync(r => r.UserId.Equals(applicationUser.Id) && r.RoleId.Equals(staffRoleID)),
                    AdminUnitViewModels = adminUnitViewModels
                });
            }

            return(Json(new UsersViewModel
            {
                Total = total,
                UserViewModels = userViewModels
            }));
        }
Exemplo n.º 5
0
 public async Task <T> GetViewModel <T>(BoardTableModel boardTableViewModel)
 {
     return((T) await GetViewModel(boardTableViewModel));
 }
Exemplo n.º 6
0
        public async Task <object> GetViewModel(BoardTableModel boardTableViewModel)
        {
            var user = await _userManager.GetUserAsync(User);

            var search = boardTableViewModel.Search?.ToUpper().Trim();

            if (boardTableViewModel.TableType == TableType.CELEBRATION)
            {
                var table = _applicationDbContext.Celebrations.Where(c => c.BoardID == boardTableViewModel.BoardID);
                var total = await table.CountAsync();

                //var data = table.Skip(boardTableViewModel.Offset).Take(boardTableViewModel.Limit);

                table = table.Sort(typeof(Celebration), boardTableViewModel.Sort, boardTableViewModel.Order);

                if (!string.IsNullOrWhiteSpace(search))
                {
                    table = table.Where(c => c.Who.ToUpper().Contains(search) ||
                                        c.What.ToUpper().Contains(search) ||
                                        c.Why.ToUpper().Contains(search));
                }

                return(new CelebrationViewModel
                {
                    Total = total,
                    Celebrations = await table.ToListAsync()
                });
            }

            if (boardTableViewModel.TableType == TableType.WIP)
            {
                var table = _applicationDbContext.WIPs.Where(c => c.BoardID == boardTableViewModel.BoardID);
                var total = await table.CountAsync();

                //var data = table.Skip(boardTableViewModel.Offset).Take(boardTableViewModel.Limit);

                table = table.Sort(typeof(WIP), boardTableViewModel.Sort, boardTableViewModel.Order);

                if (!string.IsNullOrWhiteSpace(search?.ToUpper().Trim()))
                {
                    table = table.Where(w => w.Why.ToUpper().Contains(search) ||
                                        w.Updates.ToUpper().Contains(search) ||
                                        w.StrategicGoals.ToUpper().Contains(search) ||
                                        w.StaffWorkingOnOpportunity.ToUpper().Contains(search) ||
                                        w.Saftey.ToUpper().Contains(search) ||
                                        w.Problem.ToUpper().Contains(search) ||
                                        w.Name.ToUpper().Contains(search) ||
                                        w.JustDoIt.ToUpper().Contains(search) ||
                                        w.EightWs.ToUpper().Contains(search));
                }

                return(new WIPViewModel
                {
                    Total = total,
                    WIPs = await table.ToListAsync()
                });
            }

            if (boardTableViewModel.TableType == TableType.NEWIMPOP)
            {
                var table = _applicationDbContext.NewImpOps.Where(c => c.BoardID == boardTableViewModel.BoardID);
                var total = await table.CountAsync();

                //var data = table.Skip(boardTableViewModel.Offset).Take(boardTableViewModel.Limit);

                table = table.Sort(typeof(NewImpOp), boardTableViewModel.Sort, boardTableViewModel.Order);

                if (!string.IsNullOrWhiteSpace(search?.ToUpper().Trim()))
                {
                    table = table.Where(w => w.Legend.ToUpper().Contains(search) ||
                                        w.PersonIdentifyingOpportunity.ToUpper().Contains(search) ||
                                        w.Problem.ToUpper().Contains(search) ||
                                        w.StaffWorkingOnOpportunity.ToUpper().Contains(search) ||
                                        w.StrategicGoals.ToUpper().Contains(search) ||
                                        w.EightWs.ToUpper().Contains(search) ||
                                        w.JustDoIt.ToUpper().Contains(search));
                }

                return(new NewImpOpViewModel
                {
                    Total = total,
                    NewImpOps = await table.ToListAsync()
                });
            }

            if (boardTableViewModel.TableType == TableType.IMPIDEAS)
            {
                var table = _applicationDbContext.ImpIdeasImplemented.Where(c => c.BoardID == boardTableViewModel.BoardID);
                var total = await table.CountAsync();

                //var data = table.Skip(boardTableViewModel.Offset).Take(boardTableViewModel.Limit);

                table = table.Sort(typeof(ImpIdeasImplemented), boardTableViewModel.Sort, boardTableViewModel.Order);

                if (!string.IsNullOrWhiteSpace(search?.ToUpper().Trim()))
                {
                    table = table.Where(w => w.Name.ToUpper().Contains(search) ||
                                        w.Problem.ToUpper().Contains(search) ||
                                        w.Owner.ToUpper().Contains(search) ||
                                        w.Pillar.ToUpper().Contains(search) ||
                                        w.EightWs.ToUpper().Contains(search) ||
                                        w.JustDoIt.ToUpper().Contains(search) ||
                                        w.Solution.ToUpper().Contains(search) ||
                                        w.DateEnterIntoDatabase.ToUpper().Contains(search));
                }

                return(new ImpIdeasImplementedViewModel
                {
                    Total = total,
                    ImpIdeasImplementeds = await table.ToListAsync()
                });
            }

            return(null);
        }
Exemplo n.º 7
0
        public async Task <IActionResult> GetChangeRequestData(BoardTableModel boardTableViewModel)
        {
            var search = boardTableViewModel.Search?.ToUpper().Trim();
            var table  = _applicationDbContext.ChangeRequests;
            var total  = await table.CountAsync();

            var data = table.Skip(boardTableViewModel.Offset).Take(boardTableViewModel.Limit);

            if (!string.IsNullOrWhiteSpace(search?.ToUpper().Trim()))
            {
                data = data.Where(d => d.TableName.ToString().ToUpper().Contains(search) ||
                                  d.Username.ToUpper().Contains(search) ||
                                  d.Values.ToUpper().Contains(search) ||
                                  d.ChangeRequestType.ToString().ToUpper().Contains(search) ||
                                  d.AssociatedName.ToUpper().Contains(search) ||
                                  d.Board.Name.ToUpper().Contains(search) ||
                                  d.Board.Unit.Name.ToUpper().Contains(search));
            }

            data = data.Include(d => d.Board).Include(d => d.Board.Unit);

            List <ApproveViewModel> approveViewModels = new List <ApproveViewModel>();

            foreach (var changeRequest in data)
            {
                var previousValues = "";
                if (changeRequest.ChangeRequestType == ChangeRequestType.MODIFY)
                {
                    dynamic json = new JObject();
                    json.Name = changeRequest.AssociatedName;

                    if (changeRequest.TableName == TableType.CELEBRATION)
                    {
                        var celebration = _applicationDbContext.Celebrations.SingleOrDefault(c => c.ID == changeRequest.AssociatedID);
                        var property    = celebration.GetType().GetProperty(changeRequest.AssociatedName, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);

                        json.Value = HttpUtility.HtmlEncode(property.GetValue(celebration, null)) ?? "";
                    }

                    if (changeRequest.TableName == TableType.WIP)
                    {
                        var wip      = _applicationDbContext.WIPs.SingleOrDefault(c => c.ID == changeRequest.AssociatedID);
                        var property = wip.GetType().GetProperty(changeRequest.AssociatedName, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);

                        json.Value = HttpUtility.HtmlEncode(property.GetValue(wip, null)) ?? "";
                    }

                    if (changeRequest.TableName == TableType.NEWIMPOP)
                    {
                        var newImpOp = _applicationDbContext.NewImpOps.SingleOrDefault(c => c.ID == changeRequest.AssociatedID);
                        var property = newImpOp.GetType().GetProperty(changeRequest.AssociatedName, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);

                        json.Value = HttpUtility.HtmlEncode(property.GetValue(newImpOp, null)) ?? "";
                    }

                    if (changeRequest.TableName == TableType.IMPIDEAS)
                    {
                        var impIdeasImplemented = _applicationDbContext.ImpIdeasImplemented.SingleOrDefault(c => c.ID == changeRequest.AssociatedID);
                        var property            = impIdeasImplemented.GetType().GetProperty(changeRequest.AssociatedName, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);

                        json.Value = HttpUtility.HtmlEncode(property.GetValue(impIdeasImplemented, null)) ?? "";
                    }

                    previousValues = json.ToString();
                }
                if (changeRequest.ChangeRequestType == ChangeRequestType.DELETE)
                {
                    dynamic json = new JObject();

                    if (changeRequest.TableName == TableType.CELEBRATION)
                    {
                        var celebration = _applicationDbContext.Celebrations.SingleOrDefault(c => c.ID == changeRequest.AssociatedID);
                        json.id      = celebration.ID;
                        json.who     = celebration.Who;
                        json.what    = celebration.What;
                        json.why     = celebration.Why;
                        json.date    = celebration.Date;
                        json.BoardID = celebration.BoardID;
                    }

                    if (changeRequest.TableName == TableType.WIP)
                    {
                        var wip = _applicationDbContext.WIPs.SingleOrDefault(c => c.ID == changeRequest.AssociatedID);
                        json.id             = wip.ID;
                        json.saftey         = wip.Saftey;
                        json.name           = wip.Name;
                        json.date           = wip.Date;
                        json.problem        = wip.Problem;
                        json.eightWs        = wip.EightWs;
                        json.strategicGoals = wip.StrategicGoals;
                        json.isPtFamilyInvovlmentOpportunity = wip.IsPtFamilyInvovlmentOpportunity;
                        json.pickChart    = wip.PickChart;
                        json.dateAssigned = wip.DateAssigned;
                        json.staffWorkingOnOpportunity = wip.StaffWorkingOnOpportunity;
                        json.why      = wip.Why;
                        json.justDoIt = wip.JustDoIt;
                        json.updates  = wip.Updates;
                        json.BoardID  = wip.BoardID;
                    }

                    if (changeRequest.TableName == TableType.NEWIMPOP)
                    {
                        var newImpOp = _applicationDbContext.NewImpOps.SingleOrDefault(c => c.ID == changeRequest.AssociatedID);
                        json.id     = newImpOp.ID;
                        json.legend = newImpOp.Legend;
                        json.personIdentifyingOpportunity = newImpOp.PersonIdentifyingOpportunity;
                        json.dateIdentified                  = newImpOp.DateIdentified;
                        json.problem                         = newImpOp.Problem;
                        json.staffWorkingOnOpportunity       = newImpOp.StaffWorkingOnOpportunity;
                        json.strategicGoals                  = newImpOp.StrategicGoals;
                        json.isPtFamilyInvovlmentOpportunity = newImpOp.IsPtFamilyInvovlmentOpportunity;
                        json.eightWs                         = newImpOp.EightWs;
                        json.pickChart                       = newImpOp.PickChart;
                        json.justDoIt                        = newImpOp.JustDoIt;
                        json.BoardID                         = newImpOp.BoardID;
                    }

                    if (changeRequest.TableName == TableType.IMPIDEAS)
                    {
                        var impIdeasImplemented = _applicationDbContext.ImpIdeasImplemented.SingleOrDefault(c => c.ID == changeRequest.AssociatedID);
                        json.id      = impIdeasImplemented.ID;
                        json.name    = impIdeasImplemented.Name;
                        json.date    = impIdeasImplemented.Date;
                        json.problem = impIdeasImplemented.Problem;
                        json.owner   = impIdeasImplemented.Owner;
                        json.pillar  = impIdeasImplemented.Pillar;
                        json.isPtFamilyInvovlmentOpportunity = impIdeasImplemented.IsPtFamilyInvovlmentOpportunity;
                        json.eightWs      = impIdeasImplemented.EightWs;
                        json.pickChart    = impIdeasImplemented.PickChart;
                        json.justDoIt     = impIdeasImplemented.JustDoIt;
                        json.solution     = impIdeasImplemented.Solution;
                        json.dateComplete = impIdeasImplemented.DateComplete;
                        json.workCreated  = impIdeasImplemented.WorkCreated;
                        json.processObservationCreated = impIdeasImplemented.ProcessObservationCreated;
                        json.dateEnterIntoDatabase     = impIdeasImplemented.DateEnterIntoDatabase;
                        json.BoardID = impIdeasImplemented.BoardID;
                    }

                    previousValues = HttpUtility.HtmlEncode(json.ToString());
                }

                approveViewModels.Add(new ApproveViewModel
                {
                    ID                = changeRequest.ID,
                    Username          = changeRequest.Username,
                    ChangeRequestType = changeRequest.ChangeRequestType,
                    TableName         = changeRequest.TableName.ToString(),
                    AssociatedID      = changeRequest.AssociatedID,
                    AssociatedName    = changeRequest.AssociatedName,
                    Values            = changeRequest.Values,
                    BoardName         = changeRequest.Board.Name,
                    UnitName          = changeRequest.Board.Unit.Name,
                    PreviousValues    = previousValues
                });
            }

            return(Json(new ChangeRequestViewModel
            {
                Total = total,
                ChangeRequests = approveViewModels
            }));
        }