public static bool IsComplexType(McDataType type) { return(!(type == McDataType.Currency || type == McDataType.DateTime || type == McDataType.Decimal || type == McDataType.Double || type == McDataType.Guid || type == McDataType.Integer || type == McDataType.String)); }
public static Type McDataType2ManagedType(McDataType mcDataType) { Type result = null; switch (mcDataType) { case McDataType.Boolean: result = typeof(bool); break; case McDataType.Currency: result = typeof(decimal); break; case McDataType.DateTime: result = typeof(DateTime); break; case McDataType.Decimal: result = typeof(decimal); break; case McDataType.Double: result = typeof(double); break; case McDataType.Guid: result = typeof(Guid); break; case McDataType.Integer: result = typeof(Int32); break; case McDataType.String: result = typeof(string); break; case McDataType.Enum: result = typeof(string); break; } return(result); }
private void BindFields() { ddlField.Items.Clear(); string[] class_field = ddlClass.SelectedValue.Split(','); MetaClass mc = MetaDataWrapper.GetMetaClassByName(class_field[0]); foreach (MetaField field in mc.Fields) { McDataType type = field.GetMetaType().McDataType; McDataType originalType = field.GetOriginalMetaType().McDataType; // forbid reference and referenced fields if (type != McDataType.Reference && type != McDataType.ReferencedField && originalType != McDataType.ReferencedField) { ddlField.Items.Add(new ListItem(CHelper.GetResFileString(field.FriendlyName), field.Name)); } } }
/// <summary> /// Converts the type. /// </summary> /// <returns></returns> public static object ConvertType2McDataType(McDataType mcType, object obj) { Dictionary <McDataType, ConversionDelegate> mcDataTypeConv; if ((obj == null) || (obj == DBNull.Value)) { return(null); } if (_conversionTable.TryGetValue(obj.GetType(), out mcDataTypeConv)) { ConversionDelegate convDelegate; if (mcDataTypeConv.TryGetValue(mcType, out convDelegate)) { return(convDelegate(obj)); } } String errMsg = String.Format("conversion from [{0}] to [{1}] not found", obj.GetType().ToString(), mcType.ToString()); throw new ArgumentException(errMsg); }
public static string GetMcDataTypeName(McDataType mcDataType) { return GetMcDataTypeName(mcDataType.ToString()); }
/// <summary> /// Binds the data. /// </summary> private void BindData() { TableLink.Text = CHelper.GetResFileString(mc.FriendlyName); TableLink.NavigateUrl = String.Format("{0}?class={1}", ReturnUrl, mc.Name); if (mf == null) { List <ListItem> listItems = new List <ListItem>(); // Building the FieldType list foreach (string mcDataType in Enum.GetNames(typeof(McDataType))) { if (!MetaDataBaseSection.CheckMetaFieldTypeVisibility(mc, (McDataType)Enum.Parse(typeof(McDataType), mcDataType))) { continue; } if (mcDataType == McDataType.ReferencedField.ToString()) { if (mc.GetReferences().Length <= 0) { continue; } } else if (mcDataType == McDataType.BackReference.ToString()) { MetaField[] mfList = mc.FindReferencesWithoutBack(); if (mfList.Length <= 0) { continue; } } else if (mcDataType == McDataType.Card.ToString()) { continue; } else if (mcDataType == McDataType.Identifier.ToString()) { if (DataContext.Current.MetaModel.GetRegisteredTypes(McDataType.Identifier).Length <= 0) { continue; } } else if (mcDataType == McDataType.Link.ToString()) { continue; } else if (mcDataType == McDataType.Complex.ToString()) { if (MetaDataWrapper.GetFieldFormatsByType(mcDataType).Length <= 0) { continue; } // IBN 4.7 fix: check that the list has the TitleField if (ListManager.MetaClassIsList(mc)) { if (String.IsNullOrEmpty(mc.TitleFieldName)) { continue; } } } else if (mcDataType == McDataType.Reference.ToString()) { if (String.IsNullOrEmpty(mc.TitleFieldName)) { continue; } // IBN 4.7 fix: check that exists at least one list to which we can make a reference //if (ListManager.MetaClassIsList(mc)) //{ // bool exists = false; // foreach (MetaClass metaClass in DataContext.Current.MetaModel.MetaClasses) // { // string name = metaClass.Name; // if (!metaClass.IsBridge && !metaClass.IsCard && !String.IsNullOrEmpty(metaClass.TitleFieldName) && ListManager.MetaClassIsList(name) && name != mc.Name) // { // // Check Security // int listId = ListManager.GetListIdByClassName(name); // if (Mediachase.IBN.Business.ListInfoBus.CanRead(listId)) // { // exists = true; // break; // } // } // } // if (!exists) // continue; //} } listItems.Add(new ListItem(CHelper.GetMcDataTypeName(mcDataType), mcDataType)); //FieldTypeList.Items.Add(new ListItem(CHelper.GetMcDataTypeName(mcDataType), mcDataType)); } listItems.Sort(delegate(ListItem x, ListItem y) { return(x.Text.CompareTo(y.Text)); }); FieldTypeList.Items.AddRange(listItems.ToArray()); CHelper.SafeSelect(FieldTypeList, "String"); if (ListManager.MetaClassIsList(mc)) { ListInfo li = ListManager.GetListInfoByMetaClassName(mc.Name); if (li.IsTemplate) { trSelector.Visible = false; } else { mfs.BindData(mc.Name); } } else { mfs.BindData(mc.Name); } if (mfs.Count == 0) { trSelector.Visible = false; } if (FieldTypeList.Items.Count > 0) { BindFormats(); } } else // Edit { NameTextBox.Text = mf.Name; NameTextBox.Enabled = false; FriendlyNameTextBox.Text = mf.FriendlyName; AllowNullsCheckBox.Checked = mf.IsNullable; AllowNullsCheckBox.Enabled = false; McDataType mcDataType = mf.GetOriginalMetaType().McDataType; FieldTypeList.Items.Add(new ListItem(CHelper.GetMcDataTypeName(mcDataType), mcDataType.ToString())); FieldTypeList.Enabled = false; FormatList.Items.Add(new ListItem(CHelper.GetResFileString(mf.GetOriginalMetaType().FriendlyName), mf.TypeName)); FormatList.Enabled = false; if (FieldTypeList.SelectedValue != McDataType.Identifier.ToString() && FieldTypeList.SelectedValue != McDataType.Enum.ToString() && FieldTypeList.SelectedValue != McDataType.MultiReference.ToString() && MetaDataWrapper.GetFieldFormatsByType(FieldTypeList.SelectedValue).Length <= 1) { FormatRow.Visible = false; } trSelector.Visible = false; ShowControl(); } if (AutogenerateSystemNames) { NameRow.Visible = false; } }
public static bool IsElementaryType(McDataType type) { return(!IsComplexType(type)); }
public static bool IsDateTimeType(this McDataType dataType) { return(dataType == McDataType.DateTime); }
public static string GetMcDataTypeName(McDataType mcDataType) { return(GetMcDataTypeName(mcDataType.ToString())); }
public static Type McDataType2ManagedType(McDataType mcDataType) { Type result = null; switch (mcDataType) { case McDataType.Boolean: result = typeof(bool); break; case McDataType.Currency: result = typeof(decimal); break; case McDataType.DateTime: result = typeof(DateTime); break; case McDataType.Decimal: result = typeof(decimal); break; case McDataType.Double: result = typeof(double); break; case McDataType.Guid: result = typeof(Guid); break; case McDataType.Integer: result = typeof(Int32); break; case McDataType.String: result = typeof(string); break; case McDataType.Enum: result = typeof(string); break; } return result; }
/// <summary> /// Converts the type. /// </summary> /// <returns></returns> public static object ConvertType2McDataType(McDataType mcType, object obj) { Dictionary<McDataType, ConversionDelegate> mcDataTypeConv; if ((obj == null) || (obj == DBNull.Value)) return null; if (_conversionTable.TryGetValue(obj.GetType(), out mcDataTypeConv)) { ConversionDelegate convDelegate; if (mcDataTypeConv.TryGetValue(mcType, out convDelegate)) return convDelegate(obj); } String errMsg = String.Format("conversion from [{0}] to [{1}] not found", obj.GetType().ToString(), mcType.ToString()); throw new ArgumentException(errMsg); }
/// <summary> /// Binds the data. /// </summary> private void BindData() { TableLink.Text = CHelper.GetResFileString(mc.FriendlyName); TableLink.NavigateUrl = String.Format("{0}?class={1}", ReturnUrl, mc.Name); if (mf == null) { // Building the FieldType list foreach (string mcDataType in Enum.GetNames(typeof(McDataType))) { if (!MetaDataBaseSection.CheckMetaFieldTypeVisibility(mc, (McDataType)Enum.Parse(typeof(McDataType), mcDataType))) { continue; } if (mcDataType == McDataType.ReferencedField.ToString()) { if (mc.GetReferences().Length <= 0) { continue; } } else if (mcDataType == McDataType.BackReference.ToString()) { MetaField[] mfList = mc.FindReferencesWithoutBack(); if (mfList.Length <= 0) { continue; } } else if (mcDataType == McDataType.Card.ToString()) { continue; } else if (mcDataType == McDataType.Identifier.ToString()) { if (DataContext.Current.MetaModel.GetRegisteredTypes(McDataType.Identifier).Length <= 0) { continue; } } else if (mcDataType == McDataType.Link.ToString()) { continue; } else if (mcDataType == McDataType.Complex.ToString()) { if (MetaDataWrapper.GetFieldFormatsByType(mcDataType).Length <= 0) { continue; } } else if (mcDataType == McDataType.Reference.ToString()) { } FieldTypeList.Items.Add(new ListItem(CHelper.GetMcDataTypeName(mcDataType), mcDataType)); } CHelper.SafeSelect(FieldTypeList, "String"); mfs.BindData(mc.Name); if (FieldTypeList.Items.Count > 0) { BindFormats(); } } else // Edit { NameTextBox.Text = mf.Name; NameTextBox.Enabled = false; FriendlyNameTextBox.Text = mf.FriendlyName; AllowNullsCheckBox.Checked = mf.IsNullable; AllowNullsCheckBox.Enabled = false; McDataType mcDataType = mf.GetOriginalMetaType().McDataType; FieldTypeList.Items.Add(new ListItem(CHelper.GetMcDataTypeName(mcDataType), mcDataType.ToString())); FieldTypeList.Enabled = false; FormatList.Items.Add(new ListItem(CHelper.GetResFileString(mf.GetOriginalMetaType().FriendlyName), mf.TypeName)); FormatList.Enabled = false; if (FieldTypeList.SelectedValue != McDataType.Identifier.ToString() && FieldTypeList.SelectedValue != McDataType.Enum.ToString() && FieldTypeList.SelectedValue != McDataType.MultiReference.ToString() && MetaDataWrapper.GetFieldFormatsByType(FieldTypeList.SelectedValue).Length <= 1) { FormatRow.Visible = false; } trSelector.Visible = false; ShowControl(); } if (AutogenerateSystemNames) { NameRow.Visible = false; } }
/// <summary> /// Binds a data source to the invoked server control and all its child controls. /// </summary> public override void DataBind() { ListInfo li = ListManager.GetListInfoByMetaClass(mc); if (!li.IsTemplate) { ListDataLink.Text = li.Title; ListDataLink.NavigateUrl = String.Format(CultureInfo.InvariantCulture, "~/Apps/MetaUIEntity/Pages/EntityList.aspx?ClassName={0}", mc.Name); ListTemplate.Visible = false; } else { ListTemplate.Text = li.Title; ListDataLink.Visible = false; } RecordCountLabel.Text = MetaObject.GetTotalCount(mc).ToString(); CreatedByLabel.Text = CommonHelper.GetUserStatus(li.CreatorId); CreatedLabel.Text = li.Created.ToShortDateString(); StatusLabel.Text = (li.Properties["Status"].Value != null) ? CHelper.GetResFileString(MetaEnum.GetFriendlyName(MetaDataWrapper.GetEnumByName(ListManager.ListStatusEnumName), (int)li.Properties["Status"].Value)) : ""; TypeLabel.Text = (li.Properties["ListType"].Value != null) ? CHelper.GetResFileString(MetaEnum.GetFriendlyName(MetaDataWrapper.GetEnumByName(ListManager.ListTypeEnumName), (int)li.Properties["ListType"].Value)) : ""; string titleFieldName = mc.TitleFieldName; if (!String.IsNullOrEmpty(titleFieldName)) { if (mc.Fields[titleFieldName] != null) { DefaultFieldButton.Text = CHelper.GetResFileString(mc.Fields[titleFieldName].FriendlyName); DefaultFieldLabel.Text = DefaultFieldButton.Text; } else { DefaultFieldButton.Text = titleFieldName; } } else { DefaultFieldButton.Text = GetGlobalResourceObject("IbnFramework.ListInfo", "DefaultFieldNotSet").ToString(); DefaultFieldLabel.Text = GetGlobalResourceObject("IbnFramework.ListInfo", "DefaultFieldNotSet").ToString(); } foreach (MetaField mf in mc.Fields) { McDataType type = mf.GetOriginalMetaType().McDataType; if (mf.IsNullable || type != McDataType.String) { continue; } string itemText = ""; string name = mf.Name; itemText = CHelper.GetResFileString(mf.FriendlyName);; FieldsList.Items.Add(new ListItem(itemText, name)); } if (!String.IsNullOrEmpty(titleFieldName)) { CHelper.SafeSelect(FieldsList, titleFieldName); } if (FieldsList.Items.Count > 0) { DefaultFieldButton.Visible = true; DefaultFieldLabel.Visible = false; } else { DefaultFieldButton.Visible = false; DefaultFieldLabel.Visible = true; } FieldsList.Visible = false; SaveButton.Visible = false; CancelButton.Visible = false; base.DataBind(); }