//lấy tất cả các controler và action insert vào db public bool UpdateBusiess(string namespances) { try { ReflectionController re = new ReflectionController(); List <Type> listControllerType = re.GetController(namespances); //truyen vào namepaces mà bạn muốn lấy controller //chứa controller List <string> listControllerOld = db.Businesses.Select(p => p.ID).ToList(); //lấy ra danh sách tên controller trong bảng //chứa action List <string> listPermisstionOld = db.Permissions.Select(p => p.PermissionName).ToList(); //lấy ra danh sach tên trong bảng foreach (var c in listControllerType) { //gáng giá trị các controller đang được lấy của namespaces cho lớp if (!listControllerOld.Contains(c.Name)) { Business business = new Business() { ID = c.Name, Name = "Chưa có mô tả" }; //thêm vào bẳng db.Businesses.Add(business); } List <string> listPermission = re.GetActions(c);//lấy danh sách các action trong controller namespaces truyền vào foreach (var p in listPermission) { if (!listPermisstionOld.Contains(c.Name + '-' + p))//kiểm tra nếu trong db chưa có thì mới thêm vào { Permission permission = new Permission() { PermissionName = c.Name + "-" + p, Desciption = "Chưa có mô tả", BusinessID = c.Name }; db.Permissions.Add(permission); } } } db.SaveChanges(); return(true); } catch (Exception) { return(false); throw; } }
public OperationResult GetAllBusiness() { try { ReflectionController reflectionController = new ReflectionController(); List <Type> listControllerType = reflectionController.GetController("ERPSystem.Areas"); List <string> listControllerOld = unitOfWork.GrantPermissionAdmin.BusinessRepository.GetAll().Select(c => c.BusinessId).ToList(); List <string> listPermissionOld = unitOfWork.GrantPermissionAdmin.PermissionRepository.GetAll().Select(x => x.PermissionName).ToList(); foreach (var c in listControllerType) { if (!listControllerOld.Contains(c.Name)) { Business b = new Business() { BusinessId = c.Name, BusinessName = "Chưa có mô tả", ModifiedDate = DateTime.Now }; unitOfWork.GrantPermissionAdmin.BusinessRepository.Add(b); } List <string> listPermission = reflectionController.GetActions(c); foreach (var p in listPermission) { if (!listPermissionOld.Contains(c.Name + "-" + p)) { Permission permission = new Permission { PermissionName = c.Name + "-" + p, Description = "Chưa có mô tả này", BusinessId = c.Name, DateModified = DateTime.Now }; unitOfWork.GrantPermissionAdmin.PermissionRepository.Add(permission); } } } unitOfWork.Complete(); operationResult.Success = true; operationResult.Message = "Đã cập nhật thành công!"; } catch (Exception ex) { operationResult.Success = false; operationResult.Message = "Lỗi " + ex.ToString(); } return(operationResult); }
// GET: Businesses/UpdateBusiness public ActionResult UpdateBusiness() { ReflectionController rc = new ReflectionController(); List <Type> listControllerType = rc.GetController("T41.Areas.Admin.Controllers"); List <string> listControllerOld = db.Business.Select(c => c.BusinessId).ToList(); List <string> listPermissionOld = db.Permission.Select(c => c.PermissionName).ToList(); foreach (var c in listControllerType) { if (!listControllerOld.Contains(c.Name)) { Business b = new Business() { BusinessId = c.Name, BusinessName = "Chưa có mô tả" }; db.Business.Add(b); List <string> listPermission = rc.GetActions(c); foreach (var p in listPermission) { if (!listPermissionOld.Contains(c.Name + "-" + p)) { Permission permission = new Permission() { PermissionName = c.Name + "-" + p, Description = "Chưa có mô tả", BusinessId = c.Name }; db.Permission.Add(permission); } } } } db.SaveChanges(); TempData["err"] = "<div class='alert alert-info' role='alert'> <span class='glyphicon glyphicon-exclamation-sign' aria-hidden='true'></span>"; return(RedirectToAction("Index")); }