Example #1
0
        /// <summary>
        /// Binds the available fields.
        /// </summary>
        private void BindAvailableFields()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("MetaFieldId", typeof(int));
            dt.Columns.Add("FriendlyName", typeof(string));

            // Fields
            MetaFieldCollection mfc = MetaField.GetList(MDContext);

            foreach (MetaField field in mfc)
            {
                if (field.IsUser)
                {
                    DataRow row = dt.NewRow();
                    row["MetaFieldId"]  = field.Id;
                    row["FriendlyName"] = field.FriendlyName;
                    dt.Rows.Add(row);
                }
            }

            /*
             *          ItemsGrid.DataSource = new DataView(dt);
             *          ItemsGrid.DataBind();
             * */
        }
Example #2
0
		private void BindAvailableFields()
		{
			DataTable dt = new DataTable();
			dt.Columns.Add("FieldId", typeof(int));
			dt.Columns.Add("FriendlyName", typeof(string));
			dt.Columns.Add("Description", typeof(string));
			dt.Columns.Add("DataType", typeof(string));
			dt.Columns.Add("DataTypeId", typeof(int));
			dt.Columns.Add("sortDataType", typeof(int));
			dt.Columns.Add("CanDelete", typeof(bool));

			MetaFieldCollection mfc = MetaField.GetList(MetaDataPlus.MetaNamespace.UserRoot, true);
			DataRow row;
			foreach (MetaField field in mfc)
			{
				bool fl = true;
				if (ddlShow.SelectedValue == "1" && field.OwnerMetaClassIdList.Count == 0)
					fl = false;
				if (ddlShow.SelectedValue == "-1" && field.OwnerMetaClassIdList.Count != 0)
					fl = false;
				if (fl)
				{
					row = dt.NewRow();
					row["FieldId"] = field.Id;
					row["FriendlyName"] = field.FriendlyName;
					row["Description"] = field.Description;
					MetaType mdType = MetaType.Load(field.DataType);
					row["DataType"] = mdType.FriendlyName;
					int iType = mdType.Id;
					if (mdType.MetaDataType == MetaDataType.DictionaryMultivalue ||
						mdType.MetaDataType == MetaDataType.DictionarySingleValue ||
						mdType.MetaDataType == MetaDataType.EnumMultivalue ||
						mdType.MetaDataType == MetaDataType.EnumSingleValue ||
						mdType.MetaDataType == MetaDataType.StringDictionary)
						iType = 0;
					row["DataTypeId"] = iType;
					row["sortDataType"] = GetSortDataType(mdType);
					row["CanDelete"] = (field.OwnerMetaClassIdList.Count == 0);
					dt.Rows.Add(row);
				}
			}

			DataView dv = dt.DefaultView;
			if (pc["Cust_AvailableFields_Sort"] == null)
				pc["Cust_AvailableFields_Sort"] = "sortDataType";
			dv.Sort = pc["Cust_AvailableFields_Sort"];
			if (int.Parse(ddlType.SelectedValue) >= 0)
				dv.RowFilter = "DataTypeId = " + ddlType.SelectedValue;
			dgAvailableFields.DataSource = dv;
			dgAvailableFields.DataBind();

			foreach (DataGridItem dgi in dgAvailableFields.Items)
			{
				ImageButton ib = (ImageButton)dgi.FindControl("ibDelete");
				if (ib != null)
					ib.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("DeleteWarning") + "')");
			}
		}
        private static Type GetMetaFieldType(string fieldName, out MetaField field)
        {
            var metaContext = OrderContext.MetaDataContext;

            field = MetaField.GetList(metaContext).FirstOrDefault(x => x.Name == fieldName);
            if (field == null)
            {
                return(null);
            }

            var metaDataType = field.DataType;

            switch (metaDataType)
            {
            case MetaDataType.BigInt:
            case MetaDataType.Decimal:
            case MetaDataType.Money:
            case MetaDataType.SmallMoney:
                return(typeof(decimal));

            case MetaDataType.Bit:
            case MetaDataType.Char:
            case MetaDataType.Int:
            case MetaDataType.SmallInt:
            case MetaDataType.TinyInt:
            case MetaDataType.Integer:
                return(typeof(int));

            case MetaDataType.DateTime:
            case MetaDataType.SmallDateTime:
            case MetaDataType.Date:
                return(typeof(DateTime));

            case MetaDataType.Float:
            case MetaDataType.Real:
                return(typeof(double));

            case MetaDataType.NChar:
            case MetaDataType.NText:
            case MetaDataType.NVarChar:
            case MetaDataType.Text:
            case MetaDataType.VarChar:
            case MetaDataType.LongString:
            case MetaDataType.Email:
            case MetaDataType.URL:
            case MetaDataType.ShortString:
            case MetaDataType.LongHtmlString:
                return(typeof(string));

            case MetaDataType.Boolean:
                return(typeof(bool));

            default:
                return(null);
            }
        }
