using System; using System.Collections.Generic; using System.Text; namespace RoadFlow.Platform { public class UsersApp { private RoadFlow.Data.Interface.IUsersApp dataUsersApp; public UsersApp() { this.dataUsersApp = Data.Factory.Factory.GetUsersApp(); } /// /// 新增 /// public int Add(RoadFlow.Data.Model.UsersApp model) { return dataUsersApp.Add(model); } /// /// 更新 /// public int Update(RoadFlow.Data.Model.UsersApp model) { return dataUsersApp.Update(model); } /// /// 查询所有记录 /// public List GetAll() { return dataUsersApp.GetAll(); } /// /// 查询单条记录 /// public RoadFlow.Data.Model.UsersApp Get(Guid id) { return dataUsersApp.Get(id); } /// /// 删除 /// public int Delete(string id) { return dataUsersApp.Delete(id); } /// /// 查询记录条数 /// public long GetCount() { return dataUsersApp.GetCount(); } /// /// 查询所有记录 /// /// 是否使用缓存 /// public System.Data.DataTable GetAllDataTable(bool fromCache = true) { string cacheKey = RoadFlow.Utility.Keys.CacheKeys.UsersApp.ToString(); if (fromCache) { object obj = RoadFlow.Cache.IO.Opation.Get(cacheKey); if (obj == null || !(obj is System.Data.DataTable)) { var dt = dataUsersApp.GetAllDataTable(); RoadFlow.Cache.IO.Opation.Insert(cacheKey, dt); return dt; } else { return (obj as System.Data.DataTable); } } else { return dataUsersApp.GetAllDataTable(); } } /// /// 清除缓存 /// public void ClearCache() { string cacheKey = RoadFlow.Utility.Keys.CacheKeys.UsersApp.ToString(); RoadFlow.Cache.IO.Opation.Remove(cacheKey); } /// /// 查询个人应用 /// /// /// public System.Data.DataRow[] GetUserDataRows(string userID) { return GetAllDataTable().Select("UserID='" + userID.ToString() + "'"); } /// /// 更新排序 /// public int UpdateSort(Guid id, int sort) { return dataUsersApp.UpdateSort(id, sort); } /// /// 将个人应用加入列表 /// /// /// 上级ID /// public void AppendUserApps(string userID, Guid parentID, List appList) { var userApps = GetUserDataRows(userID); foreach (var userApp in userApps) { if (userApp["ParentID"].ToString().ToGuid() == parentID) { RoadFlow.Data.Model.RoleApp app = new RoadFlow.Data.Model.RoleApp(); app.ID = userApp["ID"].ToString().ToGuid(); app.AppID = userApp["AppID"].ToString().ToGuid(); app.Ico = userApp["Ico"].ToString(); app.Params = userApp["Params"].ToString(); app.ParentID = userApp["ParentID"].ToString().ToGuid(); app.RoleID = userApp["RoleID"].ToString().ToGuid(); app.Sort = userApp["Sort"].ToString().ToInt(); app.Title = userApp["Title"].ToString(); app.Type = 1; appList.Add(app); } } } /// /// 将个人应用加入表(Table) /// /// /// public void AppendUserApps(string userID, System.Data.DataTable appDt) { var userApps = GetUserDataRows(userID); foreach (var userApp in userApps) { if (appDt.Select("ID='" + userApp["ID"].ToString() + "'").Length == 0) { System.Data.DataRow dr = appDt.NewRow(); dr["ID"] = userApp["ID"]; dr["ParentID"] = userApp["ParentID"]; dr["RoleID"] = userApp["RoleID"]; dr["AppID"] = userApp["AppID"]; dr["Title"] = userApp["Title"]; dr["Params"] = userApp["Params"]; dr["Sort"] = userApp["Sort"]; dr["Ico"] = userApp["Ico"]; dr["Type"] = 1; dr["Address"] = userApp["Address"]; dr["OpenMode"] = userApp["OpenMode"]; dr["Width"] = userApp["Width"]; dr["Height"] = userApp["Height"]; dr["Params1"] = userApp["Params1"]; dr["Manager"] = userApp["Manager"]; appDt.Rows.Add(dr); } } } /// /// 是否有下级 /// /// /// public bool HasChild(Guid id) { return GetAllDataTable().Select("ParentID='" + id.ToString() + "'").Length > 0; } /// /// 查询下级记录 /// public List GetChilds(string id) { return dataUsersApp.GetChild(id); } /// /// 查询所有下级记录 /// /// /// public List GetAllChilds(string id) { List list = new List(); addChilds(id, list); return list; } private void addChilds(string id, List list) { var childs = GetChilds(id); foreach (var child in childs) { list.Add(child); addChilds(child.ID, list); } } /// /// 删除一个记录和所有下级记录 /// /// /// public int DeleteAndAllChilds(string id) { int i = 0; var childs = GetAllChilds(id); using (System.Transactions.TransactionScope scope = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Suppress)) { foreach (var child in childs) { i += Delete(child.ID); } i += Delete(id); scope.Complete(); } return i; } /// /// 删除一个用户记录 /// public int DeleteByUserID(Guid userID) { return dataUsersApp.DeleteByUserID(userID); } } }