public static DepartmentDto CreateFromModel(DepartmentExtended model)
        {
            if (model == null)
            {
                return(null);
            }

            var departmentDto = new DepartmentDto
            {
                Code               = model.DepartmentCode,
                Name               = model.Name,
                EmployeesCount     = model.Users.Count,
                IsLocked           = model.IsLocked,
                EmployeesAvailable = true
            };

            if (model.DepartmentManager != null)
            {
                departmentDto.DepartmentManager = UserDto.CreateFromModel(model.DepartmentManager);
            }

            if (ApplicationSettingsService.Instance.Settings.EmployeesAccessRule != (int)EmployeesAccessRules.AllEmployees)
            {
                var currentDepartmentId = SessionHelper.GetUserDepartmentIdFromOwinContext();
                if (currentDepartmentId != Guid.Empty && currentDepartmentId != model.DepartmentId)
                {
                    departmentDto.EmployeesAvailable = false;
                }
            }

            return(departmentDto);
        }
Пример #2
0
        public static UserDto CreateFromModel(User model)
        {
            var department = new DepartmentExtended(model.Department,
                                                    DepartmentsService.Instance.IsDepartmentLocked(model.Department));

            return(new UserDto
            {
                Id = model.Id,
                SmgId = model.SmgUserId,
                Login = model.UserName,
                Profile = UserProfileDto.CreateFromModel(model.UserProfile),
                Department = DepartmentDto.CreateFromModel(department)
            });
        }
Пример #3
0
        public static DepartmentMatchDto CreateFromModel(DepartmentExtended model, DepartmentQuery[] queries)
        {
            var match = new DepartmentMatchDto();

            foreach (var query in queries.Where(x => !String.IsNullOrEmpty(x.Value)))
            {
                switch (query.Field)
                {
                case DepartmentQueryFields.Name:
                    match.Name = model.Name;
                    break;

                case DepartmentQueryFields.Code:
                    match.Code = model.DepartmentCode;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(match);
        }