Example #4
0
        /// <summary>
        /// Binds the items grid.
        /// </summary>
        /// <param name="id">The id.</param>
        private void BindItemsGrid(int id)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("MetaFieldId", typeof(int));
            dt.Columns.Add("FriendlyName", typeof(string));

            // Fields
            MetaFieldCollection mfc = MetaField.GetList(MDContext /*Namespace, true*/);            // allow sharing meta fields

            foreach (MetaField field in mfc)
            {
                if (field.IsUser)
                {
                    DataRow row = dt.NewRow();
                    row["MetaFieldId"]  = field.Id;
                    row["FriendlyName"] = field.FriendlyName;
                    dt.Rows.Add(row);
                }
            }

            ItemsGrid.DataSource = new DataView(dt);
            ItemsGrid.DataBind();

            if (id > 0)
            {
                ArrayList list = new ArrayList();

                MetaFieldCollection mfc2 = MetaField.GetList(MDContext, id);
                foreach (MetaField mf in mfc2)
                {
                    if (mf.IsUser)
                    {
                        for (int i = 0; i < ItemsGrid.Items.Count; i++)
                        {
                            if ((int)ItemsGrid.DataKeys[i] == mf.Id)
                            {
                                list.Add(i);
                                TextBox box = (TextBox)ItemsGrid.Items[i].FindControl("Weight");
                                box.Text = mf.Weight.ToString();
                            }
                        }
                    }
                }

                ((Mediachase.Web.Console.Controls.RowSelectorColumn)ItemsGrid.Columns[0]).SelectedIndexes = (int[])list.ToArray(typeof(int));
            }
        }
Example #5
0
        /// <summary>
        /// Backups the meta data.
        /// </summary>
        private static void BackupMetaData()
        {
            ArrayList list = new ArrayList();

            foreach (MetaClass cl in MetaClass.GetList(OrderContext.MetaDataContext))
            {
                list.Add(cl);
            }

            foreach (MetaField field in MetaField.GetList(OrderContext.MetaDataContext))
            {
                if (!field.IsSystem)
                {
                    list.Add(field);
                }
            }

            MetaInstaller.Backup("OrderSystem.mdp", list.ToArray());
        }
Example #6
0
        private void CreateMetaField(MetaFieldInfo fieldInfo)
        {
            var metaContext = OrderContext.MetaDataContext;

            if (MetaField.GetList(metaContext).Any(x => x.Name == fieldInfo.Name))
            {
                return;
            }

            MetaField.Create(
                metaContext,
                fieldInfo.MetaNamespace,
                fieldInfo.Name,
                fieldInfo.FriendlyName,
                fieldInfo.Description,
                fieldInfo.MetaFieldType,
                fieldInfo.Length,
                fieldInfo.IsNullable,
                fieldInfo.IsMultiLanguage,
                fieldInfo.IsSearchable,
                fieldInfo.IsEncrypted);
        }
Example #7
0
 /// <summary>
 /// Loads the data and data bind.
 /// </summary>
 /// <param name="sortExpression">The sort expression.</param>
 private void LoadDataAndDataBind(string sortExpression)
 {
     MyListView.CurrentListView.PrimaryKeyId = EcfListView.MakePrimaryKeyIdString("Id");
     MyListView.DataSource = MetaField.GetList(ProfileContext.MetaDataContext, FieldNamespace);
     MyListView.DataBind();
 }
