public AddNewPersonalPAge()
 {
     employeeInfoDto = new EmployeeInfoDto();
     InitializeComponent();
     DepartmentObjectsDict_Load();
     TownObjectsDict_Load();
 }
 public EditPersonelPage(EmployeeInfoDto emp)
 {
     employeeInfoDto = emp;
     InitializeComponent();
     DepartmentObjectsDict_Load();
     TownObjectsDict_Load();
     InitialAddress = emp.FullAddress;
 }
        public void AddEmployeeInfo(EmployeeInfoDto empInfoDto)
        {
            var employee = Mapper.Map <Employee>(empInfoDto);

            context.Employees.Add(employee);

            context.SaveChanges();
        }
Beispiel #4
0
        public string Execute(string[] args)
        {
            int id = int.Parse(args[0]);

            EmployeeInfoDto emmployeeInfoDto = employeeController.GetEmployeePersonalInfo(id);

            return($"ID: {emmployeeInfoDto.Id} - {emmployeeInfoDto.FirstName} {emmployeeInfoDto.LastName} - ${emmployeeInfoDto.Salary:F2}" + Environment.NewLine +
                   $"Birthday: {emmployeeInfoDto.Birthday}" + Environment.NewLine +
                   $"Address: {emmployeeInfoDto.Address}");
        }
