Exemplo n.º 1
0
        public ServiceResult AddRole(ObjRoleEdit objRoleEdit)
        {
            try
            {
                //_logger.LogTrace("Save role start");
                var roleTitle = objRoleEdit.Title.Trim();
                var roleName  = objRoleEdit.Name.Trim();
                var roles     = _roleRepository.GetRoles().ToList();
                if (roles.Any(r => string.Equals(r.Title, roleTitle)))
                {
                    return(ServiceResult.ErrorResult("Роль с таким именем уже существует"));
                }
                var role = new Role()
                {
                    Title = roleTitle,
                    Name  = roleName,
                };
                _roleRepository.Insert(role);
                _roleRepository.SaveChanges();
                //_logger.LogTrace("Role Saving");


                //Получили названия всех выбранных разрешений
                var selectedPemissionNames = objRoleEdit.SelectedActivities
                                             .Where(x => x.Checked)
                                             .Select(x => x.Name)
                                             .ToList();

                //Отобрали по именам
                var selectedPermissions = ActivityHelper.GetActivities()
                                          .SelectMany(x => x.Permisioins)
                                          .Where(x => selectedPemissionNames.Contains(x.Key))
                                          .Select(x => x.Key)
                                          .ToList();

                if (selectedPermissions.Any())
                {
                    foreach (var permission in selectedPermissions)
                    {
                        var RoleActivity = new RoleActivity()
                        {
                            RoleId   = role.Id,
                            Activity = permission
                        };
                        _roleActivityRepository.Insert(RoleActivity);
                    }
                    _roleActivityRepository.SaveChanges();
                }
                //_logger.LogTrace("RoleActivity save success!!");
                return(ServiceResult.SuccessResult(role.Id));
            }
            catch (Exception ex)
            {
                //_logger.LogError(ex.ToString());
                return(ServiceResult.ErrorResult("Ошибка при создании роли"));
            }
        }
        public bool AddActivityToRole(int roleId, int activityId)
        {
            var roleActivity = new RoleActivity()
            {
                ActivityId = activityId, RoleId = roleId
            };

            using (var conn = new OracleConnection(ConnectionString))
            {
                conn.Insert(roleActivity);
            }

            return(true);
        }
Exemplo n.º 3
0
        public ServiceResult EditRole(ObjRoleEdit model)
        {
            try
            {
                //_logger.LogTrace("Start edti role saving");
                //обновляем роль
                var role = _roleRepository.GetFull(model.Id);

                if (role == null)
                {
                    return(ServiceResult.ErrorResult("Отсутствует редактируемая роль"));
                }
                //_logger.LogTrace("Change Role {0}", role.Title);
                var roleTitle = model.Title.Trim();
                var roleName  = model.Name.Trim();
                var roles     = _roleRepository.GetRoles();
                if (roles.Any(r => string.Equals(r.Title, roleTitle) && r.Id != model.Id))
                {
                    return(ServiceResult.ErrorResult("Роль с таким именем уже существует"));
                }

                role.Title = roleTitle;
                role.Name  = roleName;

                _roleRepository.Update(role);
                _roleRepository.SaveChanges();
                //_logger.LogTrace("Edit role save");
                role.RoleActivitys.ForEach(x => _roleActivityRepository.Delete(x.Id));

                //Получаем названия всех выбранных разрешений
                var selectedPemissionNames = model.SelectedActivities
                                             .Where(x => x.Checked)
                                             .Select(x => x.Name)
                                             .ToList();

                //Получаем по именам
                var selectedPermissions = ActivityHelper.GetActivities()
                                          .SelectMany(x => x.Permisioins)
                                          .Where(x => selectedPemissionNames.Contains(x.Key))
                                          .Select(x => x.Key)
                                          .ToList();

                if (selectedPermissions.Any())
                {
                    foreach (var permission in selectedPermissions)
                    {
                        var RoleActivity = new RoleActivity()
                        {
                            RoleId   = role.Id,
                            Activity = permission
                        };
                        _roleActivityRepository.Insert(RoleActivity);
                    }
                    _roleActivityRepository.SaveChanges();
                }
                //_logger.LogTrace("Role activity save");
                return(ServiceResult.SuccessResult(role.Id));
            }
            catch (Exception ex)
            {
                //_logger.LogError("Saving Role error id = {0} / error: {1}", model.Id, ex);
                return(ServiceResult.ErrorResult("Ошибка при сохранении изменений роли"));
            }
        }