Esempio n. 1
0
        protected void dgEtFields_ItemCommand(Object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            bool isVirtual;
            bool fieldSuppress;
            int  fieldOrder;
            int  fieldId;

            try
            {
                fieldId = int.Parse(e.Item.Cells[1].Text);
            }
            catch
            {
                fieldId = -1;
            }
            int           tableId   = int.Parse(ddlTableDefs.SelectedValue);
            string        tableName = lblEtTableName.Text;
            MetadataNewDa MNDa      = new MetadataNewDa();

            switch (e.CommandName)
            {
            case "Expand":
                viewMode = "editTable";
                setViewMode();

                PlaceHolder exp;
                exp         = e.Item.Cells[2].FindControl("Expanded") as PlaceHolder;
                exp.Visible = !exp.Visible;
                break;

            case "Edit":
                string fieldName     = ((TextBox)e.Item.Cells[2].Controls[1]).Text;
                string fieldDataType = ((DropDownList)e.Item.Cells[3].Controls[1]).SelectedValue;
                fieldSuppress = ((CheckBox)e.Item.Cells[5].Controls[1]).Checked;
                isVirtual     = ((CheckBox)e.Item.Cells[4].Controls[1]).Checked;
                try
                {
                    fieldOrder = int.Parse(((DropDownList)e.Item.Cells[6].Controls[1]).SelectedValue);
                }
                catch
                {
                    fieldOrder = -1;
                }
                viewMode = "editTable";
                setViewMode();


                DataRow fieldDr            = MNDa.GetMetadataField(fieldId);
                int     previousFieldOrder = -1;

                if (fieldDr[BOL.MetadataField.FieldOrder] != null && PageUtil.IsInteger(fieldDr[BOL.MetadataField.FieldOrder].ToString()))
                {
                    previousFieldOrder = (int)fieldDr[BOL.MetadataField.FieldOrder];
                }


                // This call updates the field order correctly
                MNDa.UpdateMetaField(fieldId, fieldName, fieldDataType, fieldSuppress, fieldOrder);

                // Resequence fields
                this.UpdateFieldOrders(fieldOrder, previousFieldOrder, tableId, fieldId, fieldSuppress);

                if (isVirtual)
                {
                    // refresh virtual field map
                    //Caisis.BOL.BusinessObjectFactory.RebuildVirtualFieldMap();
                    Caisis.BOL.BusinessObject.RebuildVirtualFields();
                }

                updateEditTableView(tableId, tableName);
                break;

            case "Delete":
                bool okToDelete = true;
                isVirtual = ((CheckBox)e.Item.Cells[4].Controls[1]).Checked;
                fieldId   = int.Parse(e.Item.Cells[1].Text);

                if (isVirtual)
                {
                    okToDelete = !MNDa.VirtualMetaFieldHasSavedData(fieldId);
                }
                if (okToDelete)
                {
                    viewMode = "editTable";
                    setViewMode();

                    MNDa.DeleteMetaField(fieldId);

                    if (isVirtual)
                    {
                        // refresh virtual field map
                        //Caisis.BOL.BusinessObjectFactory.RebuildVirtualFieldMap();
                        Caisis.BOL.BusinessObject.RebuildVirtualFields();
                    }

                    //MNDa.MetaFieldOrderRenumber(tableId);
                    updateEditTableView(tableId, tableName);
                }
                else
                {
                    viewMode = "errorMessage";
                    setViewMode();
                    lblErrorHeading.Text = "Could not delete virtual meta field";
                    lblErrorMessage.Text = "The selected virtual meta field has data saved in virtual table. The virtual meta field was not deleted.";
                }
                break;

            case "AddNewField":
                TextBox      efTxtNewVirtualField;
                DropDownList efDdlNewVirtualFieldDataType;
                CheckBox     efCbxNewFieldIsVirtual;
                CheckBox     efCbxNewFieldSuppress;
                DropDownList efDdlNewFieldOrder;

                efTxtNewVirtualField         = (TextBox)e.Item.FindControl("efTxtNewVirtualField");
                efDdlNewVirtualFieldDataType = (DropDownList)e.Item.FindControl("efDdlNewVirtualFieldDataType");
                efCbxNewFieldIsVirtual       = (CheckBox)e.Item.FindControl("efCbxNewFieldIsVirtual");
                efCbxNewFieldSuppress        = (CheckBox)e.Item.FindControl("efCbxNewFieldSuppress");
                efDdlNewFieldOrder           = (DropDownList)e.Item.FindControl("efDdlNewFieldOrder");

                string newFieldName = efTxtNewVirtualField.Text;
                string dataType     = efDdlNewVirtualFieldDataType.SelectedValue;
                fieldSuppress = ((CheckBox)e.Item.Cells[5].Controls[1]).Checked;
                string strFieldOrder = ((DropDownList)e.Item.Cells[6].Controls[1]).SelectedValue;
                fieldOrder = -1;
                try
                {
                    fieldOrder = int.Parse(((DropDownList)e.Item.Cells[6].Controls[1]).SelectedValue);
                }
                catch {};
                if (fieldOrder > -1)
                {
                    fieldId = MNDa.AddMetaField(tableId, newFieldName, dataType, -1, true, fieldSuppress, fieldOrder);
                    MNDa.MetaFieldOrderRenumber(tableId);
                }
                else
                {
                    fieldId = MNDa.AddMetaField(tableId, newFieldName, dataType, -1, true, fieldSuppress);
                }

                // refresh virtual field map
                //Caisis.BOL.BusinessObjectFactory.RebuildVirtualFieldMap();
                Caisis.BOL.BusinessObject.RebuildVirtualFields();

                viewMode = "editTable";
                setViewMode();
                updateEditTableView(tableId, tableName);
                break;

            case "AddNewFieldCancel":
                viewMode = "editTable";
                setViewMode();
                updateEditTableView(tableId, tableName);
                break;
            }
        }