Exemple #1
0
        /// <summary>
        /// 创建实体
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public virtual async Task <OperationResult> CreateAsync(DTOUser entity)
        {
            //校验参数!=NULL
            PublicHelper.CheckArgument(entity, "entity");
            if (string.IsNullOrWhiteSpace(entity.Password) == true)
            {
                return(new OperationResult(OperationResultType.ParamError,
                                           String.Format(CultureInfo.CurrentCulture,
                                                         Systems.SysResources.PasswordNullError)));
            }
            // 实体模型转换
            var user = DtoMap.Map <SysUser>(entity);
            // 校验实体
            var validateResult = await Validator.ValidateAsync(user);

            if (validateResult.ResultType != OperationResultType.Success)
            {
                return(validateResult);
            }
            user.PasswordHash = PasswordValidator.HashPassword(entity.Password);
            // 添加到实体集合中
            Repository.Insert(user, AutoSaved);
            // 返回正确
            return(new OperationResult(OperationResultType.Success));
        }
Exemple #2
0
        /// <summary>
        /// 创建实体
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public virtual async Task <OperationResult> CreateAsync(DTODepartment entity)
        {
            //校验参数!=NULL
            PublicHelper.CheckArgument(entity, "entity");
            // 实体模型转换
            var Department = DtoMap.Map <SysDepartment>(entity);
            // 校验实体
            var validateResult = await Validator.ValidateAsync(Department);

            if (validateResult.ResultType != OperationResultType.Success)
            {
                return(validateResult);
            }
            try
            {
                // 添加到实体集合中
                Repository.Insert(Department, AutoSaved);
                // 返回正确
                return(new OperationResult(OperationResultType.Success));
            }
            catch (DataAccessException ex)
            {
                return(new OperationResult(OperationResultType.Error,
                                           ex.Message));
            }
        }
Exemple #3
0
        /// <summary>
        /// 获取指定页用户集合
        /// </summary>
        /// <param name="Index"></param>
        /// <param name="limit"></param>
        /// <param name="Order"></param>
        /// <returns></returns>
        public virtual Task <DTOPage <DTOUser> > UserPageListAsync(int skip, int limit, string Order)
        {
            PublicHelper.CheckArgument(Order, "Order");
            PublicHelper.CheckArgument(skip, "Index", true);
            PublicHelper.CheckArgument(limit, "Limit");

            //获取记录数
            var allCount = Repository.Entities.Count();

            // 计算跳过记录数
            if (skip < 0 || skip > allCount || limit < 1)
            {
                throw PublicHelper.ThrowBusinessException(
                          String.Format(CultureInfo.CurrentCulture,
                                        Systems.SysResources.PageError,
                                        "跳过记录数大于总数或每页数小于1"));
            }
            try
            {
                var result = new DTOPage <DTOUser>();
                // 获取排序查询
                var query = Repository.Entities.OrderBy(Order);
                // 获取分页数据
                var users = query.Skip(skip).Take(limit).ToList();
                result.Total = allCount;
                result.Data  = DtoMap.Map <IEnumerable <DTOUser> >(users);
                // 模型转换
                return(Task.FromResult <DTOPage <DTOUser> >(result));
            }
            catch (DataAccessException ex)
            {
                throw PublicHelper.ThrowBusinessException(ex.Message, ex);
            }
        }
Exemple #4
0
        /// <summary>
        /// 按照名称查询
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public virtual Task <DTODepartment> FindByNameAsync(string name)
        {
            PublicHelper.CheckArgument(name, "name");
            var role = Repository.Entities.SingleOrDefault(m => m.Name.Equals(name));

            if (role == null)
            {
                return(Task.FromResult <DTODepartment>(null));
            }
            return(Task.FromResult <DTODepartment>(DtoMap.Map <DTODepartment>(role)));
        }
Exemple #5
0
        /// <summary>
        /// 按照Email查询用户
        /// </summary>
        /// <param name="email"></param>
        /// <returns></returns>
        public virtual Task <DTOUser> FindByEmailAsync(string email)
        {
            PublicHelper.CheckArgument(email, "email");
            var user = Repository.Entities.SingleOrDefault(m => m.Email.Equals(email));

            if (user == null)
            {
                return(Task.FromResult <DTOUser>(null));
            }
            return(Task.FromResult <DTOUser>(DtoMap.Map <DTOUser>(user)));
        }
Exemple #6
0
        /// <summary>
        /// 按照ID查询用户
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public virtual Task <DTOUser> FindByIdAsync(string id)
        {
            PublicHelper.CheckArgument(id, "id");
            var user = Repository.Entities.SingleOrDefault(m => m.Id.Equals(id));

            if (user == null)
            {
                return(Task.FromResult <DTOUser>(null));
            }
            return(Task.FromResult <DTOUser>(DtoMap.Map <DTOUser>(user)));
        }
Exemple #7
0
        /// <summary>
        /// 按照用户名获取Email查询用户
        /// </summary>
        /// <param name="access"></param>
        /// <returns></returns>
        public virtual Task <DTOUser> FindUserAsync(string access)
        {
            PublicHelper.CheckArgument(access, "access");
            var user = Repository.Entities.SingleOrDefault(m => m.Name == access || m.Email == access);

            if (user == null)
            {
                return(Task.FromResult <DTOUser>(null));
            }
            var dtoUser = DtoMap.Map <DTOUser>(user);

            return(Task.FromResult <DTOUser> (dtoUser));
        }
