示例#1
0
        public IActionResult EntityManagerAttributeSave(AttributeModel model)
        {
            DataTable dtBVs = SynapseHelpers.GetEntityBaseviewsDT(namespaceId);

            string dataType            = SynapseHelpers.GetDataTypeFromID(model.DataTypeId);
            string dataTypeDisplay     = SynapseHelpers.GetDataTypeDisplayFromID(model.DataTypeId);
            string nextOrdinalPosition = SynapseHelpers.GetNextOrdinalPositionFromID(namespaceId);
            string sql = @"SELECT entitysettings.addattributetoentity(
	                            @p_entityid, 
	                            @p_entityname, 
	                            @p_synapsenamespaceid, 
	                            @p_synapsenamespacename, 
	                            @p_username, 
	                            @p_attributename, 
	                            @p_attributedescription, 
	                            @p_datatype, 
	                            @p_datatypeid, 
	                            CAST(@p_ordinal_position AS integer),
	                            @p_attributedefault, 
	                            @p_maximumlength, 
	                            @p_commondisplayname, 
	                            @p_isnullsetting, 
	                            @p_entityversionid
                            )";

            DataTable dt = SynapseHelpers.GetEntityDSFromID(namespaceId);

            string maxLength = "";

            if (dataTypeDisplay == "Short String")
            {
                maxLength = "255";
            }
            if (dataTypeDisplay == "Long String")
            {
                maxLength = "1000";
            }

            var paramList = new List <KeyValuePair <string, string> >()
            {
                new KeyValuePair <string, string>("p_entityid", namespaceId),
                new KeyValuePair <string, string>("p_entityname", SynapseHelpers.GetEntityNameFromID(namespaceId)),
                new KeyValuePair <string, string>("p_synapsenamespaceid", dt.Rows[0]["synapsenamespaceid"].ToString()),
                new KeyValuePair <string, string>("p_synapsenamespacename", dt.Rows[0]["synapsenamespacename"].ToString()),
                new KeyValuePair <string, string>("p_username", HttpContext.Session.GetString(SynapseSession.FullName)),
                new KeyValuePair <string, string>("p_attributename", model.AttributeName),
                new KeyValuePair <string, string>("p_attributedescription", "Description"),
                new KeyValuePair <string, string>("p_datatype", dataType),
                new KeyValuePair <string, string>("p_datatypeid", model.DataTypeId),
                new KeyValuePair <string, string>("p_ordinal_position", nextOrdinalPosition),
                new KeyValuePair <string, string>("p_attributedefault", ""),
                new KeyValuePair <string, string>("p_maximumlength", maxLength),
                new KeyValuePair <string, string>("p_commondisplayname", ""),
                new KeyValuePair <string, string>("p_isnullsetting", ""),
                new KeyValuePair <string, string>("p_entityversionid", SynapseHelpers.GetCurrentEntityVersionFromID(namespaceId))
            };

            DataServices.ExcecuteNonQueryFromSQL(sql, paramList);

            foreach (DataRow row in dtBVs.Rows)
            {
                string baseview_id       = row["baseview_id"].ToString();
                string sqlRecreate       = "SELECT listsettings.recreatebaseview(@baseview_id);";
                var    paramListRecreate = new List <KeyValuePair <string, string> >()
                {
                    new KeyValuePair <string, string>("baseview_id", baseview_id)
                };
                DataServices.ExcecuteNonQueryFromSQL(sqlRecreate, paramListRecreate);
            }
            return(Json(namespaceId));
        }