Пример #1
0
        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);
        }
Пример #2
0
        /// <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();
        }
Пример #3
0
        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);
        }