Example #1
0
 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);
 }
Example #2
0
 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);
 }
Example #3
0
 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());
         }
     }
 }
Example #4
0
 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);
        }
Example #6
0
 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);
     }
 }
Example #7
0
 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();
     }
 }
Example #8
0
        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);
        }
Example #9
0
        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);
        }
Example #11
0
        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);
        }
Example #12
0
 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);
        }
Example #14
0
 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;
 }
Example #15
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;
 }
Example #16
0
        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;
                }
            }
        }
Example #17
0
        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);
        }
Example #18
0
 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();
 }
Example #19
0
 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();
 }
Example #20
0
        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);
        }
Example #21
0
        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);
        }
Example #22
0
 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);
 }
Example #23
0
        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);
        }
Example #24
0
        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);
        }