void Start() { GenerateConsolePostion(); cameraRig.transform.position = new Vector3(userX, 0, userZ); GameObject go = Instantiate(consoleFab, new Vector3(consolePosX, 0, consolePosZ), Quaternion.identity); CB = go.GetComponentInChildren <ConsoleBehavior>(); CB.controllerLeft = leftController; CB.consoleX = consolePosX; CB.consoleZ = consolePosZ; CB.userX = userX; CB.userZ = userZ; CB.cameraRig = cameraRig; }
public static void ReadKey( this ConsoleBehavior consoler) { Console.ReadKey(); }
public static void WriteLine( this ConsoleBehavior consoler, string output) { }
public void GetActionsWithExpressionItems() { // arrange var scientistType = Entity.GetByName <EntityType>("Scientist").First(); var bornField = scientistType.GetAllFields().FirstOrDefault(f => f.Name == "Born"); var scientist = Entity.Create(new EntityRef(scientistType)); scientist.SetField("core:name", "Alex Engelhardt"); scientist.SetField(new EntityRef(bornField), new DateTime(1977, 10, 24)); scientist.Save(); var alanTuring = Entity.GetByName <Resource>("Alan Turing").First(); alanTuring.Should().NotBeNull(); alanTuring.Id.Should().BeGreaterThan(0); var report = Entity.Create <ReadiNow.Model.Report>(); var sb = new ConsoleBehavior(); var am = new ActionMenu(); var a = new ActionMenuItem { Name = "Test '%Resource%' Action", EmptySelectName = "Test Expression Action", IsActionItem = true, IsActionButton = true, IsContextMenu = true, AppliesToSelection = true, ActionRequiresExpression = new ActionExpression { ActionExpressionString = "datediff(year, Born, [Alan].[Born]) = 0", ActionExpressionEntities = new EntityCollection <NamedReference> { new NamedReference { Name = "Alan", ReferencedEntity = alanTuring } } } }; am.MenuItems.Add(a); am.IncludeActionsAsButtons.Add(a); sb.BehaviorActionMenu = am; report.SelectionBehavior = sb; report.Save(); var svc = new ActionService(); svc.FlushCaches(); var request = new ActionRequestExtended { LastSelectedResourceId = scientist.Id, SelectedResourceIds = new[] { scientist.Id }, EntityTypeId = scientistType.Id, ReportId = report.Id, ReportBaseType = scientistType, HostResourceIds = new long[0] }; // act var result = svc.GetActions(request); // assert result.Should().NotBeNull(); result.Actions.Should().NotBeNull(); result.Actions.Count.Should().BeGreaterThan(0); var action = result.Actions.FirstOrDefault(i => i.Name == "Test 'Alex Engelhardt' Action"); action.Should().NotBeNull(); action.IsEnabled.Should().BeFalse(); action.EntityId.Should().Be(scientist.Id); request.LastSelectedResourceId = alanTuring.Id; request.SelectedResourceIds = new[] { alanTuring.Id }; var result2 = svc.GetActions(request); result2.Should().NotBeNull(); result2.Actions.Should().NotBeNull(); result2.Actions.Count.Should().BeGreaterThan(0); var action2 = result2.Actions.FirstOrDefault(i => i.Name == "Test 'Alan Turing' Action"); action2.Should().NotBeNull(); action2.IsEnabled.Should().BeTrue(); action2.EntityId.Should().Be(alanTuring.Id); }
public void GetActionsSuppressAllNewItems() { // arrange var testType1 = new EntityType { Name = "Test Type 1" }; testType1.Inherits.Add(Entity.Get <EntityType>("core:definition")); testType1.Save(); var testType2 = new EntityType { Name = "Test Type 2" }; testType2.Inherits.Add(testType1); testType2.Save(); var report = Entity.Create <ReadiNow.Model.Report>(); report.ReportUsesDefinition = testType1; report.Save(); var svc = new ActionService(); svc.FlushCaches(); var request = new ActionRequestExtended { ReportId = report.Id, ReportBaseType = report.ReportUsesDefinition, HostResourceIds = new long[0], ActionDisplayContext = ActionContext.ActionsMenu }; // act var result = svc.GetActions(request); // assert result.Should().NotBeNull(); result.Actions.Should().NotBeNull(); result.Actions.Count.Should().BeGreaterThan(0); var newMenu = result.Actions.FirstOrDefault(a => a.Name == "New"); newMenu.Should().NotBeNull(); newMenu.Children.Count.Should().Be(2); var t1 = newMenu.Children.FirstOrDefault(a => a.Name == "Test Type 1"); t1.Should().NotBeNull(); t1.IsNew.Should().BeTrue(); t1.HtmlActionMethod.Should().Be("navigate"); t1.HtmlActionState.Should().Be("createForm"); t1.EntityId.Should().Be(testType1.Id); var t2 = newMenu.Children.FirstOrDefault(a => a.Name == "Test Type 2"); t2.Should().NotBeNull(); t2.IsNew.Should().BeTrue(); t2.HtmlActionMethod.Should().Be("navigate"); t2.HtmlActionState.Should().Be("createForm"); t2.EntityId.Should().Be(testType2.Id); // suppress the news var rcb = new ConsoleBehavior(); var am = new ActionMenu { SuppressNewActions = true }; rcb.BehaviorActionMenu = am; report.ResourceConsoleBehavior = rcb; report.Save(); svc.FlushCaches(); var result2 = svc.GetActions(request); result2.Should().NotBeNull(); result2.Actions.Should().NotBeNull(); result2.Actions.Count.Should().BeGreaterThan(0); result2.Actions.Count(a => a.Name == "New").Should().Be(0); }
public void GetFormActionsForForm() { var personType = Entity.Get <Definition>("core:person"); var personForm = Entity.Get <CustomEditForm>(personType.DefaultEditForm.Id, true); // fetch action for the person type var request = new ActionRequestExtended { EntityTypeId = personType.Id, FormId = personType.DefaultEditForm.Id, ActionDisplayContext = ActionContext.All }; var actionSvc = new ActionService(); actionSvc.FlushCaches(); var result = actionSvc.GetFormActionsMenuState(request); result.Should().NotBeNull(); result.Actions.Should().NotBeNull().And.NotBeEmpty(); result.Actions.Count.Should().Be(2); result.Actions.Count(a => a.Name == "Assign Data to App").Should().Be(1); result.Actions.Count(a => a.Name == "Person Name Update").Should().Be(1); // create new action item and assign it to the form // form action var actionInfo = result.Actions.Find(a => a.Name == "Person Name Update"); var wf = Entity.Get <Workflow>(actionInfo.EntityId); // create workflow action item var wfActionMenuItem = new WorkflowActionMenuItem { Name = actionInfo.Name, MenuIconUrl = actionInfo.Icon, MenuOrder = actionInfo.Order, IsActionButton = actionInfo.IsButton, IsMenuSeparator = actionInfo.IsSeparator, IsContextMenu = actionInfo.IsContextMenu, IsActionItem = actionInfo.IsMenu, IsSystem = actionInfo.IsSystem, AppliesToSelection = true, AppliesToMultiSelection = false, HtmlActionMethod = actionInfo.HtmlActionMethod, HtmlActionState = actionInfo.HtmlActionState, ActionMenuItemToWorkflow = wf }; var cb = new ConsoleBehavior { Name = $"DeleteMe_PersonForm_rcb {DateTime.Now}", BehaviorActionMenu = new ActionMenu { Name = $"DeleteMe_PersonForm_rcb_menu {DateTime.Now}", IncludeActionsAsButtons = new EntityCollection <ActionMenuItem>() { (ActionMenuItem)wfActionMenuItem }, MenuItems = new EntityCollection <ActionMenuItem>() { (ActionMenuItem)wfActionMenuItem } } }; personForm.ResourceConsoleBehavior = cb; personForm.Save(); var formActionQuery = @"{ k:resourceConsoleBehavior } .k:behaviorActionMenu.{ { k:menuItems, k:suppressedActions, k:includeActionsAsButtons }.{ { name, description, k:menuIconUrl, htmlActionState, htmlActionMethod, k:isActionButton, k:appliesToSelection, k:isMenuSeparator, k:menuOrder, { isOfType }.{ alias,name }, { k:actionMenuItemToWorkflow }.{ name }, { k:actionMenuItemToReportTemplate }.{ name } } }, { k:includeTypesForNewButtons, k:suppressedTypesForNewMenu }.id }"; // fetch form actions and check there is only one action button assigned to the form var entitySvc = new EntityInfoService(); EntityMemberRequest req = EntityRequestHelper.BuildRequest(formActionQuery); var result2 = entitySvc.GetEntityData(personForm.Id, req); result2.Should().NotBeNull(); var rcb = result2.Relationships.Find(a => a.RelationshipTypeId.Alias == "resourceConsoleBehavior"); rcb.Should().NotBeNull(); var actionMenu = rcb.Entities.First().Relationships.Find(a => a.RelationshipTypeId.Alias == "behaviorActionMenu"); actionMenu.Should().NotBeNull(); var actionButtons = actionMenu.Entities.First().Relationships.Find(a => a.RelationshipTypeId.Alias == "includeActionsAsButtons"); actionButtons.Should().NotBeNull(); var nameValue = actionButtons.Entities.First().Fields.Find(f => f.FieldId.Alias == "name").Value.Value; nameValue.Should().Be("Person Name Update"); // delete console behavior Entity.Delete(cb.Id); }