Beispiel #5
0
        public async Task <ActionResult <EmployeeInfoDto> > GetEmployeeInfoAsync()
        {
            EmployeeInfoDto info  = new EmployeeInfoDto();
            var             empId = Convert.ToInt32(User.Identity.Name);

            var employee = await wrapperRepository.EmployeeRepository.GetByIdAsync(empId);

            if (employee == null)
            {
                return(NotFound());
            }

            info = mapper.Map <EmployeeInfoDto>(employee);

            //拿到员工的所有角色 角色集合
            IQueryable <Employees_Roles> roles = await wrapperRepository.Employee_RoleRepository.GetEmployees_RolesAsync(employee.ID);

            //权限记录集合
            List <Roles_Permissions> roles_PermissionsList = new List <Roles_Permissions>();

            //遍历查询到所有的权限记录
            foreach (Employees_Roles item in roles.ToList())
            {
                IQueryable <Roles_Permissions> roles_Permissions = await wrapperRepository.Role_PermissionRepository.GetRoles_PermissionsByRoleID(item.RoleID);

                roles_PermissionsList.AddRange(roles_Permissions.ToList().ToArray());
            }

            //权限集合
            List <Permissions> permissionLiist = new List <Permissions>();

            //去重
            var distinctPeople = roles_PermissionsList
                                 .GroupBy(m => m.PermissionID)
                                 .Select(m => m.First()).ToList();

            //遍历权限记录表 那到相应的权限
            foreach (Roles_Permissions item in distinctPeople)
            {
                Permissions permissions = await wrapperRepository.PermissionRepository.GetByIdAsync(item.PermissionID);

                if (permissions.IsDel == 1)
                {
                    continue;
                }
                permissionLiist.Add(permissions);
            }
            info.Permissions = permissionLiist;
            return(Ok(info));
        }
        public string Execute(params string[] args)
        {
            var firstName = args[0];
            var lastName  = args[1];
            var salary    = decimal.Parse(args[2]);
            var birthday  = DateTime.ParseExact(args[3], "dd-MM-yyyy", CultureInfo.InvariantCulture);

            var empInfoDto = new EmployeeInfoDto
            {
                FirstName = firstName,
                LastName  = lastName,
                Salary    = salary,
                Birthday  = birthday
            };

            employeeService.AddEmployeeInfo(empInfoDto);

            return($"New employee with personal info added.");
        }
        public IActionResult UploadFile(IFormFile file)
        {
            int    row        = 0;
            Stream fileStream = file.OpenReadStream();
            List <EmployeeInfo> employeesInfo = new List <EmployeeInfo>();
            Dictionary <int, (int EmployeeId, int DaysWorked)> result = new Dictionary <int, (int EmployeeId, int DaysWorked)>();

            using (var reader = new StreamReader(file.OpenReadStream()))
            {
                while (reader.Peek() >= 0)
                {
                    row++;
                    string line          = reader.ReadLine();
                    string fromDateValue = string.Empty;
                    string toDateValue   = string.Empty;

                    if (!line.ToLower().Contains("empid"))
                    {
                        string[] data = line.Split(',', StringSplitOptions.RemoveEmptyEntries).Select(s => s.Trim()).ToArray();

                        if (data.Length < 4)
                        {
                            continue;
                        }
                        else if (data.Length > 4)
                        {
                            data[3] = string.Join(", ", data.Skip(3));
                        }

                        int employeeId = 0;
                        int.TryParse(data[0], out employeeId);
                        int projectId = 0;
                        int.TryParse(data[1], out projectId);

                        if (employeeId == 0 || projectId == 0)
                        {
                            continue;
                        }

                        fromDateValue = ValidateToDate(data[2]);
                        toDateValue   = ValidateToDate(data[3]);

                        DateTime fromDate;
                        DateTime.TryParse(fromDateValue, CultureInfo.InvariantCulture, DateTimeStyles.None, out fromDate);
                        DateTime toDate;
                        DateTime.TryParse(toDateValue, CultureInfo.InvariantCulture, DateTimeStyles.None, out toDate);

                        if (fromDate == default(DateTime) || toDate == default(DateTime))
                        {
                            continue;
                        }

                        EmployeeInfo employeeInfo = new EmployeeInfo()
                        {
                            EmployeeId = employeeId,
                            ProjectId  = projectId,
                            FromDate   = fromDate,
                            ToDate     = toDate
                        };

                        employeesInfo.Add(employeeInfo);
                    }
                }
            }

            List <int> projects = employeesInfo.Select(x => x.ProjectId).Distinct().ToList();

            EmployeeInfoViewModel model = new EmployeeInfoViewModel();

            foreach (int project in projects)
            {
                EmployeeInfoDto dto = new EmployeeInfoDto()
                {
                    ProjectId = project
                };
                double maxDays = 0;
                List <EmployeeInfo> employeesWorkedOnSameProject = employeesInfo.Where(x => x.ProjectId == project).ToList();

                if (employeesWorkedOnSameProject.Count < 2)
                {
                    continue;
                }

                for (int i = 0; i < employeesWorkedOnSameProject.Count - 1; i++)
                {
                    int      firstEmployeeId     = employeesWorkedOnSameProject[i].EmployeeId;
                    DateTime firstPersonFromDate = employeesWorkedOnSameProject[i].FromDate;
                    DateTime firstPersonToDate   = employeesWorkedOnSameProject[i].ToDate;

                    for (int j = i + 1; j < employeesWorkedOnSameProject.Count; j++)
                    {
                        int secondEmployeeId = employeesWorkedOnSameProject[j].EmployeeId;
                        if (firstEmployeeId == secondEmployeeId)
                        {
                            continue;
                        }

                        DateTime secondPersonFromDate = employeesWorkedOnSameProject[j].FromDate;
                        DateTime secondPersonToDate   = employeesWorkedOnSameProject[j].ToDate;

                        double days = OverlappingDays(firstPersonFromDate, firstPersonToDate, secondPersonFromDate, secondPersonToDate);

                        if (days > maxDays)
                        {
                            maxDays = days;
                            dto.DaysOnSameProject = (int)maxDays;
                            dto.FirstEmployeeId   = firstEmployeeId;
                            dto.SecondEmployeeId  = secondEmployeeId;
                        }
                    }
                }
                model.EmployeesInfo.Add(dto);
            }

            model.EmployeesInfo = model.EmployeesInfo.OrderBy(x => x.ProjectId).ToList();

            return(View("Result", model));
        }
        public async Task <ActionResult <EmployeeInfoDto> > GetEmployeeInfoAsync()
        {
            EmployeeInfoDto info  = new EmployeeInfoDto();
            var             empId = Convert.ToInt32(User.Identity.Name);
            //拿到员工的所有角色
            IQueryable <Employees_Roles> roles = await wrapperRepository.Employee_RoleRepository.GetEmployees_RolesByEmployeeIDAsync(empId); //角色集合

            string json = await distributedCache.GetStringAsync($"Role_Menu_{roles.FirstOrDefault().ID}");

            //当缓冲为空的时候
            if (string.IsNullOrEmpty(json))
            {
                var employee = await wrapperRepository.EmployeeRepository.GetByIdAsync(empId);

                if (employee == null)
                {
                    return(NotFound());
                }

                info = mapper.Map <EmployeeInfoDto>(employee);



                List <Roles_Permissions> roles_PermissionList = new List <Roles_Permissions>(); //权限记录集合
                                                                                                //遍历查询到所有的权限记录
                foreach (Employees_Roles item in roles.ToList())
                {
                    IQueryable <Roles_Permissions> roles_Permissions = await wrapperRepository.Role_PermissionRepository.GetRoles_PermissionsByRoleID(item.RoleID);

                    roles_PermissionList.AddRange(roles_Permissions.ToList().ToArray());
                }

                List <Permissions> permissionList = new List <Permissions>();  //权限集合

                //去重
                var distinctPeople = roles_PermissionList
                                     .GroupBy(m => m.PermissionID)
                                     .Select(m => m.First())
                                     .ToList();

                //遍历权限记录(去重) 拿到相应的权限
                foreach (Roles_Permissions item in distinctPeople)
                {
                    Permissions permission = await wrapperRepository.PermissionRepository.GetByIdAsync(item.PermissionID);

                    if (permission.IsDel == 1)
                    {
                        continue;
                    }
                    permissionList.Add(permission);
                }


                info.Permissions = permissionList.OrderBy(m => m.Sort).ToList();

                DistributedCacheEntryOptions options = new DistributedCacheEntryOptions()
                {
                    AbsoluteExpiration = DateTime.Now.AddHours(1)
                };


                //序列化为字符串存到缓冲
                string jsonCache = JsonSerializer.Serialize <EmployeeInfoDto>(info);

                //存缓存
                await distributedCache.SetStringAsync($"Role_Menu_{roles.FirstOrDefault().ID}", jsonCache, options);

                return(Ok(info));
            }


            //不为空怎么做???

            //把反序列化成对象
            info = JsonSerializer.Deserialize <EmployeeInfoDto>(json);

            return(Ok(info));
        }