예제 #1
0
        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);
        }
예제 #2
0
        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);
        }