예제 #1
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            int    j;
            string sTypeName;
            object oItem;

            try
            {
                if (Request.QueryString["id"] == null)
                {
                    Session["lastpage"] = "view.aspx?id=" + Session["EquipId"].ToString();
                    Session["error"]    = _functions.ErrorMessage(104);
                    Response.Redirect("error.aspx", false);
                    return;
                }
                try
                {
                    ComponentId = Convert.ToInt32(Request.QueryString["id"]);
                }
                catch (FormatException fex)
                {
                    Session["lastpage"] = "view.aspx?id=" + Session["EquipId"].ToString();
                    Session["error"]    = _functions.ErrorMessage(105);
                    Response.Redirect("error.aspx", false);
                    return;
                }

                string [,] arrBrdCrumbs = new string [3, 2];
                arrBrdCrumbs[0, 0]      = "main.aspx";
                arrBrdCrumbs[0, 1]      = "Home";
                arrBrdCrumbs[1, 0]      = "list.aspx";
                arrBrdCrumbs[1, 1]      = "Equipment List";
                if (Session["EquipId"] != null)
                {
                    arrBrdCrumbs[2, 0] = "view.aspx?id=" + Session["EquipId"].ToString();
                }
                else
                {
                    arrBrdCrumbs[2, 0] = ParentPageURL;
                }
                arrBrdCrumbs[2, 1] = "Equipment Detail";
                PageTitle          = "Equipment-Edit Component";
                Header.BrdCrumbs   = ParseBreadCrumbs(arrBrdCrumbs, PageTitle);
                Header.PageTitle   = PageTitle;

                SaveCancelControl.ParentPageURL = ParentPageURL;

                SourcePageName = "editComponent.aspx.cs";

                if (!IsPostBack)
                {
                    comp = new clsComponents();

                    dtCustomFields = new DataTable();
                    dtCustomFields.Columns.Add("TypeName");
                    dtCustomFields.Columns.Add("ValueName");
                    dtCustomFields.Columns.Add("Value_String");
                    dtCustomFields.Columns.Add("Value_Boolean");
                    dtCustomFields.Columns.Add("Value_Int");
                    dtCustomFields.Columns.Add("Value_DateTime");
                    dtCustomFields.Columns.Add("TB_Visible");
                    dtCustomFields.Columns.Add("DDL_Visible");
                    dtCustomFields.Columns.Add("CB_Visible");
                    dtCustomFields.Columns.Add("MM_Visible");
                    dtCustomFields.Columns.Add("DT_Visible");
                    dtCustomFields.Columns.Add("Help");
                    dtCustomFields.Columns.Add("Val_Visible");
                    dtCustomFields.Columns.Add("ErrorMessage");
                    dtCustomFields.Columns.Add("Exp");

                    if (ComponentId == 0)
                    {                     // adding a component
                        lblLastUpdate.Text           = "";
                        ddlStatus.SelectedValue      = "1";
                        ViewState["ComponentTypeId"] = Convert.ToInt32(Request.QueryString["typeid"]);
                        btnRemove.Visible            = false;
                    }
                    else
                    {                     // editing a component
                        comp.iOrgId          = _functions.GetUserOrgId(HttpContext.Current.User.Identity.Name, false);
                        comp.iId             = ComponentId;
                        comp.cAction         = "S";
                        btnRemove.Visible    = true;
                        dtCustomFieldsFromDB = comp.ComponentDetail_CustomFields(null);

                        lblLastUpdate.Text = dtCustomFieldsFromDB.Rows[0]["UserName"].ToString() + " " + Convert.ToDateTime(dtCustomFieldsFromDB.Rows[0]["dtUpdated"]).ToString();
                        if ((bool)dtCustomFieldsFromDB.Rows[0]["btActive"])
                        {
                            ddlStatus.SelectedValue = "1";
                        }
                        else
                        {
                            ddlStatus.SelectedValue = "0";
                        }

                        ViewState["ComponentTypeId"] = Convert.ToInt32(dtCustomFieldsFromDB.Rows[0]["TypeId"]);
                    }
                    arrCFD = _functions.GetCustomFields(CFDataType.Component, (int)ViewState["ComponentTypeId"], HttpContext.Current.User.Identity.Name);
                    if (arrCFD.Count > 0)
                    {
                        // filling custom fields in the dtCustomFields table
                        for (j = 0; j < arrCFD.Count; j++)
                        {
                            cfd       = (clsCustomFieldsDef)arrCFD[j];
                            sTypeName = _functions.GetFieldTypeText(cfd.FieldTypeId) + cfd.NumberColumn.ToString();
                            if (ComponentId == 0)
                            {
                                oItem = DBNull.Value;
                            }
                            else
                            {
                                oItem = dtCustomFieldsFromDB.Rows[0][sTypeName];
                            }
                            switch (cfd.FieldTypeId)
                            {
                            case DBFieldType._nvarchar:
                                if (oItem != DBNull.Value)
                                {
                                    dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, oItem, "False", 0, "2000-01-01", "True", "False", "False", "False", "False", cfd.Help, "False", "", "" });
                                }
                                else
                                {
                                    dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, "", "False", 0, "2000-01-01", "True", "False", "False", "False", "False", cfd.Help, "False", "", "" });
                                }
                                break;

                            case DBFieldType._int:
                                if (oItem != DBNull.Value)
                                {
                                    dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, oItem, "False", 0, "2000-01-01", "True", "False", "False", "False", "False", cfd.Help, "True", cfd.NameText + " must be numeric", "^\\d{0,10}?$" });
                                }
                                else
                                {
                                    dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, "", "False", 0, "2000-01-01", "True", "False", "False", "False", "False", cfd.Help, "True", cfd.NameText + " must be numeric", "^\\d{0,10}?$" });
                                }
                                break;

                            case DBFieldType._float:
                                if (oItem != DBNull.Value)
                                {
                                    dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, oItem, "False", 0, "2000-01-01", "True", "False", "False", "False", "False", cfd.Help, "True", cfd.NameText + " must be decimal numeric", "^\\d{0,8}(?:\\.\\d{0,8})?$" });
                                }
                                else
                                {
                                    dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, "", "False", 0, "2000-01-01", "True", "False", "False", "False", "False", cfd.Help, "True", cfd.NameText + " must be decimal numeric", "^\\d{0,8}(?:\\.\\d{0,8})?$" });
                                }
                                break;

                            case DBFieldType._datetime:
                                if (oItem != DBNull.Value)
                                {
                                    dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, "", "False", 0, ((SqlDateTime)oItem).Value.ToShortDateString(), "False", "False", "False", "False", "True", cfd.Help, "False", "", "" });
                                }
                                else
                                {
                                    dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, "", "False", 0, "", "False", "False", "False", "False", "True", cfd.Help, "False", "", "" });
                                }
                                break;

                            case DBFieldType._bit:
                                if (oItem != DBNull.Value)
                                {
                                    if (((SqlBoolean)oItem) == SqlBoolean.True)
                                    {
                                        dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, "", "True", 0, "2000-01-01", "False", "False", "True", "False", "False", cfd.Help, "False", "", "" });
                                    }
                                    else
                                    {
                                        dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, "", "False", 0, "2000-01-01", "False", "False", "True", "False", "False", cfd.Help, "False", "", "" });
                                    }
                                    break;
                                }
                                else
                                {
                                    dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, "", "False", 0, "2000-01-01", "False", "False", "True", "False", "False", cfd.Help, "False", "", "" });
                                }
                                break;

                            case DBFieldType._ntext:
                                if (oItem != DBNull.Value)
                                {
                                    dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, oItem, "2000-01-01", 0, "2000-01-01", "True", "False", "False", "False", "False", cfd.Help, "False", "", "" });
                                }
                                else
                                {
                                    dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, "", "2000-01-01", 0, "2000-01-01", "True", "False", "False", "False", "False", cfd.Help, "False", "", "" });
                                }
                                break;

                            case DBFieldType._sql_variant:
                                dtCustomFields.Rows.Add(new object [] { sTypeName, cfd.NameText, (string)dtCustomFieldsFromDB.Rows[0][sTypeName], "2000-01-01", 0, "2000-01-01", "True", "False", "False", "False", "False", cfd.Help, "False", "", "" });
                                break;

                            case DBFieldType._lookup:
                                if (oItem != DBNull.Value)
                                {
                                    if (cfd.NameLookupTable == "EquipModels")
                                    {
                                        // adding data into DropDownList controls both Make and Model
                                        dtCustomFields.Rows.Add(new object [] { sTypeName, "Make/Model", "", "False", Convert.ToInt32(oItem), "2000-01-01", "False", "False", "False", "True", "False", cfd.Help, "False", "", "" });
                                    }
                                    else
                                    {
                                        dtCustomFields.Rows.Add(new object [] { sTypeName, "Make/Model", "", "False", "0", "2000-01-01", "False", "False", "False", "True", "False", cfd.Help, "False", "", "" });
                                    }
                                }
                                else
                                {
                                    dtCustomFields.Rows.Add(new object [] { sTypeName, "Make/Model", "", "False", "0", "2000-01-01", "False", "False", "False", "True", "False", cfd.Help, "False", "", "" });
                                }
                                break;

                            default:
                                break;
                            }
                            cfd = null;
                        }
                        // binding main datalist
                        ViewState["CustomFields"]  = dtCustomFields;
                        repCustomFields.DataSource = new DataView(dtCustomFields);
                        repCustomFields.DataBind();
                    }
                    else
                    {
                        Session["lastpage"] = ParentPageURL;
                        Session["error"]    = _functions.ErrorMessage(102);
                        Response.Redirect("error.aspx", false);
                    }
                }
            }
            catch (Exception ex)
            {
                _functions.Log(ex, HttpContext.Current.User.Identity.Name, SourcePageName);
                Session["lastpage"]     = ParentPageURL;
                Session["error"]        = ex.Message;
                Session["error_report"] = ex.ToString();
                Response.Redirect("error.aspx", false);
            }
            finally
            {
                if (comp != null)
                {
                    comp.Dispose();
                }
            }
        }
예제 #2
0
        private void btSave_FormSubmit(object sender, EventArgs e)
        {
            DBFieldType FieldType;
            string      sDataGridName;

            try
            {
                if (Request.QueryString["id"] == null)
                {
                    Session["lastpage"] = "view.aspx?id=" + Session["EquipId"].ToString();
                    Session["error"]    = _functions.ErrorMessage(104);
                    Response.Redirect("error.aspx", false);
                    return;
                }
                try
                {
                    ComponentId = Convert.ToInt32(Request.QueryString["id"]);
                }
                catch (FormatException fex)
                {
                    Session["lastpage"] = "view.aspx?id=" + Session["EquipId"].ToString();
                    Session["error"]    = _functions.ErrorMessage(105);
                    Response.Redirect("error.aspx", false);
                    return;
                }

                comp = new clsComponents();

                dtCustomFields = (DataTable)ViewState["CustomFields"];

                comp.cAction  = "U";
                comp.iOrgId   = _functions.GetUserOrgId(HttpContext.Current.User.Identity.Name, false);
                comp.iId      = ComponentId;            // editing a Equipment ot adding if ComponentId is zero
                comp.iEquipId = Convert.ToInt32(Session["EquipId"]);
                comp.iUserId  = _functions.GetUserOrgId(HttpContext.Current.User.Identity.Name, true);
                comp.iTypeId  = Convert.ToInt32(ViewState["ComponentTypeId"]);
                if (ddlStatus.SelectedValue == "1")
                {
                    comp.bitActive = SqlBoolean.True;
                }
                else
                {
                    comp.bitActive = SqlBoolean.False;
                }

                sDataGridName = "repCustomFields";

                // getting data from Form and changing the dtCustomFields datatable
                for (int i = 0; i < dtCustomFields.Rows.Count; i++)
                {
                    for (int j = 0; j < Request.Form.Count; j++)
                    {
                        if ((string)dtCustomFields.Rows[i]["TypeName"] == Request.Form[sDataGridName + ":_ctl" + j.ToString() + ":inputTypeName"])
                        {
                            FieldType = _functions.TypeNameParser((string)dtCustomFields.Rows[i]["TypeName"]);                             // nvarchar1...n, ...
                            switch (FieldType)
                            {
                            case DBFieldType._nvarchar:
                                dtCustomFields.Rows[i]["Value_String"] = Request.Form[sDataGridName + ":_ctl" + j.ToString() + ":tbValue"];
                                break;

                            case DBFieldType._int:
                                dtCustomFields.Rows[i]["Value_String"] = Request.Form[sDataGridName + ":_ctl" + j.ToString() + ":tbValue"];
                                break;

                            case DBFieldType._float:
                                dtCustomFields.Rows[i]["Value_String"] = Request.Form[sDataGridName + ":_ctl" + j.ToString() + ":tbValue"];
                                break;

                            case DBFieldType._datetime:
                                dtCustomFields.Rows[i]["Value_String"] = new SqlDateTime(Convert.ToInt32(Request.Form[sDataGridName + ":_ctl" + j.ToString() + ":adtValue_year"]),
                                                                                         Convert.ToInt32(Request.Form[sDataGridName + ":_ctl" + j.ToString() + ":adtValue_month"]),
                                                                                         Convert.ToInt32(Request.Form[sDataGridName + ":_ctl" + j.ToString() + ":adtValue_day"]));
                                break;

                            case DBFieldType._bit:
                                if (Request.Form[sDataGridName + ":_ctl" + j.ToString() + ":chValue"] == "ON")
                                {
                                    dtCustomFields.Rows[i]["Value_String"] = "True";
                                }
                                else
                                {
                                    dtCustomFields.Rows[i]["Value_String"] = "False";
                                }
                                break;

                            case DBFieldType._ntext:
                                dtCustomFields.Rows[i]["Value_String"] = Request.Form[sDataGridName + ":_ctl" + j.ToString() + ":tbValue"];
                                break;

                            case DBFieldType._sql_variant:
                                dtCustomFields.Rows[i]["Value_String"] = Request.Form[sDataGridName + ":_ctl" + j.ToString() + ":tbValue"];
                                break;

                            case DBFieldType._lookup:
                                if ((string)dtCustomFields.Rows[i]["ValueName"] != "Make/Model")
                                {
                                    dtCustomFields.Rows[i]["Value_String"] = Request.Form[sDataGridName + ":_ctl" + j.ToString() + ":ddlValue"];
                                }
                                else
                                {
                                    dtCustomFields.Rows[i]["Value_String"] = Request.Form[sDataGridName + ":_ctl" + j.ToString() + ":mmValue:ddlModels"];
                                }
                                break;

                            default:
                                dtCustomFields.Rows[i]["Value_String"] = Request.Form[sDataGridName + ":_ctl" + j.ToString() + ":tbValue"];
                                break;
                            }
                        }
                    }
                }

                // saving data to database
                comp.ComponentDetail_CustomFields(_functions.SetDataToParameters(dtCustomFields));
                if (comp.iId >= 0)
                {
                    Response.Redirect("view.aspx?id=" + Session["EquipId"].ToString(), false);
                }
                else
                {
                    Session["lastpage"] = "editComponent.aspx?id=" + ComponentId.ToString();
                    Session["error"]    = _functions.ErrorMessage(110);
                    Response.Redirect("error.aspx", false);
                }
            }
            catch (FormatException fex)
            {
                Session["lastpage"] = "editComponent.aspx?id=" + ComponentId.ToString();
                Session["error"]    = _functions.ErrorMessage(108);
                Response.Redirect("error.aspx", false);
            }
            catch (Exception ex)
            {
                _functions.Log(ex, HttpContext.Current.User.Identity.Name, SourcePageName);
                Session["lastpage"]     = "editComponent.aspx?id=" + ComponentId.ToString();
                Session["error"]        = ex.Message;
                Session["error_report"] = ex.ToString();
                Response.Redirect("error.aspx", false);
            }
            finally
            {
                if (comp != null)
                {
                    comp.Dispose();
                }
            }
        }