Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interface INetworkJoin : INotifyPropertyChanged
- {
- string Name {get;set;}
- void Join();
- }
- class DomainJoin : INetworkJoin
- {
- string Name {get;set;}
- string Username {get;set;}
- SecureString {get;set;}
- void Join()
- {
- // Domain join code
- }
- }
- class WorkgroupJoin : INetworkJoin
- {
- string Name {get;set;}
- void Join()
- {
- // Workgroup join code
- }
- }
- class NetworkJoinViewModel : INotifyPropertyChanged
- {
- private DomainJoin _domainJoin;
- private WorkgroupJoin _workgroupJoin;
- public NetworkJoinViewModel(INetworkJoin defaultNetworkJoin)
- {
- switch (defaultNetworkJoin)
- {
- case DomainJoin dj:
- _domainJoin = dj;
- _workgroupJoin = new WorkgroupJoin();
- break;
- case WorkgroupJoin wj:
- _domainJoin = new DomainJoin;
- _workgroupJoin = wj;
- break;
- }
- ActiveJoin = defaultNetworkJoin;
- }
- public INetworkJoin ActiveJoin { get; private set; }
- public string Name
- {
- get => ActiveJoin.Name;
- set => ActiveJoin.Name = value;
- }
- public string Username
- {
- get => ActiveJoin is DomainJoin dj ? dj.Username : null;
- set
- {
- if (ActiveJoin is DomainJoin dj)
- {
- dj.Username = value;
- }
- }
- }
- public string Password
- {
- get => ActiveJoin is DomainJoin dj ? dj.Password: null;
- set
- {
- if (ActiveJoin is DomainJoin dj)
- {
- dj.Password= value;
- }
- }
- }
- public void Join()
- {
- ActiveJoin.Join();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement