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(); }
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}"); }
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)); }