Exemple #8
0
        /// <summary>
        /// 根据用户名或Email,密码获取用户
        /// </summary>
        /// <param name="access"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public virtual Task <DTOUser> FindUserAsync(string access, string password)
        {
            PublicHelper.CheckArgument(access, "access");
            PublicHelper.CheckArgument(password, "password");
            // 获取用户
            var user = Repository.Entities.SingleOrDefault(m => m.Name == access || m.Email == access);

            if (user == null)
            {
                return(Task.FromResult <DTOUser>(null));
            }
            //校验密码
            if (PasswordValidator.VerifyHashedPassword(user.PasswordHash, password))
            {
                return(Task.FromResult <DTOUser>(DtoMap.Map <DTOUser>(user)));
            }
            return(Task.FromResult <DTOUser>(null));
        }
Exemple #9
0
        /// <summary>
        /// 获取指定页集合
        /// </summary>
        /// <param name="Index"></param>
        /// <param name="Limit"></param>
        /// <param name="Order"></param>
        /// <returns></returns>
        public virtual Task <IEnumerable <DTODepartment> > PageListAsync(int skip, int limit, string order, string parent = null)
        {
            PublicHelper.CheckArgument(order, "Order");
            PublicHelper.CheckArgument(skip, "Skip", true);
            PublicHelper.CheckArgument(limit, "Limit");

            var queryAll = Repository.Entities;

            if (string.IsNullOrWhiteSpace(parent) == false)
            {
                queryAll = queryAll.Where(d => d.Parent.Name.Equals(parent));
            }
            else
            {
                queryAll = queryAll.Where(d => d.Parent == null);
            }
            //获取记录数
            var allCount = queryAll.Count();

            // 计算跳过记录数
            if (skip < 0 || skip > allCount || limit < 1)
            {
                throw PublicHelper.ThrowBusinessException(
                          String.Format(CultureInfo.CurrentCulture,
                                        Systems.SysResources.PageError,
                                        "跳过记录数大于总数或每页数小于1"));
            }
            try
            {
                // 获取排序查询
                var query = queryAll.OrderBy(order);
                // 获取分页数据
                var users = query.Skip(skip).Take(limit).ToList();
                // 模型转换
                return(Task.FromResult <IEnumerable <DTODepartment> >(DtoMap.Map <IEnumerable <DTODepartment> >(users)));
            }
            catch (DataAccessException ex)
            {
                throw PublicHelper.ThrowBusinessException(ex.Message, ex);
            }
        }
Exemple #10
0
        /// <summary>
        /// 更新实体
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public virtual async Task <OperationResult> UpdateAsync(DTODepartment entity)
        {
            /// 更新角色信息
            /// 考虑是否需要限制更改角色名称
            /// 其他更新信息同样存在这个问题
            //校验参数!=NULL
            PublicHelper.CheckArgument(entity, "entity");
            // 获取用户
            var Department = Repository.Entities.SingleOrDefault(m => m.Name.Equals(entity.Name));

            if (Department == null)
            {
                return(new OperationResult(OperationResultType.Warning,
                                           String.Format(CultureInfo.CurrentCulture,
                                                         Systems.SysResources.DepartmentNotExist
                                                         , entity.Name)));
            }
            // 实体模型转换
            Department = DtoMap.Map <DTODepartment, SysDepartment>(entity, Department);
            // 校验实体
            var validateResult = await Validator.ValidateAsync(Department);

            if (validateResult.ResultType != OperationResultType.Success)
            {
                return(validateResult);
            }
            try
            {
                //更新实体
                Repository.Update(Department, AutoSaved);
                // 返回正确
                return(new OperationResult(OperationResultType.Success));
            }
            catch (DataAccessException ex)
            {
                return(await Task.FromResult <OperationResult>(
                           new OperationResult(OperationResultType.Error, ex.Message)));
            }
        }
Exemple #11
0
        /// <summary>
        /// 更新实体
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public virtual async Task <OperationResult> UpdateAsync(DTOUser entity)
        {
            //校验参数!=NULL
            PublicHelper.CheckArgument(entity, "entity");
            // 获取用户
            var user = Repository.Entities.SingleOrDefault(m => m.Name.Equals(entity.Name));

            if (user == null)
            {
                return(new OperationResult(OperationResultType.Warning,
                                           String.Format(CultureInfo.CurrentCulture,
                                                         Systems.SysResources.UserNoExist
                                                         , entity.Name)));
            }
            // 实体模型转换
            user = DtoMap.Map <DTOUser, SysUser>(entity, user);
            // 校验实体
            var validateResult = await Validator.ValidateAsync(user);

            if (validateResult.ResultType != OperationResultType.Success)
            {
                return(validateResult);
            }
            try
            {
                //更新实体
                Repository.Update(user, AutoSaved);
            }
            catch (DataAccessException ex)
            {
                return(await Task.FromResult <OperationResult>(
                           new OperationResult(OperationResultType.Error, ex.Message)));
            }
            // 返回正确
            return(new OperationResult(OperationResultType.Success));
        }