public virtual TPrivilegeDto CreateOrUpdateEntity(TPrivilegeDto privilegeDto, string languageId) { if (privilegeDto == null) { // TODO specify throw new Exception(); } var relatedSystem = RelatedSystem.NONE; if (privilegeDto != null && privilegeDto.GetType() == typeof(PermissionDto)) { var permissionType = (privilegeDto as PermissionDto).PermissionType; if (permissionType.HasFlag(PermissionTypeDto.CLIENT)) { relatedSystem |= RelatedSystem.CLIENT; } if (permissionType.HasFlag(PermissionTypeDto.SERVER)) { relatedSystem |= RelatedSystem.SERVER; } } var privilege = new TPrivilege() { Name = privilegeDto.Name, Description = privilegeDto.Description, Id = privilegeDto.Id }; SetDynamicProperties(privilegeDto, privilege); return(_mapper.Map <TPrivilegeDto>(_repository.CreateOrUpdateEntity(privilege))); }