示例#1
0
        private void addPermissionChange(int employeeId, List <EmployeePermission> previous, List <EmployeePermission> current)
        {
            string prevString    = string.Join(",", previous.Select(x => x.Permission.ToString()));
            string currentString = string.Join(",", current.Select(x => x.Permission.ToString()));
            EmployeeChangeEventTypeEnum changeType = EmployeeChangeEventTypeEnum.PermissionChange;


            var evt = new EmployeeChangeEvent
            {
                EmployeeId      = employeeId,
                Old             = prevString,
                New             = currentString,
                Time            = DateTime.Now,
                ChangeEventType = changeType,
            };

            _context.Add(evt);
            SendAlerts(evt);

            _context.SaveChanges();
        }
示例#2
0
        List <EmployeeChangeEvent> getChanges(Employee existing, Employee newData)
        {
            var time = DateTime.Now;
            List <EmployeeChangeEvent> changeList = new List <EmployeeChangeEvent>();

            if (existing.ManagerId != newData.ManagerId)
            {
                EmployeeChangeEventTypeEnum changeType = EmployeeChangeEventTypeEnum.ManagerChange;

                Employee oldManager = existing.ManagerId == null ? null :  GetEmployee(existing.ManagerId.Value);

                Employee newManager = newData.ManagerId == null ? null : GetEmployee(newData.ManagerId.Value);

                //TODO refactor
                var changeEvt = new EmployeeChangeEvent
                {
                    EmployeeId      = existing.EmployeeId,
                    Old             = oldManager == null ? "" : oldManager.Name,
                    New             = newManager == null ? "" : newManager.Name,
                    Time            = time,
                    ChangeEventType = changeType,
                };
                changeList.Add(changeEvt);

                SendAlerts(changeEvt);
            }
            if (existing.PositionId != newData.PositionId)
            {
                EmployeeChangeEventTypeEnum changeType = EmployeeChangeEventTypeEnum.PositionChange;
                Position newPos = GetPosition(newData.PositionId);

                Position oldPos;
                if (existing.Position != null)
                {
                    oldPos = new Position {
                        Name = existing.Position.Name, PositionId = existing.PositionId
                    };
                }
                else
                {
                    oldPos = GetPosition(existing.PositionId);
                }
                var changeEvt = new EmployeeChangeEvent
                {
                    EmployeeId      = existing.EmployeeId,
                    Old             = oldPos.Name,
                    New             = newPos.Name,
                    Time            = time,
                    ChangeEventType = changeType,
                };
                changeList.Add(changeEvt);

                SendAlerts(changeEvt);
            }

            if (existing.EmploymentStatus != newData.EmploymentStatus)
            {
                EmployeeChangeEventTypeEnum changeType = EmployeeChangeEventTypeEnum.StatusChange;

                var changeEvt = new EmployeeChangeEvent
                {
                    EmployeeId      = existing.EmployeeId,
                    Old             = existing.EmploymentStatus.ToString(),
                    New             = newData.EmploymentStatus.ToString(),
                    Time            = time,
                    ChangeEventType = changeType,
                };
                changeList.Add(changeEvt);

                SendAlerts(changeEvt);
            }
            return(changeList);
        }