public void Complete(CommandResult commandResult) { CommandExecuteContext.OnCommandExecuted(commandResult); if (_mailbox != null) { _mailbox.CompleteMessage(this); } }
/// <summary> /// 执行命令。 /// </summary> /// <param name="context">命令执行上下文。</param> public override void Execute(CommandExecuteContext context) { var settings = ShellSettingsManager.LoadSettings() .FirstOrDefault(i => i.Name.Equals(TenantName, StringComparison.OrdinalIgnoreCase)); if (settings == null) { context.WriteLine("找名称为 '{0}' 的租户信息。", TenantName); return; } if (Domains == null) { Domains = new List <string>(); } Domains = Domains.Where(i => !string.IsNullOrWhiteSpace(i)).Select(i => i.Trim()).ToList(); var host = settings["RequestUrlHost"]; string[] hosts = null; var msg = string.Empty; context.Is(() => { msg = "添加"; var list = string.IsNullOrWhiteSpace(host) ? new string[0] : host.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray(); var domains = Domains.Where(i => !list.Any(d => i.Equals(d, StringComparison.OrdinalIgnoreCase))); hosts = list.Concat(domains).ToArray(); }, "Add-SiteDomain"); context.Is(() => { msg = "设置"; hosts = Domains.ToArray(); }, "Set-SiteDomain"); context.Is(() => { msg = "删除"; var list = string.IsNullOrWhiteSpace(host) ? new string[0] : host.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray(); hosts = list.Where(i => !Domains.Any(d => i.Equals(d, StringComparison.OrdinalIgnoreCase))).ToArray(); }, "Remove-SiteDomain", "Delete-SiteDomain"); if (hosts == null) { return; } settings["RequestUrlHost"] = string.Join(",", hosts); ShellSettingsManager.SaveSettings(settings); context.WriteLine(msg + "成功。"); }
void IQueueMessageHandler.Handle(QueueMessage queueMessage, IMessageContext context) { var commandItems = new Dictionary <string, string>(); var commandMessage = _jsonSerializer.Deserialize <CommandMessage>(Encoding.UTF8.GetString(queueMessage.Body)); var commandType = _typeNameProvider.GetType(queueMessage.Tag); var command = _jsonSerializer.Deserialize(commandMessage.CommandData, commandType) as ICommand; var commandExecuteContext = new CommandExecuteContext(_repository, _aggregateRootStorage, queueMessage, context, commandMessage, _sendReplyService); commandItems["CommandReplyAddress"] = commandMessage.ReplyAddress; _processor.Process(new ProcessingCommand(command, commandExecuteContext, commandItems)); }
void IQueueMessageHandler.Handle(QueueMessage queueMessage, IMessageContext context) { var commandItems = new Dictionary <string, string>(); var commandMessage = _jsonSerializer.Deserialize <CommandMessage>(Encoding.UTF8.GetString(queueMessage.Body)); var commandType = _typeCodeProvider.GetType(commandMessage.CommandTypeCode); var command = _jsonSerializer.Deserialize(commandMessage.CommandData, commandType) as ICommand; var commandExecuteContext = new CommandExecuteContext(_repository, queueMessage, context, commandMessage, _commandExecutedMessageSender); commandItems["DomainEventHandledMessageTopic"] = commandMessage.DomainEventHandledMessageTopic; _processor.Process(new ProcessingCommand(command, commandExecuteContext, commandItems)); }
/// <summary> /// 执行命令。 /// </summary> /// <param name="context">命令执行上下文。</param> public override void Execute(CommandExecuteContext context) { var setting = SettingsManager.LoadSettings() .FirstOrDefault(i => TenantName.Equals(i.Name, StringComparison.OrdinalIgnoreCase)); if (setting == null) { context.WriteLine("找不到任何可用的租户信息。"); } GetTenantsCommand.WriteSetting(new[] { setting }, context); }
/// <summary> /// 执行命令。 /// </summary> /// <param name="context">命令执行上下文。</param> public override void Execute(CommandExecuteContext context) { var settings = SettingsManager.LoadSettings().FirstOrDefault(i => string.Equals(i.Name, TenantName, StringComparison.OrdinalIgnoreCase)); var isAdd = settings == null; if (settings != null && !Quiet) { context.WriteLine("已经存在名称为 '{0}' 的租户,确定要替换吗?\t输入'Y'继续执行,输入其他则终止执行。", TenantName); var t = context.Read("y"); if (!t.Equals("y", StringComparison.OrdinalIgnoreCase)) { return; } } else { settings = new ShellSettings(); } if (List != null) { foreach (var temp in List.Where(i => !string.IsNullOrWhiteSpace(i))) { var index = temp.IndexOf("=", StringComparison.Ordinal); if (index == -1) { continue; } var key = temp.Substring(0, index).Escape(); var value = temp.Substring(index); if (value.StartsWith("=")) { value = value.Remove(0, 1); } if (string.IsNullOrWhiteSpace(value)) { continue; } value = value.Escape(); settings[key] = value.Escape(); } } settings.Name = TenantName; settings.State = State; SettingsManager.SaveSettings(settings); context.WriteLine("{0}租户 '{1}' 成功。", isAdd ? "添加" : "修改", TenantName); }
void IKafkaMessageHandler.Handle(KafkaMessage message, IKafkaMessageContext context) { var commandItems = new Dictionary <string, string>(); var eNodeMessage = _jsonSerializer.Deserialize <ENodeMessage>(message.Value); var commandMessage = _jsonSerializer.Deserialize <CommandMessage>(eNodeMessage.Body); var commandType = _typeNameProvider.GetType(eNodeMessage.Tag); var command = _jsonSerializer.Deserialize(commandMessage.CommandData, commandType) as ICommand; var commandExecuteContext = new CommandExecuteContext(_repository, _aggregateStorage, message, context, commandMessage, _sendReplyService); commandItems["CommandReplyAddress"] = commandMessage.ReplyAddress; _logger.InfoFormat("ENode command message received, messageId: {0}, aggregateRootId: {1}", command.Id, command.AggregateRootId); _commandProcessor.Process(new ProcessingCommand(command, commandExecuteContext, commandItems)); }
public static void EnableEditorToolsCompilationMenuItemHandler(CommandExecuteContext context) { if (Menu.GetChecked(MenuPath)) { DisableEditorToolsCompilation(); } else { EnableEditorToolsCompilation(); } Menu.SetChecked(MenuPath, File.Exists(CompileEditorToolsFlagFilePath)); }
/// <summary> /// 执行命令。 /// </summary> /// <param name="context">命令执行上下文。</param> public override void Execute(CommandExecuteContext context) { var settings = ShellSettingsManager.LoadSettings() .FirstOrDefault(i => i.Name.Equals(TenantName, StringComparison.OrdinalIgnoreCase)); if (settings == null) { context.WriteLine("找名称为 '{0}' 的租户信息。", TenantName); return; } if (Domains == null) Domains = new List<string>(); Domains = Domains.Where(i => !string.IsNullOrWhiteSpace(i)).Select(i => i.Trim()).ToList(); var host = settings["RequestUrlHost"]; string[] hosts = null; var msg = string.Empty; context.Is(() => { msg = "添加"; var list = string.IsNullOrWhiteSpace(host) ? new string[0] : host.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray(); var domains = Domains.Where(i => !list.Any(d => i.Equals(d, StringComparison.OrdinalIgnoreCase))); hosts = list.Concat(domains).ToArray(); }, "Add-SiteDomain"); context.Is(() => { msg = "设置"; hosts = Domains.ToArray(); }, "Set-SiteDomain"); context.Is(() => { msg = "删除"; var list = string.IsNullOrWhiteSpace(host) ? new string[0] : host.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray(); hosts = list.Where(i => !Domains.Any(d => i.Equals(d, StringComparison.OrdinalIgnoreCase))).ToArray(); }, "Remove-SiteDomain", "Delete-SiteDomain"); if (hosts == null) return; settings["RequestUrlHost"] = string.Join(",", hosts); ShellSettingsManager.SaveSettings(settings); context.WriteLine(msg + "成功。"); }
static void DrawPlaybar(CommandExecuteContext ctx) { // Enter / Exit Playmode var isOrWillEnterPlaymode = EditorApplication.isPlayingOrWillChangePlaymode; var isPlaying = EditorApplication.isPlaying; GUI.changed = false; var buttonOffset = isPlaying ? 4 : 0; var c = GUI.color + new Color(.01f, .01f, .01f, .01f); GUI.contentColor = new Color(1.0f / c.r, 1.0f / c.g, 1.0f / c.g, 1.0f / c.a); GUI.SetNextControlName("ToolbarPlayModePlayButton"); GUILayout.Toggle(isOrWillEnterPlaymode, s_PlayIcons[buttonOffset], isPlaying ? LiveLinkStyles.CommandLeftOn : LiveLinkStyles.CommandLeft); GUI.backgroundColor = Color.white; if (GUI.changed) { TogglePlaying(); GUIUtility.ExitGUI(); } // Pause game GUI.changed = false; buttonOffset = EditorApplication.isPaused ? 4 : 0; GUI.SetNextControlName("ToolbarPlayModePauseButton"); var isPaused = GUILayout.Toggle(EditorApplication.isPaused, s_PlayIcons[buttonOffset + 1], LiveLinkStyles.CommandMid); if (GUI.changed) { EditorApplication.isPaused = isPaused; GUIUtility.ExitGUI(); } using (new EditorGUI.DisabledScope(!isPlaying)) { // Step playmode GUI.SetNextControlName("ToolbarPlayModeStepButton"); if (GUILayout.Button(s_PlayIcons[2], LiveLinkStyles.CommandRight)) { EditorApplication.Step(); GUIUtility.ExitGUI(); } } s_LiveLinkBuildSettingsDropdown.DrawDropdown(); s_LinkConnectionsDropdown.DrawDropdown(); }
/// <summary> /// 执行命令。 /// </summary> /// <param name="context">命令执行上下文。</param> public override void Execute(CommandExecuteContext context) { var command = _commandService.GetCommand(FindName); context.Write(Environment.NewLine); if (command == null) { context.WriteLine("找不到名称为 \"{0}\",的命令。", FindName); } else { context.WriteLine("下面是命令 '{0}' 的帮助信息。", FindName); context.WriteLine(command.GetUsage()); } }
public static void DeleteSelection(CommandExecuteContext context) { var session = Application.AuthoringProject?.Session; var worldManager = session.GetManager <IWorldManager>(); var m_EntityManager = worldManager.EntityManager; var m_SceneManager = session.GetManager <IEditorSceneManagerInternal>(); var selection = SelectionUtility.GetEntityGuidSelection(); foreach (var group in selection.Select(worldManager.GetEntityFromGuid).GroupBy(e => m_EntityManager.GetSharedComponentData <SceneGuid>(e))) { var graph = m_SceneManager.GetGraphForScene(group.Key); foreach (var node in group.Select(graph.FindNode)) { graph.Delete(node); } } }
/// <summary> /// 执行命令。 /// </summary> /// <param name="context">命令执行上下文。</param> public override void Execute(CommandExecuteContext context) { var settings = SettingsManager.LoadSettings().FirstOrDefault(i => string.Equals(i.Name, TenantName, StringComparison.OrdinalIgnoreCase)); var isAdd = settings == null; if (settings != null && !Quiet) { context.WriteLine("已经存在名称为 '{0}' 的租户,确定要替换吗?\t输入'Y'继续执行,输入其他则终止执行。", TenantName); var t = context.Read("y"); if (!t.Equals("y", StringComparison.OrdinalIgnoreCase)) return; } else settings = new ShellSettings(); if (List != null) { foreach (var temp in List.Where(i => !string.IsNullOrWhiteSpace(i))) { var index = temp.IndexOf("=", StringComparison.Ordinal); if (index == -1) continue; var key = temp.Substring(0, index).Escape(); var value = temp.Substring(index); if (value.StartsWith("=")) value = value.Remove(0, 1); if (string.IsNullOrWhiteSpace(value)) continue; value = value.Escape(); settings[key] = value.Escape(); } } settings.Name = TenantName; settings.State = State; SettingsManager.SaveSettings(settings); context.WriteLine("{0}租户 '{1}' 成功。", isAdd ? "添加" : "修改", TenantName); }
public static void CreateEmptyChild(CommandExecuteContext context = null) { var session = Application.AuthoringProject.Session; var worldManager = session.GetManager <IWorldManager>(); using (var pooled = ListPool <Entity> .GetDisposable()) { var list = pooled.List; foreach (var guid in SelectionUtility.GetEntityGuidSelection()) { list.Add(CreateEntity(Application.AuthoringProject.Session.GetManager <IArchetypeManager>().Empty, "Entity", guid)); } if (list.Count == 0) { list.Add(CreateEntity(Application.AuthoringProject.Session.GetManager <IArchetypeManager>().Empty, "Entity", default)); } EntityHierarchyWindow.SelectOnNextPaint(list.Select(worldManager.GetEntityGuid).ToList()); } }
/// <summary> /// 执行命令。 /// </summary> /// <param name="command">命令对象。</param> /// <param name="context">命令上下文。</param> /// <returns>是否执行成功。</returns> private static bool Executed(ICommand command, CommandExecuteContext context) { try { command.Is(c => c.Executing(context)); command.Execute(context); return(true); } catch (Exception exception) { if (command.Is(c => c.Fail(context, exception))) { throw; } } finally { command.Is(c => c.Executed(context)); } return(false); }
/// <summary> /// 执行命令。 /// </summary> /// <param name="context">命令执行上下文。</param> public override void Execute(CommandExecuteContext context) { var commands = _commandService.GetCommands(); //命令信息 if (commands == null) return; var help = CommandHelper.GetHelpText(); foreach (var text in commands .Select(i => { var usage = i.GetUsage(); return string.IsNullOrWhiteSpace(usage) ? i.CommandName : usage; })) { help.AddPreOptionsLine(text); } context.WriteLine(help); }
internal static void DrawPlayBar(CommandExecuteContext context) { if (PlayBarStyles == null) { PlayBarStyles = new Styles(); } EditorGUILayout.BeginHorizontal(PlayBarStyles.OffsetStyle); var settings = Application.AuthoringProject?.Settings; if (settings == null) { if (GUILayout.Button("Open a DOTS project")) { CommandService.Execute(CommandIds.File.OpenProject); GUIUtility.ExitGUI(); } EditorGUILayout.EndHorizontal(); return; } EditorGUILayout.BeginVertical(); var workspaceManager = Application.AuthoringProject.Session.GetManager <WorkspaceManager>(); workspaceManager.ActivePlatform = PlatformSettings.DrawPlatformPopup(workspaceManager.ActivePlatform, style: PlayBarStyles.DropdownStyle); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); workspaceManager.ActiveConfiguration = (Configuration)EditorGUILayout.EnumPopup(workspaceManager.ActiveConfiguration, PlayBarStyles.DropdownStyle, GUILayout.MinWidth(60)); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); if (GUILayout.Button(PlayBarStyles.PlayIcon, PlayBarStyles.CommandStyle)) { CommandService.Execute(CommandIds.Edit.Play); GUIUtility.ExitGUI(); } EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); }
/// <summary> /// 执行命令。 /// </summary> /// <param name="context">命令执行上下文。</param> public override void Execute(CommandExecuteContext context) { var setting = SettingsManager.LoadSettings() .FirstOrDefault(i => i.Name.Equals(TenantName, StringComparison.OrdinalIgnoreCase)); if (setting == null) { context.WriteLine("找不到名称为 '{0}' 的租户。", TenantName); return; } if (!Quiet) { context.WriteLine("确定要删除租户 '{0}' 吗?\t输入'Y'继续执行,输入其他则终止执行。", setting.Name); var t = context.Read("y"); if (!t.Equals("y", StringComparison.OrdinalIgnoreCase)) { return; } } SettingsManager.DeleteSettings(TenantName); context.WriteLine("成功删除租户 '{0}'。", TenantName); }
public static void DuplicateSelection(CommandExecuteContext context) { var session = Application.AuthoringProject?.Session; var worldManager = session.GetManager <IWorldManager>(); var m_EntityManager = worldManager.EntityManager; var m_SceneManager = session.GetManager <IEditorSceneManagerInternal>(); using (var pooled = ListPool <ISceneGraphNode> .GetDisposable()) { var toSelect = pooled.List; var selection = SelectionUtility.GetEntityGuidSelection(); foreach (var group in selection.Select(worldManager.GetEntityFromGuid) .GroupBy(e => m_EntityManager.GetSharedComponentData <SceneGuid>(e))) { var graph = m_SceneManager.GetGraphForScene(group.Key); var list = group.Select(graph.FindNode).Cast <ISceneGraphNode>().ToList(); toSelect.AddRange(graph.Duplicate(list)); } EntityHierarchyWindow.SelectOnNextPaint(toSelect.OfType <EntityNode>().Select(e => e.Guid).ToList()); } }
/// <summary> /// 执行命令。 /// </summary> /// <param name="context">命令执行上下文。</param> public override void Execute(CommandExecuteContext context) { var commands = _commandService.GetCommands(); //命令信息 if (commands == null) { return; } var help = CommandHelper.GetHelpText(); foreach (var text in commands .Select(i => { var usage = i.GetUsage(); return(string.IsNullOrWhiteSpace(usage) ? i.CommandName : usage); })) { help.AddPreOptionsLine(text); } context.WriteLine(help); }
static void InstantiateDefaultScene(CommandExecuteContext context) { if (SceneTemplatePreferences.Get().newDefaultSceneOverride == SceneTemplatePreferences.NewDefaultSceneOverride.DefaultBuiltin) { EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); return; } var templateInfos = SceneTemplateUtils.GetSceneTemplateInfos(); var templateInfo = templateInfos.FirstOrDefault(info => info.isPinned && !info.IsInMemoryScene); if (templateInfo == null) { templateInfo = templateInfos.FirstOrDefault(info => !info.isPinned && !info.IsInMemoryScene); } if (templateInfo != null && templateInfo.sceneTemplate) { Instantiate(templateInfo.sceneTemplate, false); return; } EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); }
/// <summary> /// Start /// </summary> /// <returns></returns> public CommandConsumer Start() { _sendReplyService.Start(); _consumer.OnMessageReceived += (sender, e) => { try { var commandItems = new Dictionary <string, string>(); var commandMessage = _jsonSerializer.Deserialize <CommandMessage>(Encoding.UTF8.GetString(e.Context.GetBody())); var commandType = _typeNameProvider.GetType(e.Context.GetMessageType()); var command = _jsonSerializer.Deserialize(commandMessage.CommandData, commandType) as ICommand; var commandExecuteContext = new CommandExecuteContext(_repository, _aggregateStorage, commandMessage, _sendReplyService, e.Context, _logger); commandItems["CommandReplyAddress"] = commandMessage.ReplyAddress; _logger.DebugFormat("ENode command message received, messageId: {0}, aggregateRootId: {1}", command.Id, command.AggregateRootId); _commandProcessor.Process(new ProcessingCommand(command, commandExecuteContext, commandItems)); } catch (Exception ex) { _logger.Error($"ENode command message handle failed: {ex.Message}, commandMessage: {e.Context.GetBody()}, commandType: {e.Context.GetMessageType()}", ex); } }; _consumer.Start(); return(this); }
/// <summary> /// 执行命令。 /// </summary> /// <param name="context">命令执行上下文。</param> public override void Execute(CommandExecuteContext context) { var settings = SettingsManager.LoadSettings(); WriteSetting(settings, context); }
public static void ImportSampleProjects(CommandExecuteContext context) { ImportSampleProjects(); }
public static void BuildAndRun(CommandExecuteContext context) { BuildAndRun(); }
public static void BuildProject(CommandExecuteContext context) { BuildProject(); }
/// <summary> /// 执行命令。 /// </summary> /// <param name="context">命令执行上下文。</param> public override void Execute(CommandExecuteContext context) { var setting = SettingsManager.LoadSettings() .FirstOrDefault(i => TenantName.Equals(i.Name, StringComparison.OrdinalIgnoreCase)); if (setting == null) context.WriteLine("找不到任何可用的租户信息。"); GetTenantsCommand.WriteSetting(new[] { setting }, context); }
/// <summary> /// 执行命令。 /// </summary> /// <param name="command">命令对象。</param> /// <param name="context">命令上下文。</param> /// <returns>是否执行成功。</returns> private static bool Executed(ICommand command, CommandExecuteContext context) { try { command.Is(c => c.Executing(context)); command.Execute(context); return true; } catch (Exception exception) { if (command.Is(c => c.Fail(context, exception))) throw; } finally { command.Is(c => c.Executed(context)); } return false; }
public static void ValidateEntityCreation(CommandExecuteContext context) { context.result = Application.AuthoringProject != null; }
public static void UICanvas(CommandExecuteContext context) { var entity = CreateEntity(Application.AuthoringProject.Session.GetManager <IArchetypeManager>().UICanvas, "UICanvas"); SetComponentDefaultValue <UICanvas>(entity); }
public static void Sprite(CommandExecuteContext context) { var entity = CreateEntity(Application.AuthoringProject.Session.GetManager <IArchetypeManager>().Sprite, "Sprite"); SetComponentDefaultValue <Sprite2DRenderer>(entity); }
public static void Camera(CommandExecuteContext context) { var entity = CreateEntity(Application.AuthoringProject.Session.GetManager <IArchetypeManager>().Camera, "Camera"); SetComponentDefaultValue <Camera2D>(entity); }
public static void SaveProject(CommandExecuteContext context) { SaveProject(); }
private static void ValidateDuplicateSelection(CommandExecuteContext context) { context.result = !SelectionUtility.IsEntitySelectionEmpty(); }
public static void CloseProject(CommandExecuteContext context) { CloseProject(); }
public static void CreateEmpty(CommandExecuteContext context = null) { CreateEntity(Application.AuthoringProject.Session.GetManager <IArchetypeManager>().Empty, "Entity"); }
/// <summary> /// 执行命令。 /// </summary> /// <param name="context">命令执行上下文。</param> public override void Execute(CommandExecuteContext context) { var setting = SettingsManager.LoadSettings() .FirstOrDefault(i => i.Name.Equals(TenantName, StringComparison.OrdinalIgnoreCase)); if (setting == null) { context.WriteLine("找不到名称为 '{0}' 的租户。", TenantName); return; } if (!Quiet) { context.WriteLine("确定要删除租户 '{0}' 吗?\t输入'Y'继续执行,输入其他则终止执行。", setting.Name); var t = context.Read("y"); if (!t.Equals("y", StringComparison.OrdinalIgnoreCase)) return; } SettingsManager.DeleteSettings(TenantName); context.WriteLine("成功删除租户 '{0}'。", TenantName); }