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); }
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); }