static void EntityType_BeforeDel(Xy.Data.Procedure procedure, Xy.Data.DataBase DB) { short inID = Convert.ToInt16(procedure.GetItem("ID")); EntityType _type = GetInstance(inID); System.Data.DataTable _childTypies = GetChildType(inID); foreach (System.Data.DataRow _childTypeRow in _childTypies.Rows) { EntityType _childType = new EntityType(); _childType.Fill(_childTypeRow); Del(_childType.ID); } StringBuilder _dropTableProcedure = new StringBuilder(); foreach (System.Data.DataRow _multiAttrsRow in EntityAttribute.GetByTypeID(inID).Rows) { EntityAttribute _attr = new EntityAttribute(); _attr.Fill(_multiAttrsRow); if (_attr.IsMultiple) { _dropTableProcedure.AppendLine(string.Format(_commandPartern_Del, "Entity_" + _type.Key + "_" + _attr.Key)); } } _dropTableProcedure.AppendLine(string.Format(_commandPartern_Del, "Entity_" + _type.Key)); Xy.Data.Procedure _deleteRelativeTable = new Xy.Data.Procedure("DeleteRelativeTable", _dropTableProcedure.ToString()); Xy.Data.Procedure _deleteRelativeEntityBase = new Xy.Data.Procedure("DeleteRelativeEntityBase", "Delete from [EntityBase] where [TypeID] = @ID", new Xy.Data.ProcedureParameter[] { new Xy.Data.ProcedureParameter("ID", System.Data.DbType.Int64) }); _deleteRelativeEntityBase.SetItem("ID", inID); _deleteRelativeTable.InvokeProcedure(DB); _deleteRelativeEntityBase.InvokeProcedure(DB); }
static void EntityType_AfterAdd(Xy.Data.ProcedureResult result, Xy.Data.Procedure procedure, Xy.Data.DataBase DB) { string _tableName = Convert.ToString(procedure.GetItem("Key")); short _parentTypeID = Convert.ToInt16(procedure.GetItem("ParentTypeID")); if (string.IsNullOrEmpty(_tableName)) throw new Exception("Empty type name"); StringBuilder _addTableProcedure = new StringBuilder(); _addTableProcedure.AppendLine(string.Format(_commandPartern_Add, "Entity_" + _tableName)); Xy.Data.Procedure _addBaseTable = new Xy.Data.Procedure("AddBaseTable", _addTableProcedure.ToString()); _addBaseTable.InvokeProcedure(DB); }
public void GetReturnParameter(Xy.Data.Procedure Procedure) { foreach (Xy.Data.ProcedureParameter _item in Procedure) { if (_item.Direction != System.Data.ParameterDirection.Input) { this[_item.Name].UpdateReturnValue(_item.Value.ToString()); } } }
static void EntityType_AfterEditWebRelated(Xy.Data.ProcedureResult result, Xy.Data.Procedure procedure, Xy.Data.DataBase DB) { short _ID = Convert.ToInt16(procedure.GetItem("ID")); bool _isRelated = Convert.ToBoolean(procedure.GetItem("IsWebRelated")); EntityTypeCacheItem _cache = EntityTypeCache.GetInstance(_ID, DB); Xy.Data.Procedure _webRelatedProcedure; if (_isRelated) { _webRelatedProcedure = new Xy.Data.Procedure("AddWebRelated", string.Format(_commandPartern_AddWebRelated, "Entity_" + _cache.TypeInstance.Key)); } else { _webRelatedProcedure = new Xy.Data.Procedure("DelWebRelated", string.Format(_commandPartern_DelWebRelated, "Entity_" + _cache.TypeInstance.Key)); } _webRelatedProcedure.InvokeProcedure(DB); }
protected static void RegisterProcedures() { Xy.Data.Procedure Add = new Xy.Data.Procedure(R("Add")); Add.AddItem("Name", System.Data.DbType.String); Add.AddItem("Version", System.Data.DbType.String); Add.AddItem("Depend", System.Data.DbType.String); Add.AddItem("SQL", System.Data.DbType.String); Add.AddItem("Code", System.Data.DbType.String); Add.AddItem("Message", System.Data.DbType.String); AddProcedure(Add); Xy.Data.Procedure GetAll = new Xy.Data.Procedure(R("GetAll")); AddProcedure(GetAll); }
public void FillParameter(Xy.Data.Procedure Procedure) { foreach (DataParameter _item in this.Values) { Xy.Data.ProcedureParameter _param = new Xy.Data.ProcedureParameter(_item.Name, _item.Type, _item.Validate, _item.Value); if (_item.Direction != System.Data.ParameterDirection.Input) { _param.Direction = _item.Direction; if (!_hasReturn) { _hasReturn = true; } } Procedure.AddItem(_param); } }
public override void ValidateUrl() { if (!string.IsNullOrEmpty(Request.GroupString["type"])) { long resultID = 0; switch (Request.GroupString["type"]) { case "add": if (!Xy.Tools.Web.Form.ValidateForm(Request.Form)) throw new Exception(WebSetting.Translate["error-empty"]); resultID = XiaoYang.User.PowerList.Add(Request.Form); Response.Write(string.Format("{{ status:'success', id:{0} }}", resultID)); break; case "del": XiaoYang.User.PowerList.Del(Request.QueryString); Response.Write(string.Format("{{ status:'success', id:{0} }}", Request.QueryString["ID"])); break; case "addgroup": if (!Xy.Tools.Web.Form.ValidateForm(Request.Form)) throw new Exception(WebSetting.Translate["error-empty"]); resultID = XiaoYang.User.UserGroup.Add(Request.Form); Response.Write(string.Format("{{ status:'success', id:{0} }}", resultID)); break; case "delgroup": XiaoYang.User.UserGroup.Del(Request.QueryString); Response.Write(string.Format("{{ status:'success', id:{0} }}", Request.QueryString["ID"])); break; case "getpowerbygroup": Response.Write("["); Xy.Data.Procedure _pc = new Xy.Data.Procedure("getPowerList", @"select [PowerList].* from [PowerShip] left join [PowerList] on [PowerList].[ID] = [PowerShip].[PowerList] where [PowerShip].[UserGroup] = " + Request.QueryString["ID"]); System.Data.DataTable _dt = _pc.InvokeProcedureFill(); for (int i = 0; i < _dt.Rows.Count; i++) { System.Data.DataRow _dr = _dt.Rows[i]; if (i > 0) Response.Write(','); Response.Write(string.Format("{{id:\"{0}\",key:\"{1}\",description:\"{2}\"}}", _dr["ID"].ToString(), _dr["Key"].ToString(), _dr["Description"].ToString())); } Response.Write("]"); break; case "addship": if (!Xy.Tools.Web.Form.ValidateForm(Request.Form)) throw new Exception(WebSetting.Translate["error-empty"]); resultID = XiaoYang.User.PowerShip.Add(Request.Form); Response.Write(string.Format("{{ status:'success', id:{0} }}", resultID)); break; case "delship": XiaoYang.User.PowerShip.Del(Request.Form); Response.Write(string.Format("{{ status:'success', id:{0} }}", Request.Form["PowerList"])); break; } if (string.Compare(Request.GroupString["type"], "getpowerbygroup") != 0) XiaoYang.User.UserPermissionCollection.ClearCache(); } }
protected static void RegisterProcedures() { Xy.Data.Procedure Add = new Xy.Data.Procedure(R("Add")); Add.AddItem("PowerList", System.Data.DbType.Int32); Add.AddItem("UserGroup", System.Data.DbType.Int32); AddProcedure(Add); Xy.Data.Procedure Del = new Xy.Data.Procedure(R("Del")); Del.AddItem("PowerList", System.Data.DbType.Int32); Del.AddItem("UserGroup", System.Data.DbType.Int32); AddProcedure(Del); Xy.Data.Procedure DelByGroup = new Xy.Data.Procedure(R("DelByGroup")); DelByGroup.AddItem("UserGroup", System.Data.DbType.Int32); AddProcedure(DelByGroup); Xy.Data.Procedure GetAll = new Xy.Data.Procedure(R("GetAll")); AddProcedure(GetAll); }
protected static void RegisterProcedures() { Xy.Data.Procedure Add = new Xy.Data.Procedure(R("Add")); Add.AddItem("Name", System.Data.DbType.String); Add.AddItem("Key", System.Data.DbType.String); AddProcedure(Add); Xy.Data.Procedure Del = new Xy.Data.Procedure(R("Del")); Del.AddItem("ID", System.Data.DbType.Int32); AddProcedure(Del); Xy.Data.Procedure Get = new Xy.Data.Procedure(R("Get")); Get.AddItem("ID", System.Data.DbType.Int32); AddProcedure(Get); Xy.Data.Procedure GetAll = new Xy.Data.Procedure(R("GetAll")); AddProcedure(GetAll); }
protected static void RegisterProcedures() { Xy.Data.Procedure Add = new Xy.Data.Procedure(R("Add")); Add.AddItem("Name", System.Data.DbType.String); Add.AddItem("Resource", System.Data.DbType.String); Add.AddItem("Template", System.Data.DbType.String); AddProcedure(Add); Xy.Data.Procedure Del = new Xy.Data.Procedure(R("Del")); Del.AddItem("ID", System.Data.DbType.Int64); AddProcedure(Del); Xy.Data.Procedure Edit = new Xy.Data.Procedure(R("Edit")); Edit.AddItem("ID", System.Data.DbType.Int64); Edit.AddItem("Name", System.Data.DbType.String); Edit.AddItem("Resource", System.Data.DbType.String); Edit.AddItem("Template", System.Data.DbType.String); AddProcedure(Edit); Xy.Data.Procedure Get = new Xy.Data.Procedure(R("Get")); Get.AddItem("ID", System.Data.DbType.Int64); AddProcedure(Get); }
protected static void RegisterProcedures() { Xy.Data.Procedure Add = new Xy.Data.Procedure(R("Add")); Add.AddItem("TypeID", System.Data.DbType.Int16); Add.AddItem("IsActive", System.Data.DbType.Boolean); AddProcedure(Add); Xy.Data.Procedure EditActive = new Xy.Data.Procedure(R("EditActive")); EditActive.AddItem("ID", System.Data.DbType.Int64); EditActive.AddItem("IsActive", System.Data.DbType.Boolean); AddProcedure(EditActive); Xy.Data.Procedure Get = new Xy.Data.Procedure(R("Get")); Get.AddItem("ID", System.Data.DbType.Int64); AddProcedure(Get); Xy.Data.Procedure GetList = new Xy.Data.Procedure(R("GetList")); GetList.AddItem("PageIndex", System.Data.DbType.Int32); GetList.AddItem("PageSize", System.Data.DbType.Int32); GetList.AddItem("TypeID", System.Data.DbType.Int16); GetList.AddItem("OutWhere", System.Data.DbType.String); GetList.AddItem("TotalCount", System.Data.DbType.Int32, System.Data.ParameterDirection.Output); AddProcedure(GetList); }
public int Edit(System.Collections.Specialized.NameValueCollection inValues, params long[] inEntityID) { if (inEntityID.Length == 0) throw new Exception("Entity ID not found"); StringBuilder _command = new StringBuilder(); bool _ifCode = false; foreach (long _currentID in inEntityID) { EntityBase _base = EntityBase.GetInstance(_currentID); _ifCode = false; foreach (string _valueKeys in inValues.AllKeys) { string _valueName = _valueKeys, _valueID = string.Empty; if (_attrTest.IsMatch(_valueKeys)) { System.Text.RegularExpressions.Match _result = _attrTest.Match(_valueKeys); _valueName = _result.Groups["name"].Value; _valueID = _result.Groups["id"].Value; } foreach (XiaoYang.Entity.EntityAttribute _attr in _cache.Attributes) { if (string.Compare(_attr.Key, _valueName) == 0) { if (_attr.ID == -1) { continue; } if (!_ifCode) { _command.AppendLine(string.Format("if exists(select [ID] from [EntityBase] where {1} [ID] = {0})", _currentID, _applyToChild ? string.Empty : _childQueryWhere)); _command.AppendLine("begin"); _ifCode = true; } if (_attr.IsMultiple) { if (_applyToChild) { _command.AppendLine(string.Format("if exists(select [ID] from [EntityBase] where {1} [ID] = {0})", _currentID, _childQueryWhere)); _command.AppendLine("begin"); } if (!string.IsNullOrEmpty(_valueID)) { _command.AppendLine(string.Format("Update [{0}] set [{1}] = '{2}' where [ID] = {3}", _attr.Table, _attr.Key, inValues[_valueKeys], _valueID)); } else { _command.AppendLine(string.Format("Delete from [{0}] where [EntityID] = {1}", _attr.Table, _currentID)); foreach (string mulAttrValue in inValues[_valueKeys].Split(_attr.Split[0])) { _command.AppendLine(string.Format("Insert [{0}]([EntityID],[{1}])values({2},'{3}')", _attr.Table, _attr.Key, _currentID, mulAttrValue)); } } if (_applyToChild) _command.AppendLine("end"); } else { _command.AppendLine(string.Format("Update [{0}] set [{1}] = '{2}' where [EntityID] = {3}", _attr.Table, _attr.Key, inValues[_valueKeys], _currentID)); } } } } if (inValues["IsActive"] != null) _base.IsActive = Convert.ToBoolean(inValues["IsActive"]); _command.AppendLine(string.Format("Update [EntityBase] set [IsActive] = '{0}' where [ID] = {1}", _base.IsActive, _currentID)); _command.AppendLine(string.Format("Update [EntityBase] set [UpdateTime] = GetDate() where [ID] = {0}", _currentID)); if (_ifCode) _command.AppendLine("end"); } if (_command.Length > 0) { Xy.Data.Procedure _procedure = new Xy.Data.Procedure("EditEntity" + _cache.TypeInstance.Key, _command.ToString()); return _procedure.InvokeProcedure(_db); } return 0; }
protected static void RegisterProcedures() { Xy.Data.Procedure Add = new Xy.Data.Procedure(R("Add")); Add.AddItem("TypeID", System.Data.DbType.Int16); Add.AddItem("Name", System.Data.DbType.String); Add.AddItem("Key", System.Data.DbType.String); Add.AddItem("Type", System.Data.DbType.String); Add.AddItem("IsNull", System.Data.DbType.Boolean); Add.AddItem("IsMultiple", System.Data.DbType.Boolean); Add.AddItem("Split", System.Data.DbType.String); Add.AddItem("Description", System.Data.DbType.String); Add.AddItem("Default", System.Data.DbType.String); Add.AddItem("Display", System.Data.DbType.Int64); AddProcedure(Add); Xy.Data.Procedure Del = new Xy.Data.Procedure(R("Del")); Del.AddItem("ID", System.Data.DbType.Int64); AddProcedure(Del); Xy.Data.Procedure Edit = new Xy.Data.Procedure(R("Edit")); Edit.AddItem("ID", System.Data.DbType.Int64); Edit.AddItem("Name", System.Data.DbType.String); Edit.AddItem("Key", System.Data.DbType.String); Edit.AddItem("Type", System.Data.DbType.String); Edit.AddItem("IsNull", System.Data.DbType.Boolean); Edit.AddItem("IsMultiple", System.Data.DbType.Boolean); Edit.AddItem("Split", System.Data.DbType.String); Edit.AddItem("Description", System.Data.DbType.String); Edit.AddItem("Default", System.Data.DbType.String); Edit.AddItem("Display", System.Data.DbType.Int64); AddProcedure(Edit); Xy.Data.Procedure Get = new Xy.Data.Procedure(R("Get")); Get.AddItem("ID", System.Data.DbType.Int64); AddProcedure(Get); Xy.Data.Procedure GetByTypeID = new Xy.Data.Procedure(R("GetByTypeID")); GetByTypeID.AddItem("TypeID", System.Data.DbType.Int16); AddProcedure(GetByTypeID); }
public long Add(System.Collections.Specialized.NameValueCollection inValues) { bool _isActive = false; if (inValues["IsActive"] != null && Convert.ToBoolean(inValues["IsActive"])) _isActive = true; StringBuilder _command = new StringBuilder(); StringBuilder _field, _value, _commandFormMultiplyAttribute; bool _hasSimpleField; foreach (string _table in _cache.RelatedTables) { _hasSimpleField = false; _commandFormMultiplyAttribute = new StringBuilder(); _field = new StringBuilder(); _field.Append("[EntityID]"); _value = new StringBuilder(); _value.Append("@EntityID"); foreach (EntityAttribute _attr in _cache.Attributes) { if (_attr.ID == -1) continue; if (string.Compare(_attr.Table, _table) == 0) { string _tempValue = inValues[_attr.Key]; if (string.IsNullOrEmpty(_tempValue)) { if (!string.IsNullOrEmpty(_attr.Default)) { _tempValue = _attr.Default; } else if (!_attr.IsNull) { throw new Exception(string.Format("can not put Null on the field '{0}'", _attr.Key)); } else { continue; } } if (_attr.IsMultiple) { foreach (string mulAttrValue in inValues[_attr.Key].Split(_attr.Split[0])) { _commandFormMultiplyAttribute.AppendLine(string.Format("Insert [{0}]([EntityID],[{1}])values(@EntityID,'{2}')", _attr.Table, _attr.Key, mulAttrValue)); } } else { _hasSimpleField = true; _field.AppendFormat(",[{0}]", _attr.Key); _value.AppendFormat(",'{0}'", _tempValue); } } } if (_hasSimpleField) { _command.AppendLine(string.Format("Insert into [{0}](", _table)); _command.AppendLine(_field.ToString()); _command.AppendLine(")values("); _command.AppendLine(_value.ToString()); _command.AppendLine(")"); } _command.Append(_commandFormMultiplyAttribute.ToString()); } if (_command.Length > 0) { Xy.Data.Procedure _procedure = new Xy.Data.Procedure("AddEntity" + _cache.TypeInstance.Key, _command.ToString()); _procedure.AddItem("EntityID", System.Data.DbType.Int64); _db.Open(); _db.StartTransaction(); try { long _entityID = EntityBase.Add(_cache.TypeInstance.ID, _isActive, _db); _procedure.SetItem("EntityID", _entityID); _procedure.InvokeProcedure(_db); _db.CommitTransaction(); return _entityID; } catch { _db.RollbackTransation(); throw; } finally { _db.Close(); } } return 0; }
public EntityCollection GetList(string where, int pageIndex,int pageSize, string order, ref int totalRowCount) { Xy.Data.Procedure _getList = new Xy.Data.Procedure("Entity_SplitPage", new Xy.Data.ProcedureParameter[] { new Xy.Data.ProcedureParameter("Select", System.Data.DbType.String), new Xy.Data.ProcedureParameter("TableName", System.Data.DbType.String), new Xy.Data.ProcedureParameter("Where", System.Data.DbType.String), new Xy.Data.ProcedureParameter("PageIndex", System.Data.DbType.Int32), new Xy.Data.ProcedureParameter("PageSize", System.Data.DbType.Int32), new Xy.Data.ProcedureParameter("Order", System.Data.DbType.String), new Xy.Data.ProcedureParameter("OrderBy", System.Data.DbType.String), new Xy.Data.ProcedureParameter("TotalRowCount", System.Data.DbType.Int32){ Direction = System.Data.ParameterDirection.InputOutput} }); _getList.SetItem("Select", _cache.CacheString_Select_Field); _getList.SetItem("TableName", _cache.CacheString_Select_Table); _getList.SetItem("Where", "[TypeID] = " + _cache.TypeInstance.ID + (string.IsNullOrEmpty(where) ? string.Empty : " and " + where)); _getList.SetItem("PageIndex", pageIndex); _getList.SetItem("PageSize", pageSize); _getList.SetItem("Order", "[EntityBase].[ID] desc"); _getList.SetItem("OrderBy", string.IsNullOrEmpty(order) ? "[ID] desc" : order); _getList.SetItem("TotalRowCount", totalRowCount); System.Data.DataTable _dt = _getList.InvokeProcedureFill(); totalRowCount = Convert.ToInt32(_getList.GetItem("TotalRowCount")); EntityCollection _ec = new EntityCollection(_dt, _cache.TypeInstance.ID); return _ec; }
public override void Validate() { if (!string.IsNullOrEmpty(Request.GroupString["type"])) { switch (Request.GroupString["type"]) { case "start": if (!hasUpdate()) { throw new Exception("There is no update file."); } if (updateStarted()) { throw new Exception("There is a update started already."); } writeUpdateProcess("Loading..."); XiaoYang.Installation.InstallationCollection _installCollection = new Installation.InstallationCollection(); _installCollection.LoadInstalled(); System.Xml.XmlDocument _updateDom = new System.Xml.XmlDocument(); _updateDom.Load(updateFilePath); foreach (System.Xml.XmlNode _item in _updateDom.SelectNodes("Install/Item")) { XiaoYang.Installation.Installation _install = new Installation.Installation(); _install.Name = _item.SelectSingleNode("Label").InnerText; _install.Version = _item.SelectSingleNode("Version").InnerText; _install.Depend = _item.SelectSingleNode("Depend") == null ? string.Empty : _item.SelectSingleNode("Depend").InnerText; _install.SQL = _item.SelectSingleNode("SQL") == null ? string.Empty : _item.SelectSingleNode("SQL").InnerText; _install.Code = _item.SelectSingleNode("Code") == null ? string.Empty : _item.SelectSingleNode("Code").InnerText; if (!string.IsNullOrEmpty(_install.Code)) { _install.CodeLanguage = _item.SelectSingleNode("Code").Attributes["Language"] == null ? "CSharp" : _item.SelectSingleNode("Code").Attributes["Language"].Value; } _install.Message = _item.SelectSingleNode("Message") == null ? "No message" : _item.SelectSingleNode("Message").InnerText; _installCollection.Add(_install); } _installCollection.Arrange(true); writeUpdateProcess("Install list:"); for (int i = 0; i < _installCollection.Count; i++) { writeUpdateProcess(string.Format("\t{0}({1}):", _installCollection[i].Name, _installCollection[i].Version)); writeUpdateProcess(string.Format("\t\t{0}", _installCollection[i].Message)); } writeUpdateProcess("Preparing..."); for (int i = 0; i < _installCollection.Count; i++) { XiaoYang.Installation.Installation _updateItem = _installCollection[i]; if (!string.IsNullOrEmpty(_updateItem.Code)) { _updateItem.GeneratedAssembly = buildAssembly(_updateItem.CodeLanguage, _updateItem.Code, _updateItem.Depend); } } writeUpdateProcess("Updating..."); Xy.Data.DataBase DB = new Xy.Data.DataBase("Update"); for (int i = 0; i < _installCollection.Count; i++) { DB.Open(); DB.StartTransaction(); XiaoYang.Installation.Installation _updateItem = _installCollection[i]; try { if (!string.IsNullOrEmpty(_updateItem.SQL)) { Xy.Data.Procedure _updateSQL = new Xy.Data.Procedure("UpdateSQL", _updateItem.SQL); _updateSQL.InvokeProcedure(DB); } if (!string.IsNullOrEmpty(_updateItem.Code)) { XiaoYang.Installation.IInstallItem _installItem = (XiaoYang.Installation.IInstallItem)_updateItem.GeneratedAssembly.CreateInstance("XyUpdate.XyUpdate"); _installItem.Update(DB); } XiaoYang.Installation.Installation.Add(_updateItem, DB); DB.CommitTransaction(); writeUpdateProcess(string.Format("{0}({1}) is updated",_updateItem.Name,_updateItem.Version)); } catch { DB.RollbackTransation(); throw; } finally { DB.Close(); } } System.IO.File.Delete(updateFilePath); writeUpdateProcess("All Updated!"); Response.Write("{status:'success'}"); break; case "check": Response.Write("{status:'" + (System.IO.File.Exists(updateFilePath) ? (System.IO.File.Exists(logFilePath) ? "processing" : "success" ) : "failure") + "'}"); break; case "process": if (!System.IO.File.Exists(logFilePath)) break; System.IO.FileStream _updateLog = System.IO.File.Open(logFilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Write); System.IO.StreamReader _sr = new System.IO.StreamReader(_updateLog); Response.Write(_sr.ReadToEnd()); _sr.Close(); _updateLog.Close(); if (!System.IO.File.Exists(updateFilePath) && System.IO.File.Exists(logFilePath)) { System.IO.File.Delete(logFilePath); } break; case "test": try { System.Web.HttpRuntime.UnloadAppDomain(); //Response.Write(Xy.Tools.LogTools.DumpObjectTableHTML(System.Web.HttpContext.Current.ApplicationInstance), true, true); //System.DirectoryServices.DirectoryEntry de = new System.DirectoryServices.DirectoryEntry(AppDomain.CurrentDomain.BaseDirectory); //Response.Write(de.Name, true, true); //Response.Write(de.ToString(), true, true); } catch (Exception ex) { Response.Write(ex.Message.ToString()); } break; } } }
protected static void RegisterProcedures() { Xy.Data.Procedure Add = new Xy.Data.Procedure(R("Add")); Add.AddItem("UserID", System.Data.DbType.Int64); Add.AddItem("HeadImage", System.Data.DbType.String); Add.AddItem("Sex", System.Data.DbType.Int16); Add.AddItem("Birthday", System.Data.DbType.DateTime); Add.AddItem("Hometown", System.Data.DbType.String); Add.AddItem("Description", System.Data.DbType.String); Add.AddItem("Job", System.Data.DbType.String); Add.AddItem("Weibo", System.Data.DbType.String); Add.AddItem("QQ", System.Data.DbType.String); AddProcedure(Add); Xy.Data.Procedure Del = new Xy.Data.Procedure(R("Del")); Del.AddItem("UserID", System.Data.DbType.Int64); AddProcedure(Del); Xy.Data.Procedure Edit = new Xy.Data.Procedure(R("Edit")); Edit.AddItem("UserID", System.Data.DbType.Int64); Edit.AddItem("HeadImage", System.Data.DbType.String); Edit.AddItem("Sex", System.Data.DbType.Int16); Edit.AddItem("Birthday", System.Data.DbType.DateTime); Edit.AddItem("Hometown", System.Data.DbType.String); Edit.AddItem("Description", System.Data.DbType.String); Edit.AddItem("Job", System.Data.DbType.String); Edit.AddItem("Weibo", System.Data.DbType.String); Edit.AddItem("QQ", System.Data.DbType.String); AddProcedure(Edit); Xy.Data.Procedure Get = new Xy.Data.Procedure(R("Get")); Get.AddItem("UserID", System.Data.DbType.Int64); AddProcedure(Get); }
static void EntityAttribute_BeforeEdit(Xy.Data.Procedure procedure, Xy.Data.DataBase DB) { EntityAttribute _oldAttr = EntityAttribute.GetInstance(Convert.ToInt64(procedure.GetItem("ID"))); bool _isMultiple = Convert.ToBoolean(procedure.GetItem("IsMultiple")); if (_oldAttr.IsMultiple != _isMultiple) throw new Exception("can not switch attribute multiple mode"); StringBuilder _editAttrCommand = new StringBuilder(); string _default = Convert.ToString(procedure.GetItem("Default")); if (!string.IsNullOrEmpty(_oldAttr.Default) && string.IsNullOrEmpty(_default)) { _editAttrCommand.AppendLine(string.Format(_commandPartern_DelConstraintDefault, _oldAttr.Table, _oldAttr.Key)); } if (!string.IsNullOrEmpty(_default)) { _editAttrCommand.AppendLine(string.Format(_commandPartern_UpdateDefault, _oldAttr.Table, _oldAttr.Key, _default)); _editAttrCommand.AppendLine(string.Format(_commandPartern_AddConstraintDefault, _oldAttr.Table, _oldAttr.Key, _default)); } string _editAttrDBType = GetTypeName(Convert.ToString(procedure.GetItem("Type"))); if (!Convert.ToBoolean(procedure.GetItem("IsNull"))) { _editAttrDBType += " NOT NULL"; } _editAttrCommand.AppendLine(string.Format(_commandPartern_EditAttribute, _oldAttr.Table, _oldAttr.Key, _editAttrDBType)); string _key = Convert.ToString(procedure.GetItem("Key")); if (string.Compare(_key, _oldAttr.Key) != 0) { _editAttrCommand.AppendLine(string.Format(_commandPartern_EditAttributeName, _oldAttr.Table, _oldAttr.Key, _key)); } Xy.Data.Procedure _editAttrColumn = new Xy.Data.Procedure("EditAttribute", _editAttrCommand.ToString()); _editAttrColumn.InvokeProcedure(); }
static void EntityAttribute_BeforeDel(Xy.Data.Procedure procedure, Xy.Data.DataBase DB) { long _attrID = Convert.ToInt64(procedure.GetItem("ID")); EntityAttribute _attr = GetInstance(_attrID); StringBuilder _delAttrCommand = new StringBuilder(); if (_attr.IsMultiple) { _delAttrCommand.AppendLine(string.Format(_commandPartern_DelAttributeTable, _attr.Table)); } else { _delAttrCommand.AppendLine(string.Format(_commandPartern_DelAttributeColumn, _attr.Table, _attr.Key)); } if (!string.IsNullOrEmpty(_attr.Default)) { _delAttrCommand.AppendLine(string.Format(_commandPartern_DelConstraintDefault, _attr.Table, _attr.Key)); } Xy.Data.Procedure _delAttrColumn = new Xy.Data.Procedure("DelAttribute", _delAttrCommand.ToString()); _delAttrColumn.InvokeProcedure(); }
private static void EntityAttribute_BeforeAdd(Xy.Data.Procedure produce, Xy.Data.DataBase DB) { string _attrName = Convert.ToString(produce.GetItem("Key")); EntityType _type = EntityType.GetInstance(Convert.ToInt16(produce.GetItem("TypeID"))); System.Data.DataTable _attrs = GetByTypeID(_type.ID); foreach (System.Data.DataRow _attr in _attrs.Rows) { if (string.Compare(_attr["Name"].ToString(), _attrName, true) == 0) throw new Exception(string.Format("\"{0}\" already existed", _attrName)); } string _addAttrCommand; if (Convert.ToBoolean(produce.GetItem("IsMultiple"))) { _addAttrCommand = _commandPartern_AddMultipleAttribute; } else { _addAttrCommand = _commandPartern_AddSimpleAttribute; } string _addAttrDBType = GetTypeName(Convert.ToString(produce.GetItem("Type"))); if (!Convert.ToBoolean(produce.GetItem("IsNull"))) { _addAttrDBType += " NOT NULL"; } _addAttrCommand = string.Format(_addAttrCommand, "Entity_" + _type.Key, _attrName, _addAttrDBType); Xy.Data.Procedure _addAttrColumn = new Xy.Data.Procedure("AddAttribute", _addAttrCommand); _addAttrColumn.InvokeProcedure(DB); }
protected static void RegisterProcedures() { Xy.Data.Procedure Add = new Xy.Data.Procedure(R("Add")); Add.AddItem("Name", System.Data.DbType.String); Add.AddItem("Nickname", System.Data.DbType.String); Add.AddItem("Password", System.Data.DbType.String); Add.AddItem("Email", System.Data.DbType.String); Add.AddItem("UserGroup", System.Data.DbType.Int32); AddProcedure(Add); Xy.Data.Procedure Del = new Xy.Data.Procedure(R("Del")); Del.AddItem("ID", System.Data.DbType.Int64); AddProcedure(Del); Xy.Data.Procedure EditNickname = new Xy.Data.Procedure(R("EditNickname")); EditNickname.AddItem("ID", System.Data.DbType.Int64); EditNickname.AddItem("Nickname", System.Data.DbType.String); AddProcedure(EditNickname); Xy.Data.Procedure EditPassword = new Xy.Data.Procedure(R("EditPassword")); EditPassword.AddItem("ID", System.Data.DbType.Int64); EditPassword.AddItem("Password", System.Data.DbType.String); AddProcedure(EditPassword); Xy.Data.Procedure EditUserGroup = new Xy.Data.Procedure(R("EditUserGroup")); EditUserGroup.AddItem("ID", System.Data.DbType.Int64); EditUserGroup.AddItem("UserGroup", System.Data.DbType.Int32); AddProcedure(EditUserGroup); Xy.Data.Procedure Get = new Xy.Data.Procedure(R("Get")); Get.AddItem("ID", System.Data.DbType.Int64); AddProcedure(Get); Xy.Data.Procedure GetByNickname = new Xy.Data.Procedure(R("GetByNickname")); GetByNickname.AddItem("Nickname", System.Data.DbType.String); AddProcedure(GetByNickname); Xy.Data.Procedure GetList = new Xy.Data.Procedure(R("GetList")); GetList.AddItem("PageIndex", System.Data.DbType.Int32); GetList.AddItem("PageSize", System.Data.DbType.Int32); GetList.AddItem("Nickname", System.Data.DbType.String); GetList.AddItem("Name", System.Data.DbType.String); GetList.AddItem("Email", System.Data.DbType.String); GetList.AddItem("UserGrouop", System.Data.DbType.Int32); AddProcedure(GetList); Xy.Data.Procedure Login = new Xy.Data.Procedure(R("Login")); Login.AddItem("Name", System.Data.DbType.String); Login.AddItem("Password", System.Data.DbType.String); AddProcedure(Login); }
public int Del(params long[] inEntityID) { StringBuilder _command = new StringBuilder(); _command.AppendLine("Delete From [EntityBase] Where [ID] = @ID"); foreach (string _tableName in _cache.RelatedTables) { _command.AppendLine(string.Format("Delete From [{0}] Where [ID] = @ID", _tableName)); } Xy.Data.Procedure _procedure = new Xy.Data.Procedure("DelEntity" + _cache.TypeInstance.Key, _command.ToString()); _procedure.AddItem("ID", System.Data.DbType.Int64); return _procedure.InvokeProcedure(_db); }
protected static void RegisterProcedures() { Xy.Data.Procedure Add = new Xy.Data.Procedure(R("Add")); Add.AddItem("Name", System.Data.DbType.String); Add.AddItem("Key", System.Data.DbType.String); Add.AddItem("ParentTypeID", System.Data.DbType.Int16); Add.AddItem("Description", System.Data.DbType.String); AddProcedure(Add); Xy.Data.Procedure Del = new Xy.Data.Procedure(R("Del")); Del.AddItem("ID", System.Data.DbType.Int16); AddProcedure(Del); Xy.Data.Procedure EditActive = new Xy.Data.Procedure(R("EditActive")); EditActive.AddItem("ID", System.Data.DbType.Int16); EditActive.AddItem("IsActive", System.Data.DbType.Boolean); AddProcedure(EditActive); Xy.Data.Procedure EditDisplay = new Xy.Data.Procedure(R("EditDisplay")); EditDisplay.AddItem("ID", System.Data.DbType.Int16); EditDisplay.AddItem("IsDisplay", System.Data.DbType.Boolean); AddProcedure(EditDisplay); Xy.Data.Procedure EditUpdateTime = new Xy.Data.Procedure(R("EditUpdateTime")); EditUpdateTime.AddItem("ID", System.Data.DbType.Int16); AddProcedure(EditUpdateTime); Xy.Data.Procedure EditWebRelated = new Xy.Data.Procedure(R("EditWebRelated")); EditWebRelated.AddItem("ID", System.Data.DbType.Int16); EditWebRelated.AddItem("IsWebRelated", System.Data.DbType.Boolean); AddProcedure(EditWebRelated); Xy.Data.Procedure Get = new Xy.Data.Procedure(R("Get")); Get.AddItem("ID", System.Data.DbType.Int16); AddProcedure(Get); Xy.Data.Procedure GetChildType = new Xy.Data.Procedure(R("GetChildType")); GetChildType.AddItem("ID", System.Data.DbType.Int16); AddProcedure(GetChildType); }
public System.Data.DataTable Get(params long[] inEntityID) { if (inEntityID.Length == 0) return new System.Data.DataTable(); //Xy.Data.Procedure _procedure = _cache.GetProcedure(_applyToChild, inEntityID); Xy.Data.Procedure _procedure; bool _isSingle = inEntityID.Length > 1 ? false : true; StringBuilder _command; if (_isSingle) { if (_applyToChild){ _procedure = new Xy.Data.Procedure("GetWithChild", string.Format(_cache.CacheString_Select_Command + "where {0} [EntityBase].[ID] = @ID", string.Empty), new Xy.Data.ProcedureParameter("ID", System.Data.DbType.Int64)); }else{ _procedure = new Xy.Data.Procedure("GetWithoutChild", string.Format(_cache.CacheString_Select_Command + "where {0} [EntityBase].[ID] = @ID", "[TypeID] = " + _cache.TypeInstance.ID + " and "), new Xy.Data.ProcedureParameter("ID", System.Data.DbType.Int64)); } } else { _command = new StringBuilder(_cache.CacheString_Select_Command); _command.AppendFormat("where {0} [EntityBase].[ID] in (", _applyToChild ? string.Empty : "[EntityBase].[TypeID] = " + _cache.TypeInstance.ID + " and "); for (int i = 0; i < inEntityID.Length; i++) { if (i > 0) _command.Append(','); _command.Append(inEntityID[i]); } _command.AppendLine(")"); _procedure = new Xy.Data.Procedure("GetMultiEntity", _command.ToString()); } if (inEntityID.Length == 1) _procedure.SetItem("ID", inEntityID[0]); return _procedure.InvokeProcedureFill(_db); }