示例#1
0
        public async Task <bool> UpdateAccessOfRole(AccessOfRoleModel input)
        {
            using var unitOfWork     = UnitOfWorkFactory();
            _roleRepository          = unitOfWork.Repository <Role>();
            _accessControlRepository = unitOfWork.Repository <AccessControl>();
            _accessOfRoleRepository  = unitOfWork.Repository <AccessOfRole>();


            var role = await GetOrThrow(_roleRepository, input.RoleId, string.Format(AppMessages.ThisObjectNotFound, "Vai trò"));

            var accessControl = await _accessControlRepository.FindAsync(input.AccessControlId) ??
                                throw new AppException(string.Format(AppMessages.ThisObjectNotFound, "Quyền"));

            var accessOfRole = await _accessOfRoleRepository.Get(role.Id, accessControl.Id);

            // add new
            if (accessOfRole == null)
            {
                await _accessOfRoleRepository.InsertAsync(new AccessOfRole
                {
                    RoleId          = role.Id,
                    AccessControlId = accessControl.Id,
                    IsActivated     = true
                });
            }
            // update
            else
            {
                accessOfRole.IsActivated = input.IsActivated;
            }

            await unitOfWork.SaveChangesAsync();

            return(true);
        }
 public async Task <bool> UpdateAccessOfRole(AccessOfRoleModel input)
 {
     return(await _settingService.UpdateAccessOfRole(input));
 }