Exemple #1
0
        public void AddDto(UserDto dto)
        {
            //将dto转化为对应的domainModel
            //这里做dto和domain之间的映射,由于存在多对多的关系,这里需要整合做映射,不能像一对多简单对应
            User temp = new User();

            temp.ID         = dto.ID;
            temp.Username   = dto.Username;
            temp.Password   = dto.Password;
            temp.PostType   = dto.PostType;
            temp.CreateTime = dto.CreateTime;
            temp.CreateUser = dto.CreateUser;
            //转换部门标识DepartmentID
            var departments = _dataContext.Departments;//获取所有部门

            foreach (var tem in departments)
            {
                if (tem.Name == dto.Department)
                {
                    temp.DepartmentID = tem.ID;//获取部门对应id
                }
            }
            //转换角色标识RoleID
            //var roleusers = new List<RoleUser>();
            //var roles = _dataContext.Roles;//获取所有角色
            //for (int i=0; i < dto.Roles.Count; i++)
            //{
            //    foreach (var tem in roles)
            //    {
            //        if (tem.Name == dto.Roles[i])
            //        {
            //            roleusers.Add(new RoleUser(tem.ID,dto.ID));//将角色id和用户id一起放入数据库
            //        }
            //    }
            //}
            //temp.RoleUsers = roleusers;
            _userRepository.AddEntity(temp);                                //添加用户实体
            //更新角色用户关系到RoleUser表
            int userID = _userRepository.GetUserIDByUserName(dto.Username); //根据用户名获取用户ID
            var roles  = _roleRepository.GetAllEntities();

            foreach (var role in roles)
            {
                for (int i = 0; i < dto.Roles.Count; i++)
                {
                    if (role.Name == dto.Roles[i])
                    {
                        //更新到RoleUser表
                        _roleUserRepository.AddEntity(new RoleUser(role.ID, userID));
                    }
                }
            }
        }