public async Task <UserInfo> GetUserInfoAsync(Guid userId, bool includeDepartment = false) { var userDto = await GetDefaultUserDepartmentAsync(userId); if (userDto == null) { return(null); } var userInfo = _mapper.Map <UserInfo>(userDto); if (includeDepartment) { var userDepartments = await _userDepartmentServices.GetCachedUserDepartmentDtos(); userInfo.Departments = userDepartments .OrderBy(ud => ud.DeptOrderNumber) .Where(u => u.UserID == userId) .Select(ud => new DepartmentInfo() { Id = ud.DeptID, Code = ud.DeptCode, Name = ud.DeptName, Order = ud.DeptOrderNumber.HasValue ? ud.DeptOrderNumber.Value : 100, }).ToList(); } return(userInfo); }
/// <summary> /// Registers the type mappings with the Unity container. /// </summary> /// <param name="container">The unity container to configure.</param> /// <remarks> /// There is no need to register concrete types such as controllers or /// API controllers (unless you want to change the defaults), as Unity /// allows resolving a concrete type even if it was not previously /// registered. /// </remarks> public static void RegisterTypes(IUnityContainer container) { UnityHelper.BuildUnityContainer(container); Core.Kernel.AmbientScope.UnityDependencyResolver.DependencyResolve(container); // container.RegisterType<IDbContextFactory, DefaultDbContextFactory>(new PerResolveLifetimeManager()); foreach (var task in container.ResolveAll <IUnityDependencyResolver>()) { task.ResolveDependency(container); } // fetch info IUserDepartmentServices userDeptServices = (IUserDepartmentServices)container.Resolve(typeof(IUserDepartmentServices)); userDeptServices.GetCachedUserDepartmentDtos(); }
public async Task <TaskItemAssignDto> GetByAssignTo(Guid taskId, Guid userId) { TaskItemAssignDto dto = null; try { using (var scope = _dbContextScopeFactory.CreateReadOnly()) { TaskItemAssign entity = _objectRepository.GetAll().Include(t => t.TaskItemProcessHistories).Include(t => t.TaskItem).Include(t => t.TaskItemStatus).Include(t => t.TaskItem.TaskItemStatus).Where(p => p.IsDeleted == false && p.TaskItemId == taskId && p.AssignTo == userId).FirstOrDefault(); if (entity != null) { var users = _userServices.GetUsers(); var userDepartments = await _userDepartmentServices.GetCachedUserDepartmentDtos(); dto = _mapper.Map <TaskItemAssignDto>(entity); var assignTo = userDepartments.Where(e => e.UserID == entity.AssignTo).FirstOrDefault(); dto.AssignToFullName = assignTo.FullName; var assignBy = userDepartments.Where(e => e.UserID == entity.TaskItem.AssignBy).FirstOrDefault(); dto.TaskItem.AssignByFullName = assignBy.FullName; if (dto.TaskItem.FromDate.HasValue) { dto.TaskItem.FromDateText = dto.TaskItem.FromDate.Value.ToString("dd/MM/yyyy"); } if (dto.TaskItem.ToDate.HasValue) { dto.TaskItem.ToDateText = dto.TaskItem.ToDate.Value.ToString("dd/MM/yyyy"); } if (dto.TaskType != TaskType.Primary) { dto.TaskItem.IsReport = false; } if (dto.ExtendDate.HasValue) { dto.ExtendDateText = dto.ExtendDate.Value.ToString("dd/MM/yyyy"); } var isFinished = dto.TaskItem.TaskItemStatusId == TaskItemStatusId.Finished || dto.TaskItem.TaskItemStatusId == TaskItemStatusId.Cancel; if ((!isFinished && dto.TaskItem.ToDate.Value.Date < DateTime.Now.Date) || (isFinished && dto.TaskItem.FinishedDate.HasValue && dto.TaskItem.ToDate.Value.Date < dto.TaskItem.FinishedDate.Value.Date)) { dto.TaskItem.IsLate = true; dto.TaskItem.Process = "out-of-date"; } else if (!isFinished && dto.TaskItem.ToDate.Value.Date <= DateTime.Now.AddDays(2).Date) { dto.TaskItem.IsLate = false; dto.TaskItem.Process = "near-of-date"; } else { dto.TaskItem.IsLate = false; dto.TaskItem.Process = "in-due-date"; } dto.IsExtend = false; } } } catch (Exception ex) { _loggerServices.WriteError(ex.ToString()); } return(dto); }