public void TestTempDeletedChildItemIgnored( ) { var svc = new EntityInfoService( ); EntityRef orgRef = null; try { var o = new Report { Name = "org rpt", Alias = "shared:a" + Guid.NewGuid( ) }; var b = new ReportColumn { Name = "bob", Alias = "shared:a" + Guid.NewGuid( ), ColumnForReport = o }; EntityData result = svc.GetEntityData(b, EntityRequestHelper.BuildRequest("name, columnForReport.name")); result.Relationships[0].Instances[0].DataState = DataState.Delete; orgRef = svc.CreateEntity(result); } finally { if (orgRef != null) { Entity.Delete(orgRef); } } }
public void CreateInstance( ) { // Define a new entity var data = new EntityData { Fields = new List <FieldData>( ), TypeIds = new EntityRef("test", "person").ToEnumerable( ).ToList( ) }; data.Fields.Add(new FieldData { FieldId = new EntityRef("name"), Value = new TypedValue("Isaac Newton") }); // Create it var svc = new EntityInfoService( ); EntityRef id = svc.CreateEntity(data); // Verify it was created Assert.IsTrue(id.Id > 0, "Positive Id"); // Select the data EntityMemberRequest request = EntityRequestHelper.BuildRequest("name"); EntityData result = svc.GetEntityData(id, request); // Verify results Assert.AreEqual("Isaac Newton", result.Fields[0].Value.Value); svc.DeleteEntity(id); }
public static JsonEntityQueryResult GetJsonEntityQueryResult(ICollection <EntityRef> entityRefs, ICollection <string> requests) { #pragma warning disable 618 var svc = new EntityInfoService( ); #pragma warning restore 618 var entityDataList = new List <EntityData>( ); for (int i = 0; i < entityRefs.Count; ++i) { EntityRef entityRef = entityRefs.ElementAt(i); string request = i < requests.Count ? requests.ElementAt(i) : requests.Last( ); var rqObj = Factory.RequestParser.ParseRequestQuery(request); EntityData entityData = svc.GetEntityData(entityRef, rqObj); entityDataList.Add(entityData); } if (entityDataList.Count(p => p != null) == 0) { throw new HttpResponseException(HttpStatusCode.NotFound); } var result = new JsonEntityQueryResult(entityDataList); return(result); }
public void Test_GetFieldsRelationshipsControlsStructuredQueryString( ) { EntityMemberRequest request = EntityRequestHelper.BuildRequest("k:context.name"); var svc = new EntityInfoService( ); EntityData result = svc.GetEntityData(new EntityRef("console", "singleLineTextControl"), request); Assert.IsNotNull(FindEntity(result, new EntityRef("console", "uiContextHtml").Id)); }
public void UpdateField( ) { var rq = new EntityMemberRequest( ); rq.Fields.Add(new EntityRef("description")); var svc = new EntityInfoService( ); EntityData entity = svc.GetEntityData(new EntityRef("test", "person"), rq); entity.Fields[0].Value.Value = "Hello world"; svc.UpdateEntity(entity); }
public void GetFieldInstanceDbType( ) { ///// // Define a new entity ///// var data = new EntityData { Fields = new List <FieldData>( ), TypeIds = new EntityRef("test", "person").ToEnumerable( ).ToList( ) }; ///// // Create it ///// var svc = new EntityInfoService( ); EntityRef id = svc.CreateEntity(data); ///// // Verify it was created ///// Assert.IsTrue(id.Id > 0, "Positive Id"); EntityMemberRequest fieldRequest = EntityRequestHelper.BuildRequest(@" fields.isOfType.name, fields.isOfType.alias, fields.isOfType.dbType, fields.isOfType.dbTypeFull, fields.isOfType.readiNowType, fields.isOfType.xsdType" ); EntityData result = svc.GetEntityData(data.TypeIds.First( ), fieldRequest); ///// // Verify results ///// Assert.AreEqual(1, result.Relationships.Count); svc.DeleteEntity(id); }
/// <summary> /// Add a request for an entity along with a query /// </summary> /// <param name="entityRef">The entity reference.</param> /// <param name="entityRequest">The entity request.</param> /// <param name="queryName">If set then the query is a named query.</param> public void AddEntityRequest(EntityRef entityRef, EntityMemberRequest entityRequest, string queryName = null) { EntityData entityData = _svc.GetEntityData(entityRef, entityRequest); AddEntityData(entityData, queryName); }
public void UpdateFieldOnRelatedInstance( ) { // Define a new entity var data = new EntityData { Fields = new List <FieldData>( ), TypeIds = new EntityRef("test", "person").ToEnumerable().ToList() }; data.Fields.Add(new FieldData { FieldId = new EntityRef("name"), Value = new TypedValue("Isaac Newton") }); // Define a new related entity var data2 = new EntityData { Fields = new List <FieldData>( ), TypeIds = new EntityRef("test", "employee").ToEnumerable().ToList() }; data2.Fields.Add(new FieldData { FieldId = new EntityRef("name"), Value = new TypedValue("Isaac Newtons Emmployer") }); data2.DataState = DataState.Create; data.Relationships = new List <RelationshipData> { new RelationshipData { RelationshipTypeId = new EntityRef("test", "reportsTo"), IsReverse = false, Instances = new List <RelationshipInstanceData> { new RelationshipInstanceData { Entity = data2, DataState = DataState.Create } }, } }; // Create it var svc = new EntityInfoService( ); EntityRef id = svc.CreateEntity(data); // Verify it was created Assert.IsTrue(id.Id > 0, "Positive Id"); // Select the data EntityMemberRequest request = EntityRequestHelper.BuildRequest("name, test:reportsTo.name"); EntityData result = svc.GetEntityData(id, request); // Verify results Assert.AreEqual("Isaac Newton", result.Fields[0].Value.Value); EntityData employee = result.Relationships[0].Instances[0].Entity; FieldData employersNameField = employee.Fields[0]; Assert.AreEqual("Isaac Newtons Emmployer", employersNameField.Value.Value); // Update employees name employersNameField.Value.Value = "bob"; employee.DataState = DataState.Update; svc.UpdateEntity(result); // comfirm it changed EntityData resultAfterUpdate = svc.GetEntityData(id, request); employee = resultAfterUpdate.Relationships[0].Instances[0].Entity; employersNameField = employee.Fields[0]; Assert.AreEqual("bob", employersNameField.Value.Value); // delete the referenced Entity leaving the data state of the top entity unchanged employee.DataState = DataState.Delete; svc.UpdateEntity(resultAfterUpdate); // comfirm it deleted EntityData resultAfterDelete = svc.GetEntityData(id, request); Assert.AreEqual(0, resultAfterDelete.Relationships[0].Instances.Count, "There should be no manager"); // clean up svc.DeleteEntity(id); }
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); }