Example #1
0
 public static bool CheckCardField(MetaClass _class, MetaField cardField)
 {
     string CardPKeyName = string.Format(CultureInfo.InvariantCulture, "{0}Id", cardField.Owner.Name);
     string CardRefKeyName = string.Format(CultureInfo.InvariantCulture, "{0}Id", _class.Name);
     return (cardField.Name != CardRefKeyName &&
             cardField.Name != CardPKeyName &&
             !(cardField.GetOriginalMetaType().McDataType == McDataType.ReferencedField &&
             cardField.Attributes.GetValue<string>(McDataTypeAttribute.ReferencedFieldMetaClassName) == _class.Name)
             );
 }
Example #2
0
        /// <summary>
        /// Checks the card field.
        /// </summary>
        /// <param name="_class">The _class.</param>
        /// <param name="cardField">The card field.</param>
        /// <returns></returns>
        public static bool CheckCardField(MetaClass _class, MetaField cardField)
        {
            string CardPKeyName   = string.Format(CultureInfo.InvariantCulture, "{0}Id", cardField.Owner.Name);
            string CardRefKeyName = string.Format(CultureInfo.InvariantCulture, "{0}Id", _class.Name);

            return(cardField.Name != CardRefKeyName &&
                   cardField.Name != CardPKeyName &&
                   !(cardField.GetOriginalMetaType().McDataType == McDataType.ReferencedField &&
                     cardField.Attributes.GetValue <string>(McDataTypeAttribute.ReferencedFieldMetaClassName) == _class.Name)
                   );
        }
Example #3
0
        private void BindGrid()
        {
            MetaClass mc = MetaDataWrapper.GetMetaClassByName(ClassName);
            DataTable dt = new DataTable();

            dt.Locale = CultureInfo.InvariantCulture;
            dt.Columns.Add("Id", typeof(string));
            dt.Columns.Add("Name", typeof(string));
            dt.Columns.Add("Type", typeof(string));

            HistoryMetaClassInfo historyInfo    = HistoryManager.GetInfo(mc);
            Collection <string>  selectedFields = historyInfo.SelectedFields;

            foreach (string fieldName in selectedFields)
            {
                MetaField mf = mc.Fields[fieldName];
                if (mf == null)
                {
                    continue;
                }

                DataRow row = dt.NewRow();
                row["Id"]   = fieldName;
                row["Name"] = CHelper.GetMetaFieldName(mf);
                row["Type"] = CHelper.GetMcDataTypeName(mf.GetOriginalMetaType().McDataType);

                dt.Rows.Add(row);
            }

            MainGrid.DataSource = dt;
            MainGrid.DataBind();

            foreach (GridViewRow row in MainGrid.Rows)
            {
                ImageButton ib = (ImageButton)row.FindControl("DeleteButton");
                if (ib != null)
                {
                    ib.Attributes.Add("onclick", "return confirm('" + GetGlobalResourceObject("IbnFramework.GlobalMetaInfo", "Delete").ToString() + "?')");
                }
            }
        }
Example #4
0
        /// <summary>
        /// Binds the data.
        /// </summary>
        private void BindData()
        {
            tblName.Text = lip.ListName;
            MetaField mf = null;

            if (ViewState["_field"] != null)
            {
                mf = lip.GetDestinationMetaField(ViewState["_field"].ToString());
            }

            if (mf != null)
            {
                NameTextBox.Text           = mf.Name;
                FriendlyNameTextBox.Text   = mf.FriendlyName;
                AllowNullsCheckBox.Checked = mf.IsNullable;
            }
            else
            {
                NameTextBox.Text           = "";
                FriendlyNameTextBox.Text   = "";
                AllowNullsCheckBox.Checked = true;
            }

            FieldTypeList.Items.Clear();
            // Building the FieldType list
            foreach (string mcDataType in Enum.GetNames(typeof(McDataType)))
            {
                if (!MetaDataBaseSection.CheckMetaFieldTypeVisibility("List_XXX", (McDataType)Enum.Parse(typeof(McDataType), mcDataType)))
                {
                    continue;
                }

                if ((mcDataType == McDataType.ReferencedField.ToString()) ||
                    (mcDataType == McDataType.Reference.ToString()) ||
                    (mcDataType == McDataType.BackReference.ToString()) ||
                    (mcDataType == McDataType.Card.ToString()) ||
                    (mcDataType == McDataType.Link.ToString()) ||
                    (mcDataType == McDataType.Complex.ToString()) ||
                    (mcDataType == McDataType.MultiReference.ToString()))
                {
                    continue;
                }
                else if (mcDataType == McDataType.Identifier.ToString())
                {
                    if (DataContext.Current.MetaModel.GetRegisteredTypes(McDataType.Identifier).Length <= 0)
                    {
                        continue;
                    }
                }

                FieldTypeList.Items.Add(new ListItem(CHelper.GetMcDataTypeName(mcDataType), mcDataType));
            }
            if (mf != null)
            {
                CHelper.SafeSelect(FieldTypeList, mf.GetOriginalMetaType().McDataType.ToString());
            }
            else
            {
                CHelper.SafeSelect(FieldTypeList, "String");
            }

            if (FieldTypeList.Items.Count > 0)
            {
                string typeName = String.Empty;
                if (mf != null)
                {
                    typeName = mf.TypeName;
                }
                BindFormats(typeName);
            }

            if (AutogenerateSystemNames)
            {
                NameRow.Visible = false;
            }
        }
