public void ComplexHierarchyDataTest() { // define the metadata of geography. metadataTypeId = metadataApi.AddType("Geography", "HierarchyData", null, ObjectMetadataTypes.Custom, false, null); metadataApi.SaveField(metadataTypeId, new StringFieldMetadata { Name = "Chief Executive" }); metadataApi.SaveField(metadataTypeId, new IntegerFieldMetadata { Name = "Population", MinValue = 0 }); // create geographic areas with extension properties HierarchyDataObject china = new HierarchyDataObject { HierarchyType = GEOGRAPHY, Name = "China", ExtensionDataTypeId = metadataTypeId }; china["Chief Executive"] = "XXX"; china["Population"] = 1300000000; hierarchyApi.Save(china); HierarchyDataObject shanghai = new HierarchyDataObject { HierarchyType = GEOGRAPHY, Name = "Shanghai", ParentHierarchyDataId = china.HierarchyDataId, ExtensionDataTypeId = metadataTypeId }; shanghai["Chief Executive"] = "YYY"; shanghai["Population"] = 20000000; hierarchyApi.Save(shanghai); HierarchyDataObject beijing = new HierarchyDataObject { HierarchyType = GEOGRAPHY, Name = "Beijing", ParentHierarchyDataId = china.HierarchyDataId, ExtensionDataTypeId = metadataTypeId }; beijing["Chief Executive"] = "ZZZ"; beijing["Population"] = 30000000; hierarchyApi.Save(beijing); this.temporaryHierarchyDataIds.AddRange(new[] { china.HierarchyDataId, shanghai.HierarchyDataId, beijing.HierarchyDataId }); // query hierarchy data by name. int recordCount; LinqPredicate predicate = new LinqPredicate("Name=@0 AND HierarchyType=@1", "Shanghai", GEOGRAPHY); IEnumerable<HierarchyDataObject> geographicAreas = hierarchyApi.FindHierarchyData(predicate, null, 0, 10, out recordCount); shanghai = geographicAreas.First(); Assert.AreEqual(1, recordCount); Assert.AreEqual("YYY", shanghai["Chief Executive"]); Assert.AreEqual(20000000, shanghai["Population"]); }
public void TestQuery() { HierarchyDataManagement page = new HierarchyDataManagement(); DynamicPageProxy proxy = new DynamicPageProxy(page); IHierarchyApi hierarchyApi = SpringContext.Current.GetObject<IHierarchyApi>(); using (var httpEnv = new HttpEnvironment()) { Guid guid = Guid.NewGuid(); string surfix = guid.ToString().Substring(0, 5); HierarchyDataObject obj = new HierarchyDataObject() { HierarchyType = "Department", Name = "HierarchyType" + surfix, Description = "HierarchyType" + surfix }; hierarchyApi.Save(obj); httpEnv.SetRequestUrl(@"/HierarchyDataDetailPanel/DynamicPage.svc?HierarchyType=Department"); QueryParameterExpression expression = new QueryParameterExpression("Name", QueryFieldOperators.Equal, "HierarchyType" + surfix); SortExpression sort = new SortExpression("Name"); QueryParameter parameters = new QueryParameter() { //Expressions = express, PageIndex = 0, PageSize = 10, SortExpression = sort }; parameters.Expressions.Add(expression); QueryResults results = proxy.Query(parameters); foreach (var result in results.Results) { Assert.AreEqual(DataBinder.Eval(result, "Name"), "HierarchyType" + surfix); } } }
public void SetupHierarchy() { IAuthenticationContext authenticationContext = SpringContext.Current.GetObject<IAuthenticationContext>(); IOrganizationApi organizationApi = SpringContext.Current.GetObject<IOrganizationApi>(); membershipApi = new MembershipApi(authenticationContext, organizationApi); this.shanghai = new HierarchyDataObject { HierarchyType = GEOGRAPHY, Name = "Shang Hai" }; hierarchyApi.Save(this.shanghai); this.beijing = new HierarchyDataObject { HierarchyType = GEOGRAPHY, Name = "Bei Jing" }; hierarchyApi.Save(this.beijing); this.sichuan = new HierarchyDataObject { HierarchyType = GEOGRAPHY, Name = "Si Chuan" }; hierarchyApi.Save(this.sichuan); this.chengdu = new HierarchyDataObject { HierarchyType = GEOGRAPHY, Name = "Cheng Du", ParentHierarchyDataId = this.sichuan.HierarchyDataId }; hierarchyApi.Save(this.chengdu); this.mianyang = new HierarchyDataObject { HierarchyType = GEOGRAPHY, Name = "Mian Yang", ParentHierarchyDataId = this.sichuan.HierarchyDataId }; hierarchyApi.Save(this.mianyang); }
public void TestUpdate() { HierarchyDataDetailPanel page = new HierarchyDataDetailPanel(); DetailPanelPageProxy proxy = new DetailPanelPageProxy(page); IHierarchyApi hierarchyApi = SpringContext.Current.GetObject<IHierarchyApi>(); using (var httpEnv = new HttpEnvironment()) { #region Create Data httpEnv.SetRequestUrl(@"/HierarchyDataDetailPanel/DynamicPage.svc?HierarchyType=Department"); Guid guid = Guid.NewGuid(); string surfix = guid.ToString().Substring(0, 5); HierarchyDataObject obj = new HierarchyDataObject() { HierarchyType = "Department", Name = "HierarchyType" + surfix, Description = "HierarchyType" + surfix }; hierarchyApi.Save(obj); #endregion #region Bind Web Control W.TextBox TextBoxName = new W.TextBox(); TextBoxName.Text = "HierarchyType" + surfix; proxy.Set("TextBoxName", TextBoxName); W.TextBox TextBoxDescription = new W.TextBox(); TextBoxDescription.Text = "HierarchyTypeUpdate" + surfix; proxy.Set("TextBoxDescription", TextBoxDescription); proxy.Set("ComboBoxParentHierarchyData", null); proxy.Set("ExtensionDataForm", null); #endregion proxy.Update(obj.HierarchyDataId.ToString()); Assert.AreEqual(obj.Description, "HierarchyType" + surfix); obj = hierarchyApi.GetHierarchyData(obj.HierarchyDataId); Assert.AreEqual(obj.Description, "HierarchyTypeUpdate" + surfix); } }
/// <summary> /// Get the copy of current object. /// </summary> /// <returns></returns> public HierarchyDataObject Clone() { HierarchyDataObject copy = new HierarchyDataObject { HierarchyDataId = this.HierarchyDataId, Name = this.Name, Description = this.Description, ParentHierarchyDataId = this.ParentHierarchyDataId, HierarchyType = this.HierarchyType, CreatedBy = this.CreatedBy, CreatedDate = this.CreatedDate, LastUpdatedBy = this.LastUpdatedBy, LastUpdatedDate = this.LastUpdatedDate, ExtensionDataTypeId = this.ExtensionDataTypeId }; this.ClonePropertiesTo(copy); return copy; }
public void SimpleHierarchyDataTest() { HierarchyDataObject china = new HierarchyDataObject { HierarchyType = GEOGRAPHY, Name = "China" }; hierarchyApi.Save(china); HierarchyDataObject shanghai = new HierarchyDataObject { HierarchyType = GEOGRAPHY, Name = "Shanghai", ParentHierarchyDataId = china.HierarchyDataId }; hierarchyApi.Save(shanghai); HierarchyDataObject beijing = new HierarchyDataObject { HierarchyType = GEOGRAPHY, Name = "Beijing", ParentHierarchyDataId = china.HierarchyDataId }; hierarchyApi.Save(beijing); this.temporaryHierarchyDataIds.AddRange(new[] { china.HierarchyDataId, shanghai.HierarchyDataId, beijing.HierarchyDataId }); // get all areas IEnumerable<HierarchyDataObject> areas = hierarchyApi.GetAllChildren(GEOGRAPHY, null); Assert.AreEqual(3, areas.Count()); // get both implicit and explicit child areas of China areas = hierarchyApi.GetAllChildren(GEOGRAPHY, china.HierarchyDataId); Assert.AreEqual(2, areas.Count()); // get only explicit child areas which is the root node in geography. areas = hierarchyApi.GetImmediateChildren(GEOGRAPHY, null); Assert.AreEqual(1, areas.Count()); Assert.AreEqual("China", areas.First().Name); // query hierarchy data by name. int recordCount; LinqPredicate predicate = new LinqPredicate("Name=@0 AND ParentHierarchyDataId=@1 AND HierarchyType=@2", "Beijing", china.HierarchyDataId, GEOGRAPHY); hierarchyApi.FindHierarchyData(predicate, null, 0, 10, out recordCount); Assert.AreEqual(1, recordCount); }