/// <summary>
        /// 取得部門資料.
        /// </summary>
        /// <param name="parameter">The SMDepartmentParameterDto.</param>
        /// <returns>List of SMDepartmentDto</returns>
        public List<SMDepartmentDto> Get(SMDepartmentParameterDto parameter)
        {
            var result = this.DepartmentRepository.Get(parameter);

            var mapConfig = new AutoMapper.MapperConfiguration(cfg =>
            {
                cfg.CreateMap<SMDepartmentModel, SMDepartmentDto>();
            });

            var mapper = mapConfig.CreateMapper();
            var response = mapper.Map<List<SMDepartmentModel>, List<SMDepartmentDto>>(result);

            return response;
        }
        /// <summary>
        /// 取得部門資料.
        /// </summary>
        /// <param name="parameter">The SMDepartmentParameterDto.</param>
        /// <returns>List of SMDepartmentModel</returns>
        public List<SMDepartmentModel> Get(SMDepartmentParameterDto parameter)
        {
            using (IDbConnection conn = new SqlConnection(this.DatabaseConstants.EEPSConnection))
            {
                StringBuilder sqlCondition = new StringBuilder();

                if (parameter.DeptIds.Length > 0)
                {
                    parameter.DeptIds = this.GetAffiliatedDepartment(parameter.DeptIds, parameter.IsValidOnly, parameter.IsAllLevels);
                    sqlCondition.AppendLine($" AND DeptID IN @DeptIds");
                }

                if (parameter.IsValidOnly)
                {
                    sqlCondition.AppendLine($" AND EndDate IS NULL");
                }

                if (parameter.DenyDeptIds.Length > 0)
                {
                    parameter.DenyDeptIds = this.GetAffiliatedDepartment(parameter.DenyDeptIds, parameter.IsValidOnly, parameter.IsAllLevels);
                    sqlCondition.AppendLine(" And DeptID NOT IN @DenyDeptIds");
                }

                string sqlCommandText =
                    @"
                        SELECT
                            DeptID, DeptName, ParentDeptID, OrderNum, DeptLevel, EndDate
                        FROM
                            dbo.SMDept WITH (NOLOCK)
                        WHERE 1 = 1
                            {0}
                        ;
                    ";

                var result = this.DapperHelper.Query<SMDepartmentModel>(
                                                dbConnection: conn,
                                                sql: string.Format(sqlCommandText.ToString(), sqlCondition),
                                                param: new
                                                {
                                                    DeptIds = parameter.DeptIds,
                                                    DenyDeptIds = parameter.DenyDeptIds
                                                }).ToList();

                return result;
            }
        }
Example #3
0
        public void Test_Get_傳入部門編號陣列_預期_回傳對應部門資料()
        {
            // arrange
            var repositoryDummyData = RepositoryDummyData();

            this.SMDepartmentRepository.Get(Arg.Any<DTOs.SMDepartmentParameterDto>())
                .Returns(repositoryDummyData);

            // 預期資料
            var expected = new List<Service.DTOs.SMDepartmentDto>
            {
                new Service.DTOs.SMDepartmentDto
                {
                     DeptId = "MDK",
                     DeptLevel = 6,
                     DeptName = "資安中心",
                     EndDate = null,
                     OrderNum = 130102,
                     ParentDeptId = "MLE"
                },
                new Service.DTOs.SMDepartmentDto
                {
                     DeptId = "MEH",
                     DeptLevel = 6,
                     DeptName = "架構中心",
                     EndDate = null,
                     OrderNum = 130104,
                     ParentDeptId = "MLE"
                },
                new Service.DTOs.SMDepartmentDto
                {
                     DeptId = "MLC",
                     DeptLevel = 6,
                     DeptName = "研發中心",
                     EndDate = null,
                     OrderNum = 130103,
                     ParentDeptId = "MLE"
                },
                new Service.DTOs.SMDepartmentDto
                {
                     DeptId = "MLE",
                     DeptLevel = 6,
                     DeptName = "資訊處(部)",
                     EndDate = null,
                     OrderNum = 130100,
                     ParentDeptId = "MLE"
                },
                new Service.DTOs.SMDepartmentDto
                {
                     DeptId = "MLF",
                     DeptLevel = 6,
                     DeptName = "專案輔導中心",
                     EndDate = null,
                     OrderNum = 130101,
                     ParentDeptId = "MLE"
                }
            };

            var sut = GetSystemUnderTestInstance();

            var parameter = new DTOs.SMDepartmentParameterDto
            {
                DeptIds = new string[] { "MLE" }
            };

            // act
            var actual = sut.Get(parameter);

            //assert
            expected.ToExpectedObject().ShouldEqual(actual);
        }