Example #5
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;
            }
        }
Example #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)
            {
                // 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;
            }
        }
Example #7
0
        /// <summary>
        /// Handles the ItemDataBound event of the dgMapping control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridItemEventArgs"/> instance containing the event data.</param>
        void dgMapping_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
            DropDownList ddi = (DropDownList)e.Item.FindControl("ddColumns");

            if (ddi != null)
            {
                string mfName = e.Item.Cells[0].Text;

                #region Commented  may be needed
                //string ownFieldName = mfName;
                //string aggrFieldName = String.Empty;
                //string aggrClassName = String.Empty;
                //MetaClass ownClass = MetaDataWrapper.GetMetaClassByName(_className);
                //MetaClass aggrClass = null;
                //MetaField ownField = null;
                //MetaField aggrField = null;
                //if (ownFieldName.Contains("."))
                //{
                //    string[] mas = ownFieldName.Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries);
                //    ownFieldName = mas[0];
                //    aggrFieldName = mas[1];
                //    ownField = MetaDataWrapper.GetMetaFieldByName(ownClass, ownFieldName);
                //    aggrClassName = ownField.Attributes.GetValue<string>(McDataTypeAttribute.AggregationMetaClassName);
                //    aggrField = MetaDataWrapper.GetMetaFieldByName(aggrClassName, aggrFieldName);
                //}
                //else
                //    ownField = MetaDataWrapper.GetMetaFieldByName(ownClass, ownFieldName);
                #endregion

                _ir = (ImportRequest)ViewState["_ir"];

                MetaField             field = FormController.GetMetaField(_className, mfName);
                MappingElementBuilder meb   = new MappingElementBuilder(_ir.MappingDocument);
                MappingRule           mr    = meb.GetRuleByMetaField(mfName);

                ddi.Items.Clear();
                ddi.Items.Add(new ListItem(GetGlobalResourceObject("IbnFramework.Common", "tNotSetValue").ToString(), "-1"));
                if (field.GetOriginalMetaType() != null)
                {
                    ddi.Items.Add(new ListItem(GetGlobalResourceObject("IbnFramework.Common", "tDefaultValue").ToString(), "0"));
                }

                foreach (DataColumn dc in _ir.Data.Tables[0].Columns)
                {
                    ddi.Items.Add(new ListItem(dc.ColumnName, dc.ColumnName));
                }

                string val = "-1";
                if (mr != null)
                {
                    if (mr.RuleType == MappingRuleType.DefaultValue)
                    {
                        val = "0";
                    }
                    else if (mr.RuleType == MappingRuleType.CopyValue)
                    {
                        val = mr.ColumnName;
                    }
                }
                CHelper.SafeSelect(ddi, val);

                TextBox      txt = (TextBox)e.Item.FindControl("tbColumn");
                DropDownList dd  = (DropDownList)e.Item.FindControl("ddColumn");
                switch (val)
                {
                case "-1":                              //Not Set
                    txt.Visible = false;
                    dd.Visible  = false;
                    break;

                case "0":                               //Default Value
                    if (field.IsEnum)
                    {
                        dd.Visible  = true;
                        txt.Visible = false;
                        dd.Items.Clear();
                        MetaFieldType mft = field.GetMetaType();
                        foreach (MetaEnumItem mei in mft.EnumItems)
                        {
                            dd.Items.Add(new ListItem(CHelper.GetResFileString(mei.Name), mei.Handle.ToString()));
                        }
                        if (!String.IsNullOrEmpty(mr.DefaultValue))
                        {
                            CHelper.SafeSelect(dd, mr.DefaultValue);
                        }
                    }
                    else if (field.IsReference)
                    {
                        dd.Visible  = true;
                        txt.Visible = false;
                        dd.Items.Clear();
                        string         refClassName = field.Attributes.GetValue <string>(McDataTypeAttribute.ReferenceMetaClassName);
                        MetaClass      refClass     = MetaDataWrapper.GetMetaClassByName(refClassName);
                        EntityObject[] list         = BusinessManager.List(refClassName, (new FilterElementCollection()).ToArray());

                        dd.Items.Add(new ListItem(GetGlobalResourceObject("IbnFramework.Common", "tNotSetValue").ToString(), "-1"));
                        foreach (EntityObject eo in list)
                        {
                            dd.Items.Add(new ListItem(CHelper.GetResFileString(eo[refClass.TitleFieldName].ToString()), eo.PrimaryKeyId.Value.ToString()));
                        }
                        if (!String.IsNullOrEmpty(mr.DefaultValue))
                        {
                            CHelper.SafeSelect(dd, mr.DefaultValue);
                        }
                    }
                    else
                    {
                        dd.Visible  = false;
                        txt.Visible = true;
                        txt.Text    = mr.DefaultValue;
                    }
                    break;

                default:                                //CopyValue
                    txt.Visible = false;
                    dd.Visible  = false;
                    break;
                }

                //Update UpdatePanel with lbl & txt && dd (upValues)
                foreach (Control c in e.Item.Cells[3].Controls)
                {
                    if (c is UpdatePanel)
                    {
                        ((UpdatePanel)c).Update();
                    }
                }
            }
        }