Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use inheritance for specific DeviceIdBuilders #54

Open
Fruchtzwerg94 opened this issue May 5, 2022 · 1 comment
Open

Use inheritance for specific DeviceIdBuilders #54

Fruchtzwerg94 opened this issue May 5, 2022 · 1 comment

Comments

@Fruchtzwerg94
Copy link

Hi,

I've noticed, that using general device ID features like the OS version can't be used device specific. This means, it is possible to call AddOsVersion not dependent on the system you are running on:

This works:

string deviceId = new DeviceIdBuilder()
    .AddMachineName()
    .AddOsVersion()
    .OnWindows(windows => windows
        .AddProcessorId())
    .OnLinux(linux => linux
        .AddCpuInfo())
    .ToString();

This works not:

string deviceId = new DeviceIdBuilder()
    .AddMachineName()
    .OnWindows(windows => windows
        .AddProcessorId())
    .OnLinux(linux => linux
        .AddOsVersion()
        .AddCpuInfo())
    .ToString();

The reason seems to be some type specific handling here. From my point of view, this could be solved by changing the way to create the specific builders to inheritance.

If LinuxDeviceIdBuilder inherits from DeviceIdBuilder, overriding the corresponding methods, this would solve the problem. As an alternative the base builder property could be made public. Is there a reason why this is not done like this? If not, I could create a PR with the proposed changes. Let me know what you think about it.

@MatthewKing
Copy link
Owner

Hello. Sorry for taking so long to have a look at this. This definitely looks like a reasonable suggestion. I will have a look into it. Alternatively, if you're happy to create a PR then that would be great. Cheers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants