public AdminPermissionGroupsViewModel() { CreateNewOrEditExistingGroupCommand = new CreateNewOrEditExistingGroupCommand(this); CancelAndClearGroupActionCommand = new CancelAndClearGroupActionCommand(this); RemoveGroupCommand = new RemoveGroupCommand(this); UpdateAvaliableGroupsCommand = new UpdateAvaliableGroupsCommand(this); LoadGroupForEditionCommand = new LoadGroupForEditionCommand(this); DisplayedGroup = new UserGroupModel(); Groups = new ObservableCollection <UserGroupModel>(); if (DesignerProperties.GetIsInDesignMode(new DependencyObject())) { #region Design Placeholders CommandsStr = "sm_ban\nsm_kick\nsm_mute"; EditMode = true; Groups.AddRange(new List <UserGroupModel> { new UserGroupModel { CreatedDate = DateTime.Now, GroupCode = "Admin 2", GroupName = "Moderator", PermissionRank = 9 }, new UserGroupModel { CreatedDate = DateTime.Now, GroupCode = "Admin 3", GroupName = "Helper", PermissionRank = 7 }, new UserGroupModel { CreatedDate = DateTime.Now, GroupCode = "Admin 5", GroupName = "Rookie", PermissionRank = 5 } }); DisplayedGroup.CreatedDate = DateTime.Now; DisplayedGroup.GroupCode = "admin"; DisplayedGroup.GroupName = "Administrator 1"; DisplayedGroup.PermissionRank = 10; DisplayedGroup.AvaliableCommands = new List <string> { "sm_ban", "sm_kick", "sm_mute" }; #endregion } else { UpdateAvaliableGroups(); } }
public HomeViewModel() { _context.Database.EnsureCreated(); _context.Plants.Load(); _context.Locations.Load(); _context.Areas.Load(); IList <Location> locations = _context.Locations.Local.ToObservableCollection(); IList <Area> areas = _context.Areas.Local.ToObservableCollection(); IList <Plant> plants = _context.Plants.Local.ToObservableCollection(); List <Object> allS = (from x in plants select(Object) x).ToList(); allS.AddRange((from x in locations select(Object) x).ToList()); allS.AddRange((from x in areas select(Object) x).ToList()); HomeView = CollectionViewSource.GetDefaultView(allS); groupByLocationCommand = new GroupByLocationCommand(this); //OrderGroupCommand.cs groupByAreaCommand = new GroupByAreaCommand(this); removeGroupCommand = new RemoveGroupCommand(this); saveButtonCommand = new SaveButtonCommand(this); deleteButtonCommand = new DeleteButtonCommand(this); HomeView.GroupDescriptions.Add(new PropertyGroupDescription("AreaName")); HomeView.GroupDescriptions.Add(new PropertyGroupDescription("LocationName")); }
/// <summary> /// The Remove Group Command /// /// The remove group command allows the sender to request that the receiving entity or /// entities remove their membership, if any, in a particular group. /// /// <param name="groupId" <see cref="ushort"> Group ID</ param > /// <returns> the command result Task </returns> /// </summary> public Task <CommandResult> RemoveGroupCommand(ushort groupId) { RemoveGroupCommand command = new RemoveGroupCommand(); // Set the fields command.GroupId = groupId; return(Send(command)); }
private void RaiseCanExecuteChanged() { AddNewGroupCommand.RaiseCanExecuteChanged(); RemoveGroupCommand.RaiseCanExecuteChanged(); AddNewUserCommand.RaiseCanExecuteChanged(); RemoveUserCommand.RaiseCanExecuteChanged(); RenameGroupCommand.RaiseCanExecuteChanged(); ResetTypePermissionCommand.RaiseCanExecuteChanged(); RemoveGroupFromUserCommand.RaiseCanExecuteChanged(); }
public async Task DeleteGroup( int groupId, CancellationToken cancellationToken ) { cancellationToken.ThrowIfCancellationRequested(); var command = new RemoveGroupCommand(groupId); await _mediator.Send(command, cancellationToken); }
public void RemoveSelectedGroup() { if (uiManager.GroupSelected) { Group group = university[uiManager.SelectedGroupIndex]; ICommand command = new RemoveGroupCommand(university, group); commandsManager.Execute(command); uiManager.ClearSelection(); uiManager.UpdateUI(); } }
public async Task Fails_when_user_is_missing() => await Run( async sut => { var group = await GroupBuilder.For(sut).CreateGroup("group1") .Build(); var command = new RemoveGroupCommand(Guid.NewGuid(), group.GroupId); Func <Task> action = () => sut.SendAsync(command); await action.Should().ThrowAsync <MemberNotFoundException>(); } );
public void Remove(IWorkContext context, RemoveGroupCommand command) { this.ApplyEvent(new RemoveGroupEvent() { AggregateId = this.AggregateId, CreateDate = context.WorkTime, Creator = context.GetWorkerName(), Version = this.Version, DepartmentId = this.DepartmentId, }); }
public async Task RemoveGroup(RemoveGroupCommand command, CancellationToken cancellationToken) { if (command == null) { throw new ArgumentNullException(nameof(command)); } command.EnsureIsValid(); var group = await authorizationRepository.GetGroupById(command.Id, cancellationToken).ConfigureAwait(false); if (group is null) { throw new BusinessException(Messages.GroupNotFound); } await authorizationRepository.RemoveGroup(group, cancellationToken).ConfigureAwait(false); }
public async Task Fails_when_user_is_not_owner_despite_of_permissions() => await Run( async sut => { var group = await GroupBuilder.For(sut).CreateGroup("group1") .AsOwner() .CreateRole("role1") .AddPermission("Administrator") .AddPermission("ManageGroup") .AddPermission("ManageRoles") .AddPermission("ManageChannels").Build() .CreateMember().AssignRole(1).Build() .Build().Build(); var command = new RemoveGroupCommand(group.Member(1).UserId, group.GroupId); Func <Task> action = () => sut.SendAsync(command); await action.Should().ThrowAsync <InsufficientPermissionsException>(); } );
public async Task Removes_group_when_user_is_owner() => await Run(async sut => { var group = await GroupBuilder.For(sut).CreateGroup("group1") .Build(); var command = new RemoveGroupCommand(group.OwnerId, group.GroupId); await sut.SendAsync(command); //then group is removed var groups = await sut.QueryAsync( new GetGroupsQuery(command.UserId, command.GroupId)); groups.Should().BeEmpty(); //then all members are removed var members = await sut.QueryAsync(new GetMembersQuery(group.OwnerId, group.GroupId)); members.Should().BeEmpty(); //then all channels are removed var channels = await sut.QueryAsync(new GetGroupChannelsQuery(group.OwnerId, group.GroupId)); channels.Should().BeEmpty(); //then all roles are removed var roles = await sut.QueryAsync(new GetRolesQuery(group.OwnerId, group.GroupId)); roles.Should().BeEmpty(); });
public ICommandHandlerResult Execute(ICommandContext context, RemoveGroupCommand command) { var root = context.GetAggregateRoot(command.AggregateId, () => groupRepository.Rebuild(command.AggregateId)); if (root == null) { return(context.CreateResult(CommandHandlerStatus.NotExists)); } root.Remove(context, command); if (root.CanNotCommit()) { return(context.CreateResult(CommandHandlerStatus.NothingChanged)); } //删除组的权限 var groupResources = this.groupResourceRepository.RebuildRootUsingGroupId(command.AggregateId); if (groupResources != null && groupResources.Any()) { var deletes = new List <GroupResourceAggregateRoot>(groupResources.Count()); foreach (var r in groupResources) { r.Remove(context); if (r.CanCommit()) { deletes.Add(r); } } if (deletes.Any()) { this.groupResourceRepository.Remove(deletes); } } //删除组的员工 var groupEmployees = this.employeeGroupRepository.RebuildRootUsingGroupId(command.AggregateId); if (groupResources != null && groupResources.Any()) { var deletes = new List <EmployeeGroupAggregateRoot>(groupEmployees.Count()); foreach (var r in groupEmployees) { r.Remove(context); if (r.CanCommit()) { deletes.Add(r); } } if (deletes.Any()) { this.employeeGroupRepository.Remove(deletes); } } if (groupRepository.Remove(root) <= 0) { throw new RepositoryExcutingException("执行失败,请稍后再试"); } return(context.CreateResult(CommandHandlerStatus.Success)); }
public async Task RemoveGroupAsync(Group group) { await @lock.ReaderLockAsync(); try { if (closed) throw new ObjectDisposedException(GetType().Name); if (!IsLoggedIn) throw new NotLoggedInException(); if (!Groups.Contains(group)) throw new InvalidOperationException("This group is no longer in use."); if (group.Users.Count > 0) throw new InvalidOperationException("Remove all users from group first."); Command cmd = new RemoveGroupCommand(group.Guid); Command response = await responseTracker.GetResponseAsync<RemoveGroupCommand>(cmd, defaultTimeout); Groups.RemoveGroup(group); OnGroupRemoved(new GroupEventArgs(group, false)); } finally { @lock.ReaderRelease(); } }
/// <summary> /// Get the command from command string by checking the starting letters of string /// and initializes a command of that type /// </summary> /// <param name="command">command string</param> /// <returns>command base</returns> public CommandBase GetCommandObject(string command) { CommandBase incommingCmd = null; if (command.StartsWith("INIT ") || command.StartsWith("INIT_NEW ")) { incommingCmd = new InitializeCommand(bookie.RequestLoggingEnabled); } if (command.StartsWith("INITSECONDARY ")) { incommingCmd = new InitSecondarySocketCommand(); } #if !(DEVELOPMENT) else if (command.StartsWith("GETOPTIMALSERVER")) { incommingCmd = new GetOptimalServerCommand(); } #endif else if (command.StartsWith("GETCACHEBINDING")) { incommingCmd = new GetCacheBindingCommand(); } else if (command.StartsWith("ADD ")) { incommingCmd = new AddCommand(); } else if (command.StartsWith("INSERT ")) { incommingCmd = new InsertCommand(); } else if (command.StartsWith("GET ")) { incommingCmd = new GetCommand(); } else if (command.StartsWith("GETTAG ")) { incommingCmd = new GetTagCommand(); } else if (command.StartsWith("REMOVE ")) { incommingCmd = new RemoveCommand(); } else if (command.StartsWith("REMOVEGROUP ")) { incommingCmd = new RemoveGroupCommand(); } else if (command.StartsWith("CONTAINS ")) { incommingCmd = new ContainsCommand(); } else if (command.StartsWith("COUNT ")) { incommingCmd = new CountCommand(); } else if (command.StartsWith("CLEAR ")) { incommingCmd = new ClearCommand(); } else if (command.StartsWith("NOTIF ")) { incommingCmd = new NotificationRegistered(); } else if (command.StartsWith("RAISECUSTOMNOTIF ")) { incommingCmd = new RaiseCustomNotifCommand(); } else if (command.StartsWith("ADDBULK ")) { incommingCmd = new BulkAddCommand(); } else if (command.StartsWith("INSERTBULK ")) { incommingCmd = new BulkInsertCommand(); } else if (command.StartsWith("GETBULK ")) { incommingCmd = new BulkGetCommand(); } else if (command.StartsWith("REMOVEBULK ")) { incommingCmd = new BulkRemoveCommand(); } else if (command.StartsWith("UNLOCK ")) { incommingCmd = new UnlockCommand(); } else if (command.StartsWith("LOCK ")) { incommingCmd = new LockCommand(); } else if (command.StartsWith("ISLOCKED ")) { incommingCmd = new IsLockedCommand(); } else if (command.StartsWith("GETCACHEITEM ")) { incommingCmd = new GetCacheItemCommand(); } else if (command.StartsWith("GETGROUPKEYS ")) { incommingCmd = new GetGroupKeys(); } else if (command.StartsWith("GETGROUPDATA ")) { incommingCmd = new GetGroupData(); } else if (command.StartsWith("ADDDEPENDENCY ")) { incommingCmd = new AddDependencyCommand(); } else if (command.StartsWith("ADDSYNCDEPENDENCY ")) { incommingCmd = new AddSyncDependencyCommand(); } else if (command.StartsWith("GETENUM ")) { incommingCmd = new GetEnumeratorCommand(); } else if (command.StartsWith("REGKEYNOTIF ")) { incommingCmd = new RegisterKeyNotifcationCommand(); } else if (command.StartsWith("UNREGKEYNOTIF ")) { incommingCmd = new UnRegisterKeyNoticationCommand(); } else if (command.StartsWith("GETTYPEINFOMAP ")) { incommingCmd = new GetTypeInfoMap(); } else if (command.StartsWith("GETHASHMAP ")) { incommingCmd = new GetHashmapCommand(); } else if (command.StartsWith("SEARCH ")) { incommingCmd = new SearchCommand(); } else if (command.StartsWith("SEARCHENTERIES ")) { incommingCmd = new SearchEnteriesCommand(); } else if (command.StartsWith("BULKREGKEYNOTIF ")) { incommingCmd = new RegisterBulkKeyNotifcationCommand(); } else if (command.StartsWith("BULKUNREGKEYNOTIF ")) { incommingCmd = new UnRegsisterBulkKeyNotification(); } else if (command.StartsWith("DISPOSE ")) { incommingCmd = new DisposeCommand(); } #if COMMUNITY else if (command.StartsWith("OPENSTREAM ")) { incommingCmd = new OpenStreamCommand(); } else if (command.StartsWith("CLOSESTREAM ")) { incommingCmd = new CloseStreamCommand(); } else if (command.StartsWith("READFROMSTREAM ")) { incommingCmd = new ReadFromStreamCommand(); } else if (command.StartsWith("WRITETOSTREAM ")) { incommingCmd = new WriteToStreamCommand(); } else if (command.StartsWith("GETSTREAMLENGTH ")) { incommingCmd = new GetStreamLengthCommand(); } #endif else if (command.StartsWith("GETLOGGINGINFO ")) { incommingCmd = new GetLogginInfoCommand(); } return(incommingCmd); }
public virtual void ProcessCommand(ClientManager clientManager, object cmd, long acknowledgementId, UsageStats stats) { Alachisoft.NCache.Common.Protobuf.Command command = cmd as Alachisoft.NCache.Common.Protobuf.Command; if (ServerMonitor.MonitorActivity) { ServerMonitor.LogClientActivity("CmdMgr.PrsCmd", "enter"); } if (ServerMonitor.MonitorActivity) { ServerMonitor.LogClientActivity("CmdMgr.PrsCmd", "" + command); } if (SocketServer.Logger.IsDetailedLogsEnabled) { SocketServer.Logger.NCacheLog.Info("ConnectionManager.ReceiveCallback", clientManager.ToString() + " COMMAND to be executed : " + command.type.ToString() + " RequestId :" + command.requestID); } HPTimeStats milliSecWatch = new HPTimeStats(); milliSecWatch.BeginSample(); bool clientDisposed = false; bool isAsync = false; string _methodName = command.type.ToString();; Stopwatch commandExecution = new Stopwatch(); commandExecution.Start(); CommandBase incommingCmd = null; bool isUnsafeCommand = false, doThrottleCommand = true; switch (command.type) { case Alachisoft.NCache.Common.Protobuf.Command.Type.INIT: Alachisoft.NCache.Common.Protobuf.InitCommand initCommand = command.initCommand; initCommand.requestId = command.requestID; if (SocketServer.Logger.IsDetailedLogsEnabled) { SocketServer.Logger.NCacheLog.Info("ConnectionManager.ReceiveCallback", clientManager.ToString() + " RequestId :" + command.requestID); } incommingCmd = new InitializeCommand(bookie.RequestLoggingEnabled); doThrottleCommand = false; break; case Alachisoft.NCache.Common.Protobuf.Command.Type.EXECUTE_READER: Alachisoft.NCache.Common.Protobuf.ExecuteReaderCommand executeReaderCommand = command.executeReaderCommand; executeReaderCommand.requestId = command.requestID; incommingCmd = new ExecuteReaderCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.EXECUTE_READER_CQ: Alachisoft.NCache.Common.Protobuf.ExecuteReaderCQCommand executeReaderCQCommand = command.executeReaderCQCommand; executeReaderCQCommand.requestId = command.requestID; incommingCmd = new ExecuteReaderCQCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_READER_CHUNK: Alachisoft.NCache.Common.Protobuf.GetReaderNextChunkCommand getReaderChunkCommand = command.getReaderNextChunkCommand; getReaderChunkCommand.requestId = command.requestID; incommingCmd = new GetReaderChunkCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.DISPOSE_READER: Alachisoft.NCache.Common.Protobuf.DisposeReaderCommand disposeReaderCommand = command.disposeReaderCommand; disposeReaderCommand.requestId = command.requestID; incommingCmd = new DisposeReaderCommand(); break; // Added in server to cater getProductVersion request from client case Common.Protobuf.Command.Type.GET_PRODUCT_VERSION: command.getProductVersionCommand.requestId = command.requestID; incommingCmd = new GetProductVersionCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.ADD: command.addCommand.requestId = command.requestID; isAsync = command.addCommand.isAsync; incommingCmd = new AddCommand(); isUnsafeCommand = true; break; case Alachisoft.NCache.Common.Protobuf.Command.Type.ADD_BULK: command.bulkAddCommand.requestId = command.requestID; incommingCmd = new BulkAddCommand(); isUnsafeCommand = true; break; case Alachisoft.NCache.Common.Protobuf.Command.Type.ADD_DEPENDENCY: command.addDependencyCommand.requestId = command.requestID; incommingCmd = new AddDependencyCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.ADD_SYNC_DEPENDENCY: command.addSyncDependencyCommand.requestId = command.requestID; incommingCmd = new AddSyncDependencyCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.CLEAR: command.clearCommand.requestId = command.requestID; incommingCmd = new ClearCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.CLOSE_STREAM: command.closeStreamCommand.requestId = command.requestID; incommingCmd = new CloseStreamCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.CONTAINS: command.containsCommand.requestId = command.requestID; incommingCmd = new ContainsCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.COUNT: command.countCommand.requestId = command.requestID; incommingCmd = new CountCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.DISPOSE: command.disposeCommand.requestId = command.requestID; incommingCmd = new DisposeCommand(); clientDisposed = true; break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET: command.getCommand.requestId = command.requestID; incommingCmd = new GetCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_BULK: command.bulkGetCommand.requestId = command.requestID; incommingCmd = new BulkGetCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_CACHE_ITEM: command.getCacheItemCommand.requestId = command.requestID; incommingCmd = new GetCacheItemCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_CACHE_BINDING: command.getCacheBindingCommand.requestId = command.requestID; incommingCmd = new GetCacheBindingCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_ENUMERATOR: command.getEnumeratorCommand.requestId = command.requestID; incommingCmd = new GetEnumeratorCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_NEXT_CHUNK: command.getNextChunkCommand.requestId = command.requestID; incommingCmd = new GetNextChunkCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_GROUP_NEXT_CHUNK: command.getGroupNextChunkCommand.requestId = command.requestID; incommingCmd = new GetGroupNextChunkCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_GROUP: Alachisoft.NCache.Common.Protobuf.GetGroupCommand getGroupCommand = command.getGroupCommand; getGroupCommand.requestId = command.requestID; if (getGroupCommand.getGroupKeys) { incommingCmd = new GetGroupKeys(); _methodName = MethodsName.GetGroupKeys; } else { incommingCmd = new GetGroupData(); _methodName = MethodsName.GetGroupData; } break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_HASHMAP: command.getHashmapCommand.requestId = command.requestID; incommingCmd = new GetHashmapCommand(); doThrottleCommand = false; break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_LOGGING_INFO: command.getLoggingInfoCommand.requestId = command.requestID; incommingCmd = new GetLogginInfoCommand(); break; #if !(DEVELOPMENT) case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_OPTIMAL_SERVER: command.getOptimalServerCommand.requestId = command.requestID; incommingCmd = new GetOptimalServerCommand(); doThrottleCommand = false; break; #endif case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_STREAM_LENGTH: command.getStreamLengthCommand.requestId = command.requestID; incommingCmd = new GetStreamLengthCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_TAG: command.getTagCommand.requestId = command.requestID; incommingCmd = new GetTagCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.REMOVE_BY_TAG: command.removeByTagCommand.requestId = command.requestID; incommingCmd = new RemoveByTagCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_KEYS_TAG: command.getKeysByTagCommand.requestId = command.requestID; incommingCmd = new GetKeysByTagCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_TYPEINFO_MAP: command.getTypeInfoMapCommand.requestId = command.requestID; incommingCmd = new GetTypeInfoMap(); doThrottleCommand = false; break; case Alachisoft.NCache.Common.Protobuf.Command.Type.INSERT: command.insertCommand.requestId = command.requestID; incommingCmd = new InsertCommand(); isAsync = command.insertCommand.isAsync; isUnsafeCommand = true; break; case Alachisoft.NCache.Common.Protobuf.Command.Type.INSERT_BULK: command.bulkInsertCommand.requestId = command.requestID; incommingCmd = new BulkInsertCommand(); isUnsafeCommand = true; break; case Alachisoft.NCache.Common.Protobuf.Command.Type.ISLOCKED: command.isLockedCommand.requestId = command.requestID; incommingCmd = new IsLockedCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.LOCK: command.lockCommand.requestId = command.requestID; incommingCmd = new LockCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.LOCK_VERIFY: command.lockVerifyCommand.requestId = command.requestID; incommingCmd = new VerifyLockCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.OPEN_STREAM: command.openStreamCommand.requestId = command.requestID; incommingCmd = new OpenStreamCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.RAISE_CUSTOM_EVENT: command.raiseCustomEventCommand.requestId = command.requestID; incommingCmd = new RaiseCustomNotifCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.READ_FROM_STREAM: command.readFromStreamCommand.requestId = command.requestID; incommingCmd = new ReadFromStreamCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.REGISTER_BULK_KEY_NOTIF: command.registerBulkKeyNotifCommand.requestId = command.requestID; incommingCmd = new RegisterBulkKeyNotifcationCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.REGISTER_KEY_NOTIF: command.registerKeyNotifCommand.requestId = command.requestID; incommingCmd = new RegisterKeyNotifcationCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.REGISTER_NOTIF: command.registerNotifCommand.requestId = command.requestID; incommingCmd = new NotificationRegistered(); doThrottleCommand = false; break; case Common.Protobuf.Command.Type.REGISTER_POLLING_NOTIFICATION: command.registerPollNotifCommand.requestId = command.requestID; incommingCmd = new RegisterPollingNotificationCommand(); break; case Common.Protobuf.Command.Type.POLL: command.pollCommand.requestId = command.requestID; incommingCmd = new PollCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.REMOVE: command.removeCommand.requestId = command.requestID; incommingCmd = new RemoveCommand(); isUnsafeCommand = true; break; case Alachisoft.NCache.Common.Protobuf.Command.Type.DELETE: command.deleteCommand.requestId = command.requestID; incommingCmd = new DeleteCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.REMOVE_BULK: command.bulkRemoveCommand.requestId = command.requestID; incommingCmd = new BulkRemoveCommand(); isUnsafeCommand = true; break; case Alachisoft.NCache.Common.Protobuf.Command.Type.DELETE_BULK: command.bulkDeleteCommand.requestId = command.requestID; incommingCmd = new BulkDeleteCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.REMOVE_GROUP: command.removeGroupCommand.requestId = command.requestID; incommingCmd = new RemoveGroupCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.SEARCH: Alachisoft.NCache.Common.Protobuf.SearchCommand searchCommand = command.searchCommand; searchCommand.requestId = command.requestID; if (searchCommand.searchEntries) { incommingCmd = new SearchEnteriesCommand(); _methodName = "SearchEnteries"; } else { incommingCmd = new SearchCommand(); _methodName = "Search"; } break; case Alachisoft.NCache.Common.Protobuf.Command.Type.SEARCH_CQ: Alachisoft.NCache.Common.Protobuf.SearchCQCommand searchCQCommand = command.searchCQCommand; searchCQCommand.requestId = command.requestID; if (searchCQCommand.searchEntries) { _methodName = "SearchCQEnteries"; incommingCmd = new SearchEnteriesCQCommand(); } else { _methodName = "SearchCQ"; incommingCmd = new SearchCQCommand(); } break; case Alachisoft.NCache.Common.Protobuf.Command.Type.UNREGISTER_CQ: command.unRegisterCQCommand.requestId = command.requestID; incommingCmd = new UnRegisterCQCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.REGISTER_CQ: command.registerCQCommand.requestId = command.requestID; incommingCmd = new RegisterCQCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.DELETEQUERY: Alachisoft.NCache.Common.Protobuf.DeleteQueryCommand deleteQueryCommand = command.deleteQueryCommand; deleteQueryCommand.requestId = command.requestID; if (deleteQueryCommand.isRemove) { incommingCmd = new RemoveQueryCommand(); _methodName = "RemoveQuery"; } else { incommingCmd = new DeleteQueryCommand(); _methodName = "DeleteQuery"; } break; case Alachisoft.NCache.Common.Protobuf.Command.Type.UNLOCK: command.unlockCommand.requestId = command.requestID; incommingCmd = new UnlockCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.UNREGISTER_BULK_KEY_NOTIF: command.unRegisterBulkKeyNotifCommand.requestId = command.requestID; incommingCmd = new UnRegsisterBulkKeyNotification(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.UNREGISTER_KEY_NOTIF: command.unRegisterKeyNotifCommand.requestId = command.requestID; incommingCmd = new UnRegisterKeyNoticationCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.WRITE_TO_STREAM: command.writeToStreamCommand.requestId = command.requestID; incommingCmd = new WriteToStreamCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.ADD_ATTRIBUTE: command.addAttributeCommand.requestId = command.requestID; incommingCmd = new AddAttributeCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.SYNC_EVENTS: command.syncEventsCommand.requestId = command.requestID; incommingCmd = new SyncEventCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.INQUIRY_REQUEST: incommingCmd = new InquiryRequestCommand(bookie); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.MAP_REDUCE_TASK: command.mapReduceTaskCommand.requestId = command.requestID; incommingCmd = new MapReduceTaskCommand(); break; case Common.Protobuf.Command.Type.TASK_CALLBACK: command.TaskCallbackCommand.requestId = command.requestID; incommingCmd = new TaskCallbackCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.CANCEL_TASK: incommingCmd = new TaskCancelCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.RUNNING_TASKS: command.RunningTasksCommand.requestId = command.requestID; incommingCmd = new GetRunningTasksCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.TASK_PROGRESS: command.TaskProgressCommand.requestId = command.requestID; incommingCmd = new TaskProgressCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.TASK_ENUMERATOR: incommingCmd = new TaskEnumeratorCommand(); break; case Common.Protobuf.Command.Type.TASK_NEXT_RECORD: command.NextRecordCommand.RequestId = command.requestID; incommingCmd = new TaskNextRecordCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.INVOKE_ENTRY_PROCESSOR: incommingCmd = new InvokeEntryProcessorCommand(); break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_RUNNING_SERVERS: command.getRunningServersCommand.requestId = command.requestID; incommingCmd = new GetRunningServersCommand(); doThrottleCommand = false; break; case Alachisoft.NCache.Common.Protobuf.Command.Type.GET_EXPIRATION: command.getExpirationCommand.requestId = command.requestID; incommingCmd = new GetExpirationCommand(); doThrottleCommand = false; break; case Common.Protobuf.Command.Type.GET_CONNECTED_CLIENTS: command.getConnectedClientsCommand.requestId = command.requestID; incommingCmd = new GetConnectedClientsCommand(); break; case Common.Protobuf.Command.Type.TOUCH: command.touchCommand.requestId = command.requestID; incommingCmd = new TouchCommand(); break; #region PUB_SUB case Common.Protobuf.Command.Type.GET_TOPIC: command.getTopicCommand.requestId = command.requestID; incommingCmd = new GetTopicCommand(); break; case Common.Protobuf.Command.Type.SUBSCRIBE_TOPIC: command.subscribeTopicCommand.requestId = command.requestID; incommingCmd = new SubscribeTopicCommand(); break; case Common.Protobuf.Command.Type.UNSUBSCRIBE_TOPIC: command.unSubscribeTopicCommand.requestId = command.requestID; incommingCmd = new UnSubscribeTopicCommand(); break; case Common.Protobuf.Command.Type.REMOVE_TOPIC: command.removeTopicCommand.requestId = command.requestID; incommingCmd = new RemoveTopicCommand(); break; case Common.Protobuf.Command.Type.MESSAGE_PUBLISH: command.messagePublishCommand.requestId = command.requestID; incommingCmd = new MessagePublishCommand(); break; case Common.Protobuf.Command.Type.GET_MESSAGE: command.getMessageCommand.requestId = command.requestID; incommingCmd = new GetMessageCommand(); break; case Common.Protobuf.Command.Type.MESSAGE_ACKNOWLEDGMENT: command.mesasgeAcknowledgmentCommand.requestId = command.requestID; incommingCmd = new MessageAcknowledgementCommand(); break; #endregion } if (SocketServer.IsServerCounterEnabled) { _perfStatsCollector.MsecPerCacheOperationBeginSample(); } try { if (isUnsafeCommand && clientManager.SupportAcknowledgement) { if (clientDisposed) { bookie.RemoveClientAccount(clientManager.ClientID); } else { bookie.RegisterRequest(clientManager.ClientID, command.requestID, command.commandID, acknowledgementId); } } incommingCmd.ExecuteCommand(clientManager, command); } catch (Exception ex) { if (isUnsafeCommand && clientManager.SupportAcknowledgement) { bookie.UpdateRequest(clientManager.ClientID, command.requestID, command.commandID, Alachisoft.NCache.Common.Enum.RequestStatus.RECEIVED_WITH_ERROR, null); } throw; } if (SocketServer.Logger.IsDetailedLogsEnabled) { SocketServer.Logger.NCacheLog.Info("ConnectionManager.ReceiveCallback", clientManager.ToString() + " after executing COMMAND : " + command.type.ToString() + " RequestId :" + command.requestID); } if (SocketServer.IsServerCounterEnabled) { _perfStatsCollector.MsecPerCacheOperationEndSample(); } #if COMMUNITY if (clientManager != null && clientManager.CmdExecuter != null && incommingCmd.OperationResult == OperationResult.Success) { clientManager.CmdExecuter.UpdateSocketServerStats(new SocketServerStats(clientManager.ClientsRequests, clientManager.ClientsBytesSent, clientManager.ClientsBytesRecieved)); } #endif if (isUnsafeCommand && clientManager.SupportAcknowledgement) { if (clientManager != null && clientManager.IsDisposed && incommingCmd.OperationResult == OperationResult.Failure) { bookie.UpdateRequest(clientManager.ClientID, command.requestID, command.commandID, Common.Enum.RequestStatus.RECEIVED_WITH_ERROR, null); } else { bookie.UpdateRequest(clientManager.ClientID, command.requestID, command.commandID, Common.Enum.RequestStatus.RECEIVED_AND_EXECUTED, incommingCmd.SerializedResponsePackets); } } if (clientManager != null && !clientManager.IsCacheStopped) { if (incommingCmd.SerializedResponsePackets != null) { if (SocketServer.IsServerCounterEnabled) { _perfStatsCollector.IncrementResponsesPerSecStats(1); } foreach (IList reponse in incommingCmd.SerializedResponsePackets) { ConnectionManager.AssureSend(clientManager, reponse, Alachisoft.NCache.Common.Enum.Priority.Normal); } } commandExecution.Stop(); if (!isAsync && command.type != Common.Protobuf.Command.Type.PING && (incommingCmd.SerializedResponsePackets == null || incommingCmd.SerializedResponsePackets.Count <= 0)) { try { if (Management.APILogging.APILogManager.APILogManger != null && Management.APILogging.APILogManager.EnableLogging) { APILogItemBuilder log = new APILogItemBuilder(); log.GenerateCommandManagerLog(_methodName, clientManager.ClientID.ToLower(), clientManager.ClientSocketId.ToString(), commandExecution.Elapsed, "Serialized Response Packets for " + _methodName + " command is null or empty."); } } catch { } } } double commandElapsedSeconds = commandExecution.Elapsed.TotalSeconds; if (ServiceConfiguration.EnableCommandThresholdLogging && commandElapsedSeconds > ServiceConfiguration.CommandExecutionThreshold) { try { string commandName; string details = incommingCmd.GetCommandParameters(out commandName); string[] clientIdParts = clientManager.ClientID.Split(':'); string clientipid = "CLIENT"; try { clientipid = clientIdParts[clientIdParts.Length - 2] + ":" + clientIdParts[clientIdParts.Length - 1]; } catch { } CommandLogManager.LogInfo(clientipid, commandElapsedSeconds.ToString(), commandName, details); } catch (Exception ex) { } } if (stats != null) { stats.EndSample(); if (incommingCmd != null) { // Increment Counter incommingCmd.IncrementCounter(_perfStatsCollector, stats.Current); } } if (ServerMonitor.MonitorActivity) { ServerMonitor.LogClientActivity("CmdMgr.PrsCmd", "exit"); } }
public ICommand BuildCommand() { ICommand result = new RemoveGroupCommand(); return(result); }
public void Handle(RemoveGroupCommand message) { this.Handle(message.AcSession, message.EntityId, true); }
public async Task <IActionResult> Remove(RemoveGroupCommand command, CancellationToken cancellationToken = default) { await authorizationAppService.RemoveGroup(command, cancellationToken); return(Ok()); }