Ejemplo n.º 1
0
        private static void RoleEdited(RoleEditedEventArgs e)
        {
            var log_item = new AuditLog();

            Mapper.Map(e, log_item);
            log_item.EventTypeId = (int)AuditEventType.RoleEdited;
            log_item.OldValue    = e.OldRole.ToXmlString();
            log_item.NewValue    = e.NewRole.ToXmlString();
            WriteToLog(log_item);
        }
Ejemplo n.º 2
0
        public RoleCreateResult EditRole(int id, string name, string description, string modifiedBy, bool active, int roleTypeId, IEnumerable <RoleBuildingDto> buildings, IEnumerable <int> permissionIds = null, IEnumerable <int> menuIds = null)
        {
            var result = new RoleCreateResult {
                ErrorCode = RoleServiceErrorCode.Ok
            };

            if (_roleRepository.FindAll().Where(x => !x.IsDeleted && x.Name == name && x.Id != id).Count() > 0)
            {
                result.ErrorCode = RoleServiceErrorCode.RoleAlreadyExists;
                return(result);
            }

            using (IUnitOfWork work = UnitOfWork.Begin())
            {
                Role role          = _roleRepository.FindById(id);
                var  logRoleEntity = new RoleEventEntity(role);

                role.Name        = name;
                role.Description = description;
                role.RoleTypeId  = roleTypeId;
                role.AssignPermissions(permissionIds.NullSafe());
                role.AssignMenues(menuIds.NullSafe());

                role.ModifiedLast = DateTime.Now;
                role.ModifiedBy   = modifiedBy;
                role.Active       = active;



                IFoxSecIdentity identity = CurrentUser.Get();
                var             e        = new RoleEditedEventArgs(role, identity.LoginName, identity.FirstName, identity.LastName, DateTime.Now);

                foreach (var building in buildings)
                {
                    if (building.IsChecked)
                    {
                        var roleBuilding =
                            role.RoleBuildings.Where(x => x.RoleId == id && x.BuildingId == building.BuildingId.Value).FirstOrDefault();
                        if (roleBuilding == null)
                        {
                            roleBuilding = DomainObjectFactory.CreateRoleBuilding();
                        }
                        roleBuilding.RoleId     = role.Id;
                        roleBuilding.BuildingId = building.BuildingId.Value;
                        roleBuilding.IsDeleted  = false;
                        role.RoleBuildings.Add(roleBuilding);
                    }
                    else
                    {
                        var roleBuilding =
                            role.RoleBuildings.Where(x => x.RoleId == id && x.BuildingId == building.BuildingId.Value).FirstOrDefault();
                        if (roleBuilding != null)
                        {
                            roleBuilding.IsDeleted = true;
                        }
                    }
                }


                work.Commit();

                e.SetNewRole(role);
                EventAggregator.GetEvent <RoleEditedEvent>().Publish(e);

                logRoleEntity.SetNewRole(role);
                _logService.CreateLog(CurrentUser.Get().Id, "web", flag, CurrentUser.Get().HostName, CurrentUser.Get().CompanyId,
                                      logRoleEntity.GetEditMessage());
                _conrtollerCreateService.CreateControllerUpdate(CurrentUser.Get().Id, id, UpdateParameter.UserRoleManagement, ControllerStatus.Created, "Active");
            }

            return(result);
        }