public static Result CheckIgnorePermission(string userGroupdGUID) { Result result = new Result(); MMOverride db = null; try { db = new MMOverride(); UserGroup_Permission userGroup = (from g in db.UserGroup_Permissions where g.UserGroupGUID.ToString() == userGroupdGUID && Global.IgnorePermissions.Contains(g.FunctionGUID.ToString().ToUpper()) && (g.IsView == true || g.IsAdd == true || g.IsEdit == true || g.IsDelete == true || g.IsPrint == true || g.IsImport == true || g.IsExport == true || g.IsConfirm == true || g.IsLock == true || g.IsExportAll == true) select g).FirstOrDefault(); if (userGroup == null) { result.QueryResult = true; } else { result.QueryResult = false; } } catch (System.Data.SqlClient.SqlException se) { result.Error.Code = (se.Message.IndexOf("Timeout expired") >= 0) ? ErrorCode.SQL_QUERY_TIMEOUT : ErrorCode.INVALID_SQL_STATEMENT; result.Error.Description = se.ToString(); } catch (Exception e) { result.Error.Code = ErrorCode.UNKNOWN_ERROR; result.Error.Description = e.ToString(); } finally { if (db != null) { db.Dispose(); db = null; } } return(result); }
public static Result InsertUserGroup(UserGroup userGroup, DataTable dtPermission) { Result result = new Result(); MMOverride db = null; try { db = new MMOverride(); string desc = string.Empty; using (TransactionScope t = new TransactionScope(TransactionScopeOption.RequiresNew)) { //Insert if (userGroup.UserGroupGUID == null || userGroup.UserGroupGUID == Guid.Empty) { UserGroup usrgr = db.UserGroups.SingleOrDefault <UserGroup>(g => g.GroupName.ToLower() == userGroup.GroupName.ToLower()); if (usrgr == null) { userGroup.UserGroupGUID = Guid.NewGuid(); db.UserGroups.InsertOnSubmit(userGroup); db.SubmitChanges(); desc += string.Format("- GUID: '{0}', Tên nhóm người sử dụng: '{1}'\n", userGroup.UserGroupGUID.ToString(), userGroup.GroupName); } else { userGroup.UserGroupGUID = usrgr.UserGroupGUID; usrgr.GroupName = userGroup.GroupName; usrgr.UpdatedDate = userGroup.UpdatedDate; usrgr.UpdatedBy = userGroup.UpdatedBy; usrgr.Status = (byte)Status.Actived; var permissions = from p in db.UserGroup_Permissions where p.UserGroupGUID == usrgr.UserGroupGUID select p; db.UserGroup_Permissions.DeleteAllOnSubmit(permissions); db.SubmitChanges(); desc += string.Format("- GUID: '{0}', Tên nhóm người sử dụng: '{1}'\n", usrgr.UserGroupGUID.ToString(), usrgr.GroupName); } desc += string.Format("- Permission:\n"); //Permission foreach (DataRow row in dtPermission.Rows) { UserGroup_Permission p = new UserGroup_Permission(); p.UserGroup_PermissionGUID = Guid.NewGuid(); p.UserGroupGUID = userGroup.UserGroupGUID; p.FunctionGUID = Guid.Parse(row["FunctionGUID"].ToString()); p.IsView = Convert.ToBoolean(row["IsView"]); p.IsAdd = Convert.ToBoolean(row["IsAdd"]); p.IsEdit = Convert.ToBoolean(row["IsEdit"]); p.IsDelete = Convert.ToBoolean(row["IsDelete"]); p.IsPrint = Convert.ToBoolean(row["IsPrint"]); p.IsExport = Convert.ToBoolean(row["IsExport"]); p.IsImport = Convert.ToBoolean(row["IsImport"]); p.IsConfirm = Convert.ToBoolean(row["IsConfirm"]); p.IsLock = Convert.ToBoolean(row["IsLock"]); p.IsExportAll = Convert.ToBoolean(row["IsExportAll"]); p.IsCreateReport = Convert.ToBoolean(row["IsCreateReport"]); p.IsUpload = Convert.ToBoolean(row["IsUpload"]); p.IsSendSMS = Convert.ToBoolean(row["IsSendSMS"]); p.CreatedDate = DateTime.Now; p.CreatedBy = Guid.Parse(Global.UserGUID); db.UserGroup_Permissions.InsertOnSubmit(p); db.SubmitChanges(); desc += string.Format(" + {0}: Xem:{1}, Thêm:{2}, Sửa:{3}, Xóa:{4}, In:{5}, Xuất:{6}, Nhập:{7}, Duyệt:{8}, Khóa:{9}, Xuất hết:{10}, Tạo hồ sơ: {11}, Upload hồ sơ:{12}, Gửi SMS:{13}\n", p.Function.FunctionName, p.IsView, p.IsAdd, p.IsEdit, p.IsDelete, p.IsPrint, p.IsExport, p.IsImport, p.IsConfirm, p.IsLock, p.IsExportAll, p.IsCreateReport, p.IsUpload, p.IsSendSMS); } //Tracking Tracking tk = new Tracking(); tk.TrackingGUID = Guid.NewGuid(); tk.TrackingDate = DateTime.Now; tk.DocStaffGUID = Guid.Parse(Global.UserGUID); tk.ActionType = (byte)ActionType.Add; tk.Action = "Thêm thông tin nhóm người sử dụng"; tk.Description = desc; tk.TrackingType = (byte)TrackingType.None; tk.ComputerName = Utility.GetDNSHostName(); db.Trackings.InsertOnSubmit(tk); db.SubmitChanges(); } else //Update { UserGroup usrgr = db.UserGroups.SingleOrDefault <UserGroup>(g => g.UserGroupGUID == userGroup.UserGroupGUID); if (usrgr != null) { usrgr.GroupName = userGroup.GroupName; usrgr.UpdatedDate = userGroup.UpdatedDate; usrgr.UpdatedBy = userGroup.UpdatedBy; usrgr.Status = userGroup.Status; desc += string.Format("- GUID: '{0}', Tên nhóm người sử dụng: '{1}'\n", usrgr.UserGroupGUID.ToString(), usrgr.GroupName); //Permission desc += string.Format("- Permission:\n"); foreach (DataRow row in dtPermission.Rows) { UserGroup_Permission p = null; if (row["UserGroup_PermissionGUID"] != null && row["UserGroup_PermissionGUID"] != DBNull.Value) { string permissionGUID = row["UserGroup_PermissionGUID"].ToString(); p = db.UserGroup_Permissions.SingleOrDefault <UserGroup_Permission>(pp => pp.UserGroup_PermissionGUID.ToString() == permissionGUID); if (p != null) { p.IsView = Convert.ToBoolean(row["IsView"]); p.IsAdd = Convert.ToBoolean(row["IsAdd"]); p.IsEdit = Convert.ToBoolean(row["IsEdit"]); p.IsDelete = Convert.ToBoolean(row["IsDelete"]); p.IsPrint = Convert.ToBoolean(row["IsPrint"]); p.IsExport = Convert.ToBoolean(row["IsExport"]); p.IsImport = Convert.ToBoolean(row["IsImport"]); p.IsConfirm = Convert.ToBoolean(row["IsConfirm"]); p.IsLock = Convert.ToBoolean(row["IsLock"]); p.IsExportAll = Convert.ToBoolean(row["IsExportAll"]); p.IsCreateReport = Convert.ToBoolean(row["IsCreateReport"]); p.IsUpload = Convert.ToBoolean(row["IsUpload"]); p.IsSendSMS = Convert.ToBoolean(row["IsSendSMS"]); p.UpdatedDate = DateTime.Now; p.UpdatedBy = Guid.Parse(Global.UserGUID); } } else { p = new UserGroup_Permission(); p.UserGroup_PermissionGUID = Guid.NewGuid(); p.UserGroupGUID = userGroup.UserGroupGUID; p.FunctionGUID = Guid.Parse(row["FunctionGUID"].ToString()); p.IsView = Convert.ToBoolean(row["IsView"]); p.IsAdd = Convert.ToBoolean(row["IsAdd"]); p.IsEdit = Convert.ToBoolean(row["IsEdit"]); p.IsDelete = Convert.ToBoolean(row["IsDelete"]); p.IsPrint = Convert.ToBoolean(row["IsPrint"]); p.IsExport = Convert.ToBoolean(row["IsExport"]); p.IsImport = Convert.ToBoolean(row["IsImport"]); p.IsConfirm = Convert.ToBoolean(row["IsConfirm"]); p.IsLock = Convert.ToBoolean(row["IsLock"]); p.IsExportAll = Convert.ToBoolean(row["IsExportAll"]); p.IsCreateReport = Convert.ToBoolean(row["IsCreateReport"]); p.IsUpload = Convert.ToBoolean(row["IsUpload"]); p.IsSendSMS = Convert.ToBoolean(row["IsSendSMS"]); p.CreatedDate = DateTime.Now; p.CreatedBy = Guid.Parse(Global.UserGUID); db.UserGroup_Permissions.InsertOnSubmit(p); } db.SubmitChanges(); desc += string.Format(" + {0}: Xem:{1}, Thêm:{2}, Sửa:{3}, Xóa:{4}, In:{5}, Xuất:{6}, Nhập:{7}, Duyệt:{8}, Khóa:{9}, Xuất hết:{10}, Tạo hồ sơ: {11}, Upload hồ sơ:{12}, Gửi SMS:{13}\n", p.Function.FunctionName, p.IsView, p.IsAdd, p.IsEdit, p.IsDelete, p.IsPrint, p.IsExport, p.IsImport, p.IsConfirm, p.IsLock, p.IsExportAll, p.IsCreateReport, p.IsUpload, p.IsSendSMS); } //Tracking Tracking tk = new Tracking(); tk.TrackingGUID = Guid.NewGuid(); tk.TrackingDate = DateTime.Now; tk.DocStaffGUID = Guid.Parse(Global.UserGUID); tk.ActionType = (byte)ActionType.Edit; tk.Action = "Sửa thông tin nhóm người sử dụng"; tk.Description = desc; tk.TrackingType = (byte)TrackingType.None; tk.ComputerName = Utility.GetDNSHostName(); db.Trackings.InsertOnSubmit(tk); db.SubmitChanges(); } } t.Complete(); } } catch (System.Data.SqlClient.SqlException se) { result.Error.Code = (se.Message.IndexOf("Timeout expired") >= 0) ? ErrorCode.SQL_QUERY_TIMEOUT : ErrorCode.INVALID_SQL_STATEMENT; result.Error.Description = se.ToString(); } catch (Exception e) { result.Error.Code = ErrorCode.UNKNOWN_ERROR; result.Error.Description = e.ToString(); } finally { if (db != null) { db.Dispose(); db = null; } } return(result); }