Example #8
0
        private void DeleteAllMetaClasses(bool doDelete, ClearCatalogAndModelsResult result)
        {
            MetaDataContext     metaDataContext     = new MetaDataContext();
            MetaClassCollection metaClassCollection = MetaClass.GetList(metaDataContext);
            List <string>       logList             = new List <string>();

            foreach (MetaClass metaClass in metaClassCollection)
            {
                if (doDelete && metaClass.IsSystem == false)
                {
                    _log.DebugFormat("Deleting class: {0} - {1} (System: {2})",
                                     metaClass.Name,
                                     metaClass.Id,
                                     metaClass.IsSystem);
                    try
                    {
                        MetaClass.Delete(metaDataContext, metaClass.Id);
                        result.MetaClassesDeleted++;
                    }
                    catch (Exception ex)
                    {
                        result.MetaClassesSkipped++;
                        _log.Error(string.Format("Cannot delete Class: {0} - {1} ({2})", metaClass.Name,
                                                 metaClass.Id, ex.Message),
                                   ex);
                    }
                }
                else
                {
                    result.MetaClassesSkipped++;
                    _log.DebugFormat("NOT deleting system class: {0} - {1} (System: {2})",
                                     metaClass.Name,
                                     metaClass.Id,
                                     metaClass.IsSystem);
                }
            }

            // List of meta data fields to keep.
            List <string> filterFields = new List <string>()
            {
                "TrackingNumber",
                "AddYourOwn"
            };
            MetaFieldCollection fields = MetaField.GetList(metaDataContext);

            foreach (MetaField field in fields)
            {
                // Do not delete: System fields, filtered fields and fields starting with underscore
                if (doDelete &&
                    field.IsSystem == false &&
                    filterFields.Contains(field.Name) == false &&
                    field.Name.StartsWith("_") == false)
                {
                    _log.DebugFormat("Deleting field: {0} - {1} (System: {2})",
                                     field.Name,
                                     field.Id,
                                     field.IsSystem);
                    try
                    {
                        MetaField.Delete(metaDataContext, field.Id);
                        result.MetaFieldsDeleted++;
                    }
                    catch (Exception ex)
                    {
                        result.MetaFieldsSkipped++;
                        _log.Error(string.Format("Cannot delete Field: {0} - {1} ({2})",
                                                 field.Name,
                                                 field.Id, ex.Message),
                                   ex);
                    }
                }
                else
                {
                    result.MetaFieldsSkipped++;
                    _log.DebugFormat("NOT deleting field: {0} - {1} (System: {2})",
                                     field.Name,
                                     field.Id,
                                     field.IsSystem);
                }
            }
        }
Example #9
0
        private MetaField GetMetaField(string name)
        {
            var metaContext = OrderContext.MetaDataContext;

            return(MetaField.GetList(metaContext).FirstOrDefault(x => x.Name == name));
        }
Example #10
0
        /// <summary>
        /// Creates the child controls internal.
        /// </summary>
        private void CreateChildControlsInternal()
        {
            //if (this.ObjectId > 0)
            {
                MetaControls.EnableViewState = false;
                if (MetaControls.Controls.Count > 0)
                {
                    return;
                }

                MetaControls.Controls.Clear();

                MetaClass mc = MetaClass.Load(this.MDContext, MetaClassId);

                if (mc == null)
                {
                    return;
                }

                Dictionary <string, MetaObject> metaObjects = new Dictionary <string, MetaObject>();

                if (_metaObjects != null)
                {
                    metaObjects = _metaObjects;
                }
                else
                {
                    // cycle through each language and get meta objects
                    MDContext.UseCurrentUICulture = false;
                    foreach (string language in Languages)
                    {
                        MDContext.UseCurrentUICulture = false;
                        MDContext.Language            = language;

                        MetaObject metaObj = null;
                        if (ObjectId > 0)
                        {
                            metaObj = MetaObject.Load(MDContext, ObjectId, mc);
                            if (metaObj == null)
                            {
                                metaObj = MetaObject.NewObject(MDContext, ObjectId, MetaClassId, FrameworkContext.Current.Profile.UserName);
                                metaObj.AcceptChanges(MDContext);
                            }
                        }

                        metaObjects[language] = metaObj;
                    }
                    MDContext.UseCurrentUICulture = true;
                }

                MetaFieldCollection metaFieldsColl = MetaField.GetList(MDContext, MetaClassId);
                foreach (MetaField mf in metaFieldsColl)
                {
                    if (mf.IsUser)
                    {
                        int index = 0;
                        foreach (string language in Languages)
                        {
                            string  controlName = ResolveMetaControl(mc, mf);
                            Control ctrl        = MetaControls.FindControl(mf.Name);

                            if (ctrl == null)
                            {
                                ctrl = Page.LoadControl(controlName);
                                MetaControls.Controls.Add(ctrl);
                            }


                            CoreBaseUserControl coreCtrl = ctrl as CoreBaseUserControl;
                            if (coreCtrl != null)
                            {
                                coreCtrl.MDContext = this.MDContext;
                            }

                            //ctrl.ID = String.Format("{0}-{1}", mf.Name, index.ToString());

                            ((IMetaControl)ctrl).MetaField = mf;
                            if (metaObjects[language] != null && metaObjects[language][mf] != null)
                            {
                                ((IMetaControl)ctrl).MetaObject = metaObjects[language];
                            }

                            ((IMetaControl)ctrl).LanguageCode    = language;
                            ((IMetaControl)ctrl).ValidationGroup = ValidationGroup;

                            ctrl.DataBind();

                            if (!mf.MultiLanguageValue)
                            {
                                break;
                            }

                            index++;
                        }
                    }
                }
            }
        }