Example #1
0
        //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;
            }
        }
Example #2
0
        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"));
        }