Ejemplo n.º 1
0
 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));
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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));
                }
            }
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
 public static string GetMcDataTypeName(McDataType mcDataType)
 {
     return GetMcDataTypeName(mcDataType.ToString());
 }
Ejemplo n.º 6
0
        /// <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;
            }
        }
Ejemplo n.º 7
0
 public static bool IsElementaryType(McDataType type)
 {
     return(!IsComplexType(type));
 }
Ejemplo n.º 8
0
 public static bool IsDateTimeType(this McDataType dataType)
 {
     return(dataType == McDataType.DateTime);
 }
Ejemplo n.º 9
0
 public static string GetMcDataTypeName(McDataType mcDataType)
 {
     return(GetMcDataTypeName(mcDataType.ToString()));
 }
Ejemplo n.º 10
0
        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;
        }
Ejemplo n.º 11
0
        /// <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);
        }
Ejemplo n.º 12
0
        /// <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;
            }
        }
Ejemplo n.º 13
0
        /// <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();
        }