//创建测试数据 private static DynamicEntity CreateDemoHeader() { //添加实体定义 DynamicEntity saleOrderHeaderDefine = new DynamicEntity(); saleOrderHeaderDefine.ID = Guid.NewGuid().ToString(); saleOrderHeaderDefine.Name = "销售单"; saleOrderHeaderDefine.Description = "销售单"; saleOrderHeaderDefine.CategoryID = Define.TestCategoryID; //集团公司/管道板块/运输 //SaleOrderHeader.SortNo = 0; saleOrderHeaderDefine.BuidCodeName(); saleOrderHeaderDefine.Fields.Add(new DynamicEntityField() { ID = Guid.NewGuid().ToString(), Name = "总金额", FieldType = FieldTypeEnum.Decimal, Length = 18, SortNo = 0, DefaultValue = "99" }); DynamicEntityField field = new DynamicEntityField() { ID = Guid.NewGuid().ToString(), //CodeName = "销售明细", Name = "销售明细", FieldType = FieldTypeEnum.Collection, Length = 999, SortNo = 1 }; field.ReferenceEntityCodeName = "/集团公司/管道板块/运输/销售单明细"; saleOrderHeaderDefine.Fields.Add(field); DEObjectOperations.InstanceWithoutPermissions.AddEntity(saleOrderHeaderDefine); #region Mapping关系 //抬头对应 EntityMapping mapping = new EntityMapping(); mapping.InnerEntity = saleOrderHeaderDefine; mapping.OuterEntityID = Guid.NewGuid().ToString(); mapping.OuterEntityName = "Tcode_test"; mapping.EntityFieldMappingCollection.ToArray(); //saleOrderHeaderDefine.Fields.ToArray().Where(p => p.FieldType != FieldTypeEnum.Collection).ToList().ForEach(f => //{ // var outerField = mapping.EntityFieldMappingCollection.FirstOrDefault(p => p.FieldName.Equals(f.Name)); // outerField.OuterFieldID = Guid.NewGuid().ToString(); // outerField.OuterFieldName = f.Name + "_Mapping"; //}); //var collfield = mapping.EntityFieldMappingCollection.FirstOrDefault(p => p.FieldTypeName == FieldTypeEnum.Collection.ToString()); //collfield.OuterFieldID = Guid.NewGuid().ToString(); //collfield.OuterFieldName = "Tcode_test_Item"; DEObjectOperations.InstanceWithoutPermissions.AddEntityMapping(mapping); #endregion return(saleOrderHeaderDefine); }
/// <summary> /// 更新实体属性 /// </summary> /// <param name="entityField"></param> public void UpdateEntityField(DynamicEntityField entityField) { DEObjectExecutor executor = null; if (this._NeedCheckPermissions) { CheckPermissions(DEOperationType.UpdateEntityField, null, "UpdateEntityField", string.Empty); } executor = new DEObjectExecutor(DEOperationType.UpdateEntityField, entityField); ExecuteWithActions(DEOperationType.UpdateEntityField, () => SCActionContext.Current.DoActions(() => executor.Execute())); }
/// <summary> /// 删除实体属性 /// </summary> /// <param name="entityField"></param> public void DeleteEntityField(DynamicEntityField entityField) { entityField.Status = SchemaObjectStatus.Deleted; DEObjectExecutor executor = null; if (this._NeedCheckPermissions) { CheckPermissions(DEOperationType.DeleteEntityField, null, "DeleteEntityField", string.Empty); } executor = new DEObjectExecutor(DEOperationType.DeleteEntityField, entityField); ExecuteWithActions(DEOperationType.DeleteEntityField, () => SCActionContext.Current.DoActions(() => executor.Execute())); }
public void CreateObjectWithSortNo() { try { DynamicEntityField entity = SchemaExtensions.CreateObject("DynamicEntityField") as DynamicEntityField; Assert.AreEqual(0, entity.SortNo); } catch (Exception) { throw; } }
/// <summary> /// 创建实体字段 /// </summary> /// <returns></returns> private DynamicEntityField creatEntityField(int sortNo, string flag = "new") { var field = new DynamicEntityField() { ID = Guid.NewGuid().ToString(), Name = string.Format("字段{0}", sortNo), Description = "描述" + flag, Length = 2, DefaultValue = "默认值", FieldType = FieldTypeEnum.Decimal, Creator = (IUser)OguBase.CreateWrapperObject(new OguUser("22c3b351-a713-49f2-8f06-6b888a280fff")),//wangli5 SortNo = sortNo }; return(field); }
/// <summary> /// 创建实体字段 /// </summary> /// <returns></returns> private static DynamicEntityField CreateEntityField(string flag = "new") { var field = new DynamicEntityField() { ID = Guid.NewGuid().ToString(), Name = "字段", Description = "描述" + flag, Length = 2, DefaultValue = "默认值", FieldType = FieldTypeEnum.Decimal, //CodeName = "Field", Creator = (IUser)OguBase.CreateWrapperObject(new OguUser("22c3b351-a713-49f2-8f06-6b888a280fff")),//wangli5 SortNo = 0 }; return(field); }
public void EntityAndChildDeSerializeTest() { DynamicEntity entity = MockData.CreateEntityAndChildEntity(); string json = JSONSerializerExecute.Serialize(entity); DynamicEntity deDynamicEntity = JSONSerializerExecute.Deserialize <DynamicEntity>(json); Assert.AreEqual(entity.CodeName, deDynamicEntity.CodeName); Assert.AreEqual(entity.Fields.Count, deDynamicEntity.Fields.Count); IEnumerable <DynamicEntityField> sourceFields = entity.Fields.Where(p => p.FieldType == FieldTypeEnum.Collection); sourceFields.ForEach(sf => { DynamicEntityField def = deDynamicEntity.Fields[sf.ID]; Assert.AreEqual(FieldTypeEnum.Collection, def.FieldType); Assert.AreEqual(sf.CodeName, def.CodeName); }); }
/// <summary> /// 创建带数据的实体实例 /// </summary> /// <returns></returns> public static DEEntityInstanceBase CreateInstanceWithData() { //准备实体定义 DynamicEntity header = MockData.CreateEntityWithReferenceEntity(); //创建空实例 DEEntityInstanceBase instance = header.CreateInstance(); instance.Fields.SetValue("总金额", 200); DynamicEntityField field = instance.EntityDefine.Fields.FirstOrDefault(p => p.FieldType == FieldTypeEnum.Collection) as DynamicEntityField; DEEntityInstanceBaseCollection items = new DEEntityInstanceBaseCollection(); #region //实例1 DEEntityInstanceBase itemInstance = field.ReferenceEntity.CreateInstance(); itemInstance.ID = Guid.NewGuid().ToString(); itemInstance.Name = "第一条数据"; itemInstance.Fields.TrySetValue("物料名称", "鼠标"); itemInstance.Fields.TrySetValue("物料数量", 1); itemInstance.Fields.TrySetValue("单价", 50); items.Add(itemInstance); //实例2 DEEntityInstanceBase itemInstance1 = field.ReferenceEntity.CreateInstance(); itemInstance1.ID = Guid.NewGuid().ToString(); itemInstance1.Name = "第二条数据"; itemInstance1.Fields.TrySetValue("物料名称", "键盘"); itemInstance1.Fields.TrySetValue("物料数量", 1); itemInstance1.Fields.TrySetValue("单价", 150); items.Add(itemInstance1); #endregion instance.Fields.SetValue("销售明细", items); DEInstanceAdapter.Instance.Update(instance); return(instance); }
public EntityFieldValue(DynamicEntityField def) { ExceptionHelper.FalseThrow <ArgumentNullException>(def != null, "def"); this._Definition = def; }