Ejemplo n.º 1
0
        /// <summary>
        /// 删除权限分组
        /// </summary>
        /// <param name="deleteInfo">删除信息</param>
        /// <returns>执行结果</returns>
        public Result DeleteAuthorityGroup(DeleteAuthorityGroupCmdDto deleteInfo)
        {
            using (var businessWork = WorkFactory.Create())
            {
                #region 参数判断

                if (deleteInfo == null || deleteInfo.AuthorityGroupIds.IsNullOrEmpty())
                {
                    return(Result.FailedResult("没有指定要删除的权限分组"));
                }

                #endregion

                var result = AuthorityGroupDomainService.RemoveAuthorityGroup(deleteInfo.AuthorityGroupIds);
                if (!result.Success)
                {
                    return(result);
                }
                var exectVal = businessWork.Commit();
                return(exectVal.ExecutedSuccess ? Result.SuccessResult("删除成功") : Result.FailedResult("删除失败"));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="modifyInfo">修改信息</param>
        /// <returns></returns>
        public Result ModifyPassword(ModifyPasswordCmdDto modifyInfo)
        {
            using (var businessWork = WorkFactory.Create())
            {
                #region 参数判断

                if (modifyInfo == null)
                {
                    return(Result.FailedResult("没有指定任何修改信息"));
                }

                #endregion

                var modifyResult = userService.ModifyPassword(modifyInfo.MapTo <ModifyUserPassword>());
                if (!modifyResult.Success)
                {
                    return(modifyResult);
                }
                var execValue = businessWork.Commit();
                return(execValue.ExecutedSuccess ? Result.SuccessResult("修改成功") : Result.FailedResult("修改失败"));
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 修改角色排序
        /// </summary>
        /// <param name="sortInfo">排序修改信息</param>
        /// <returns></returns>
        public Result ModifyRoleSort(ModifyRoleSortCmdDto sortInfo)
        {
            using (var businessWork = WorkFactory.Create())
            {
                #region 参数判断

                if (sortInfo == null || sortInfo.RoleSysNo <= 0)
                {
                    return(Result.FailedResult("没有指定要修改的角色"));
                }

                #endregion

                var modifyResult = roleService.ModifyRoleSort(sortInfo.RoleSysNo, sortInfo.NewSort);
                if (!modifyResult.Success)
                {
                    return(modifyResult);
                }
                var executeVal = businessWork.Commit();
                return(executeVal.ExecutedSuccess ? Result.SuccessResult("排序修改成功") : Result.FailedResult("排序修改失败"));
            }
        }
Ejemplo n.º 4
0
        public IEnumerable <IFound> Search(SearchArguments searchArguments)
        {
            var result = new List <AlbumFound>();

            IEnumerable <string> searchWords = searchArguments.SearchQuery.SplitSearchString();

            using (IUnitOfWork unitOfWork = WorkFactory.GetUnitOfWork())
            {
                IEnumerable <AlbumModel> avialableAlbums = secureService.GetAvailableAlbums(searchArguments.UserId,
                                                                                            unitOfWork);

                if (searchArguments.IsSearchAlbumsByName)
                {
                    IEnumerable <AlbumFound> found = SearchByCondition(searchWords, avialableAlbums,
                                                                       model => searchWords.Any(searchWord => model.Name.Contains(searchWord)),
                                                                       CalculateRelevanceByName);

                    result.AddRange(found);
                }

                if (searchArguments.IsSearchAlbumsByDescription)
                {
                    IEnumerable <AlbumFound> found = SearchByCondition(searchWords, avialableAlbums,
                                                                       model => searchWords.Any(searchWord => model.Description.Contains(searchWord)),
                                                                       CalculateRelevaceByDescription);

                    result.AddRange(found);
                }

                if (searchArguments.IsSearchAlbumsByTags)
                {
                    IEnumerable <AlbumFound> found = SearchByTags(avialableAlbums, searchWords);

                    result.AddRange(found);
                }
            }

            return(Group(result));
        }
Ejemplo n.º 5
0
        public void DeleteAlbum(int userId, int albumId)
        {
            using (IUnitOfWork unitOfWork = WorkFactory.GetUnitOfWork())
            {
                UserModel  user  = GetUser(userId, unitOfWork);
                AlbumModel album = GetAlbum(userId, albumId, unitOfWork);

                if (IsAlbumSystem(album))
                {
                    throw new AlbumNotFoundException(string.Format("Can't delete system album with id={0}", albumId));
                }

                if (album.OwnerId != userId && !user.IsAdmin)
                {
                    throw new AlbumNotFoundException(
                              string.Format("You have no permissions for deleting album with id={0}", albumId));
                }

                album.IsDeleted = true;

                unitOfWork.SaveChanges();
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 修改用户绑定角色
        /// </summary>
        /// <param name="bindInfo">绑定信息</param>
        public Result ModifyUserBindRole(ModifyUserBindRoleCmdDto bindInfo)
        {
            if (bindInfo == null || (bindInfo.Binds.IsNullOrEmpty() && bindInfo.UnBinds.IsNullOrEmpty()))
            {
                return(Result.FailedResult("没有指定任何要修改的绑定信息"));
            }
            using (var businessWork = WorkFactory.Create())
            {
                //解绑
                if (!bindInfo.UnBinds.IsNullOrEmpty())
                {
                    userRoleService.UnBindUserAndRole(bindInfo.UnBinds.Select(c => new Tuple <User, Role>(User.CreateUser(c.Item1?.SysNo ?? 0), Role.CreateRole(c.Item2?.SysNo ?? 0))).ToArray());
                }
                //绑定
                if (!bindInfo.Binds.IsNullOrEmpty())
                {
                    userRoleService.BindUserAndRole(bindInfo.Binds.Select(c => new Tuple <User, Role>(User.CreateUser(c.Item1?.SysNo ?? 0), Role.CreateRole(c.Item2?.SysNo ?? 0))).ToArray());
                }

                var commitResult = businessWork.Commit();
                return(commitResult.ExecutedSuccess ? Result.SuccessResult("修改成功") : Result.FailedResult("修改失败"));
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 删除任务工作文件
        /// </summary>
        /// <param name="deleteInfo">删除信息</param>
        /// <returns>执行结果</returns>
        public Result DeleteJobFile(DeleteJobFileCmdDto deleteInfo)
        {
            #region 参数判断

            if (deleteInfo == null || deleteInfo.JobFileIds.IsNullOrEmpty())
            {
                return(Result.FailedResult("没有指定要删除的任务工作文件"));
            }

            #endregion

            using (var businessWork = WorkFactory.Create())
            {
                var jobFiles     = deleteInfo.JobFileIds.Select(c => JobFile.CreateJobFile(c));
                var deleteResult = JobFileDomainService.DeleteJobFile(jobFiles);
                if (!deleteResult.Success)
                {
                    return(deleteResult);
                }
                var commitResult = businessWork.Commit();
                return(commitResult.ExecutedSuccess ? Result.SuccessResult("删除成功") : Result.FailedResult("删除失败"));
            }
        }
Ejemplo n.º 8
0
        public IEnumerable <int> AddPhotos(int userId, int albumId, IEnumerable <PhotoModel> photos)
        {
            using (IUnitOfWork unitOfWork = WorkFactory.GetUnitOfWork())
            {
                AlbumModel album = GetAlbum(userId, albumId);

                var notAllowed = !_secureService.CanUserAddPhoto(userId, album.Id);

                if (notAllowed)
                {
                    throw new NoEnoughPrivilegesException("User can't get access to photos");
                }

                IEnumerable <PhotoModel> photoModels = photos as IList <PhotoModel> ?? photos.ToList();
                foreach (PhotoModel photo in photoModels)
                {
                    album.Photos.Add(photo);
                }
                unitOfWork.SaveChanges();

                return(photoModels.Select(photo => photo.Id).ToList());
            }
        }
        /// <summary>
        /// Remove Objects
        /// </summary>
        /// <param name="objDatas">objects</param>
        public sealed override async Task RemoveAsync(params DT[] objDatas)
        {
            #region Verify Parameters

            if (objDatas == null || objDatas.Length <= 0)
            {
                throw new Exception("objDatas is null or empty");
            }
            foreach (var obj in objDatas)
            {
                if (obj == null)
                {
                    throw new Exception("remove object data is null");
                }
                if (!obj.CanBeRemove)
                {
                    throw new Exception("object data cann't to be remove");
                }
            }

            #endregion

            var records = new List <IActivationRecord>(objDatas.Length);
            foreach (var data in objDatas)
            {
                var record = await ExecuteRemoveAsync(data).ConfigureAwait(false);//execute remove

                if (record == null)
                {
                    continue;
                }
                records.Add(record);
            }
            RepositoryEventBus.PublishRemove(GetType(), objDatas);
            WorkFactory.RegisterActivationRecord(records.ToArray());
        }
        /// <summary>
        /// save datas
        /// </summary>
        /// <param name="datas">datas</param>
        /// <param name="activationOption">activation option</param>
        public sealed override async Task SaveAsync(IEnumerable <T> datas, ActivationOption activationOption = null)
        {
            #region verify parameters

            if (datas.IsNullOrEmpty())
            {
                throw new Exception($"{nameof(datas)} is null or empty");
            }
            foreach (var obj in datas)
            {
                if (obj == null)
                {
                    continue;
                }
                if (!obj.CanBeSave)
                {
                    throw new Exception("data cann't to be save");
                }
            }

            #endregion

            var records = new List <IActivationRecord>(datas.Count());
            foreach (var data in datas)
            {
                var record = await ExecuteSaveAsync(data, activationOption).ConfigureAwait(false);//execute save

                if (record == null)
                {
                    continue;
                }
                records.Add(record);
            }
            RepositoryEventBus.PublishSave(GetType(), datas, activationOption);
            WorkFactory.RegisterActivationRecord(records.ToArray());
        }
Ejemplo n.º 11
0
 public int PhotoCount(int userId)
 {
     using (IUnitOfWork unitOfWork = WorkFactory.GetUnitOfWork())
         return(unitOfWork.Photos.Filter(model => model.OwnerId == userId && !model.IsDeleted).Count());
 }