protected override void Create() { var element = new AxEdtEnum { Name = ElementName, }; MetaService.CreateExtendedDataType(element, Model); }
protected EdtLabelInfo getEdtBaseLabel(AxEdt edtBase, EdtLabelInfo labelInfo) { if (String.IsNullOrEmpty(labelInfo.Label) == true && String.IsNullOrEmpty(edtBase.Label) == false) { // find the label here labelInfo.Label = edtBase.Label; } if (String.IsNullOrEmpty(labelInfo.HelpLabel) == true && String.IsNullOrEmpty(edtBase.HelpText) == false) { // find the help label here labelInfo.HelpLabel = edtBase.HelpText; } if (labelInfo.RequiresDigging() == true && (String.IsNullOrEmpty(edtBase.Extends) == false || edtBase is AxEdtEnum) ) { // if there is a extended data type to this then move it to the next one var edtExt = Common.CommonUtil.GetModelSaveService().GetExtendedDataType(edtBase.Extends); if (edtExt != null) { labelInfo = this.getEdtBaseLabel(edtExt, labelInfo); } else if (edtExt == null) { // if this is null then chances are that this extends an enum if (edtBase is AxEdtEnum) { AxEdtEnum edtBaseEnum = edtBase as AxEdtEnum; var axEnum = Common.CommonUtil.GetModelSaveService().GetEnum(edtBaseEnum.EnumType); if (axEnum != null) { if (String.IsNullOrEmpty(labelInfo.Label) == true && String.IsNullOrEmpty(axEnum.Label) == false) { // find the label here labelInfo.Label = axEnum.Label; } if (String.IsNullOrEmpty(labelInfo.HelpLabel) == true && String.IsNullOrEmpty(axEnum.HelpText) == false) { // find the help label here labelInfo.HelpLabel = axEnum.HelpText; } } } } } return(labelInfo); }
public void CreateEnum() { _logString = ""; AxHelper axHelper = new AxHelper(); AxEnum newEnum = axHelper.MetadataProvider.Enums.Read(EnumName); if (newEnum == null) { newEnum = new AxEnum { Name = EnumName, Label = EnumLabel, Help = EnumHelpText, UseEnumValue = NoYes.No }; axHelper.MetaModelService.CreateEnum(newEnum, axHelper.ModelSaveInfo); axHelper.AppendToActiveProject(newEnum); AddLog($"Enum {newEnum.Name};"); if (IsCreateEnumType) { AxEdtEnum newAxEdtEnum = axHelper.MetadataProvider.Edts.Read(EnumTypeName) as AxEdtEnum; if (newAxEdtEnum == null) { newAxEdtEnum = new AxEdtEnum { Name = EnumTypeName, EnumType = newEnum.Name }; axHelper.MetaModelService.CreateExtendedDataType(newAxEdtEnum, axHelper.ModelSaveInfo); axHelper.AppendToActiveProject(newAxEdtEnum); AddLog($"Enum type {newAxEdtEnum.Name};"); } } newEnum = axHelper.MetadataProvider.Enums.Read(EnumName); } foreach (var ea in GetAxEnumValues()) { newEnum.AddEnumValue(ea); } axHelper.MetaModelService.UpdateEnum(newEnum, axHelper.ModelSaveInfo); }
//edt can be null public AxTableField BuildField(AxEdt edt) { AxTableField axTableField; switch (FieldType) { case FieldType.String: axTableField = new AxTableFieldString(); if (edt == null) { if (NewStrEdtLen > 0) { AxTableFieldString axTableFieldString = (AxTableFieldString)axTableField; axTableFieldString.StringSize = NewStrEdtLen; } } break; case FieldType.Integer: axTableField = new AxTableFieldInt(); break; case FieldType.Real: axTableField = new AxTableFieldReal(); break; case FieldType.DateTime: axTableField = new AxTableFieldUtcDateTime(); break; case FieldType.Guid: axTableField = new AxTableFieldGuid(); break; case FieldType.Int64: axTableField = new AxTableFieldInt64(); break; case FieldType.Enum: axTableField = new AxTableFieldEnum(); if (edt != null) { AxEdtEnum edtEnum = edt as AxEdtEnum; AxTableFieldEnum fieldEnum = axTableField as AxTableFieldEnum; if (edtEnum != null) { fieldEnum.EnumType = edtEnum.EnumType; } } break; case FieldType.Time: axTableField = new AxTableFieldTime(); break; case FieldType.Container: axTableField = new AxTableFieldContainer(); break; case FieldType.Memo: axTableField = new AxTableFieldString(); break; case FieldType.Date: axTableField = new AxTableFieldDate(); break; default: throw new NotImplementedException( $"Field type {FieldType.ToString()} is not supported"); } axTableField.Name = FieldName; if (IsMandatory) { axTableField.Mandatory = NoYes.Yes; } if (edt != null) { axTableField.ExtendedDataType = edt.Name; } else { if (LabelText != String.Empty) { axTableField.Label = LabelText; } if (HelpTextText != String.Empty) { axTableField.HelpText = HelpTextText; } } if (IsEdtExist && edt != null) { if (LabelText != String.Empty && edt.Label != LabelText) { axTableField.Label = LabelText; } if (HelpTextText != String.Empty && edt.HelpText != HelpTextText) { axTableField.HelpText = HelpTextText; } } return(axTableField); }
public AxEdt BuildEdt() { var edt = _axHelper.MetadataProvider.Edts.Read(EdtText); if (edt != null) { IsEdtExist = true; } else { switch (FieldType) { case FieldType.String: var edtString = new AxEdtString(); if (NewStrEdtLen > 0 && ExtendsText == String.Empty) { edtString.StringSize = NewStrEdtLen; } edt = edtString; break; case FieldType.Integer: edt = new AxEdtInt(); break; case FieldType.Real: edt = new AxEdtReal(); break; case FieldType.DateTime: edt = new AxEdtUtcDateTime(); if (ExtendsText == String.Empty) { edt.Extends = "TransDateTime"; } break; case FieldType.Guid: edt = new AxEdtGuid(); break; case FieldType.Int64: edt = new AxEdtInt64(); break; case FieldType.Enum: AxEdtEnum edtEnum = new AxEdtEnum(); AxEdtEnum edtLocal = _axHelper.MetadataProvider.Edts.Read(ExtendsText) as AxEdtEnum; if (edtLocal != null) { edtEnum.EnumType = edtLocal.EnumType; } edt = edtEnum; break; case FieldType.Time: edt = new AxEdtTime(); break; case FieldType.Container: edt = new AxEdtContainer(); break; case FieldType.Memo: edt = new AxEdtString(); if (ExtendsText == String.Empty) { edt.Extends = "FreeTxt"; } break; case FieldType.Date: edt = new AxEdtDate(); if (ExtendsText == String.Empty) { edt.Extends = "TransDate"; } break; default: throw new NotImplementedException( $"Field type {FieldType.ToString()} is not supported"); } edt.Name = EdtText; if (ExtendsText != string.Empty) { edt.Extends = ExtendsText; } if (LabelText != String.Empty) { edt.Label = LabelText; } if (HelpTextText != String.Empty) { edt.HelpText = HelpTextText; } } return(edt); }