Advertisement
Guest User

Untitled

a guest
Nov 28th, 2018
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.48 KB | None | 0 0
  1. interface INetworkJoin : INotifyPropertyChanged
  2. {
  3.     string Name {get;set;}
  4.     void Join();
  5. }
  6.  
  7. class DomainJoin : INetworkJoin
  8. {
  9.     string Name {get;set;}
  10.     string Username {get;set;}
  11.     SecureString {get;set;}
  12.     void Join()
  13.     {
  14.         // Domain join code
  15.     }
  16. }
  17.  
  18. class WorkgroupJoin : INetworkJoin
  19. {
  20.     string Name {get;set;}
  21.     void Join()
  22.     {
  23.         // Workgroup join code
  24.     }
  25. }
  26.  
  27. class NetworkJoinViewModel : INotifyPropertyChanged
  28. {
  29.     private DomainJoin _domainJoin;
  30.     private WorkgroupJoin _workgroupJoin;
  31.  
  32.     public NetworkJoinViewModel(INetworkJoin defaultNetworkJoin)
  33.     {
  34.         switch (defaultNetworkJoin)
  35.         {
  36.             case DomainJoin dj:
  37.                 _domainJoin = dj;
  38.                 _workgroupJoin = new WorkgroupJoin();
  39.                 break;
  40.             case WorkgroupJoin wj:
  41.                 _domainJoin = new DomainJoin;
  42.                 _workgroupJoin = wj;
  43.                 break;
  44.         }
  45.  
  46.         ActiveJoin = defaultNetworkJoin;
  47.     }
  48.  
  49.     public INetworkJoin ActiveJoin { get; private set; }
  50.  
  51.     public string Name
  52.     {
  53.         get => ActiveJoin.Name;
  54.         set => ActiveJoin.Name = value;
  55.     }
  56.  
  57.     public string Username
  58.     {
  59.         get => ActiveJoin is DomainJoin dj ? dj.Username : null;
  60.         set
  61.         {
  62.             if (ActiveJoin is DomainJoin dj)
  63.             {
  64.                 dj.Username = value;
  65.             }
  66.         }
  67.     }
  68.  
  69.     public string Password
  70.     {
  71.         get => ActiveJoin is DomainJoin dj ? dj.Password: null;
  72.         set
  73.         {
  74.             if (ActiveJoin is DomainJoin dj)
  75.             {
  76.                 dj.Password= value;
  77.             }
  78.         }
  79.     }
  80.  
  81.     public void Join()
  82.     {
  83.         ActiveJoin.Join();
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement