1. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 12/5/2017 12:06:33 PM Central Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

1.1 Files compared

# Location File Last Modified
1 IV-eHMP_CIF.zip\IMAG_Source\VISA\DotNet\VixInstallerSolution2013.root\VixInstallerSolution2013\VixInstallerBusiness VixConfigurationParameters.cs Mon Dec 4 21:34:04 2017 UTC
2 IV-eHMP_CIF.zip\IMAG_Source\VISA\DotNet\VixInstallerSolution2013.root\VixInstallerSolution2013\VixInstallerBusiness VixConfigurationParameters.cs Tue Dec 5 12:25:02 2017 UTC

1.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 3 2658
Changed 2 4
Inserted 0 0
Removed 0 0

1.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

1.4 Active regular expressions

No regular expressions were active.

1.5 Comparison detail

  1   using Syst em;
  2   using Syst em.Collect ions.Gener ic;
  3   using Syst em.Text;
  4   using Syst em.IO;
  5   using Syst em.Xml;
  6   using Syst em.Xml.Ser ialization ;
  7   using Syst em.Diagnos tics;
  8   using log4 net;
  9   using Syst em.Securit y.Cryptogr aphy;
  10   using Syst em.Securit y.Cryptogr aphy.Xml;
  11  
  12   namespace  gov.va.med .imaging.e xchange.Vi xInstaller .business
  13   {
  14       /// <s ummary>
  15       /// Th is class h olds all t he configu ration inf ormation n eeded to i nstall the  VIX servi ce.
  16       /// </ summary>
  17       public  class Vix Configurat ionParamet ers : gov. va.med.ima ging.excha nge.VixIns taller.bus iness.IVix Configurat ionParamet ers
  18       {
  19           pr ivate stat ic readonl y String V IX_INSTALL ER_CONFIG_ FILENAME =  @"VixInst allerConfi g.xml";
  20  
  21           pr ivate stat ic ILog Lo gger()
  22           {
  23                return L ogManager. GetLogger( typeof(Vix Configurat ionParamet ers).Name) ;
  24           }
  25  
  26           pu blic VixCo nfiguratio nParameter s() // for  use by th e FromXml  method
  27           {
  28           }
  29  
  30           pu blic VixCo nfiguratio nParameter s(string p roductVers ion, strin g keyStore Password,  string tru stStorePas sword) //  for use wi th a new V IX install ation
  31           {
  32                this.Vix ServerName Prop = Env ironment.M achineName ; // must  happen fir st
  33                this.Pro ductVersio nProp = pr oductVersi on;
  34                this.fed erationKey storePassw ord = keyS torePasswo rd;
  35                this.fed erationTru ststorePas sword = tr ustStorePa ssword;
  36                this.Vix Deployment Option = D etermineDe ploymentTy peForServe r();
  37                this.vix CacheOptio n = GetVix CacheTypeB yDeploymen tOption(th is.VixDepl oymentOpti on);
  38                // This  is bad in  that we ar e dependen t on the F acades to  have had t heir manif est field  initialize d (which i s always d one before  the manif est gets l oaded).
  39                // It is  less bad  than havin g to initi alize the  VixRole in  the Wizar dForm load  event
  40                VixDeplo ymentConfi guration[]  deployCon figs = Vix Facade.Man ifest.VixD eploymentC onfigurati ons; 
  41                this.Vix Role = dep loyConfigs [0].VixRol e; // DKB  5/10/2011  - first de ployment c onfigurati on role is  the defau lt
  42                Logger() .Info("Vix Role = " +  this.VixR ole);
  43                if (this .VixRole = = VixRoleT ype.Enterp riseGatewa y)
  44                {
  45                    //th is.HttpCon nectorPort  = 80; //  one time d efault cha nge on por t for the  CVIX
  46                }
  47                // initi alize depr ecated fie lds as dep recated
  48                this.Pro ductVersio n = "depre cated";
  49                this.Pre viousProdu ctVersion  = "depreca ted";
  50           }
  51  
  52           pr ivate Stri ng siteSer viceUri =  null;
  53           pr ivate Stri ng siteNum ber = null ;
  54           pr ivate Stri ng vistaSe rverName =  null;
  55           pr ivate Stri ng vistaSe rverPort =  null;
  56           pr ivate Stri ng localCa cheDir = n ull;
  57           pr ivate Stri ng network FileShare  = null;
  58           pr ivate Stri ng network FileShareU sername =  null;
  59           pr ivate Stri ng network FileShareP assword =  null;
  60           pr ivate Stri ng configD ir = null;
  61           pr ivate Stri ng biaUser name = Bus inessFacad e.GetProdu ctionBiaUs ername();  // product ion defaul t
  62           pr ivate Stri ng biaPass word = Bus inessFacad e.GetProdu ctionBiaPa ssword();  // product ion defaul t
  63           pr ivate Stri ng siteNam e = null;
  64           pr ivate Stri ng siteAbb reviation  = null;
  65  
  66           pu blic  Stri ng Product Version =  null; // d eprecated  by still e nabled for  migration  to produc tVersion1  and produc tVersion2  fields
  67           pu blic  Stri ng Previou sProductVe rsion = nu ll; // dep recated by  still ena bled for m igration t o productV ersion1 an d productV ersion2 fi elds
  68  
  69           pr ivate Stri ng federat ionKeystor ePassword  = null;
  70           pr ivate Stri ng federat ionTrustst orePasswor d = null;
  71           pr ivate Stri ng cvixCer tFilename  = null;
  72           pr ivate Stri ng cvixCer tPassword  = null;
  73           
  74           //  local DoD  connectio n
  75           pr ivate Stri ng localDo dServer =  null;
  76           pr ivate Stri ng localDo dServerPor t = null;
  77           pr ivate Stri ng localDo dSiteNumbe r = null;
  78           pr ivate Stri ng localDo dUsername  = null;
  79           pr ivate Stri ng localDo dPassword  = null;
  80           pr ivate Stri ng vixServ erName1 =  null; // p opulated f or Single  Server and  Fail Over  Clusters
  81           pr ivate Stri ng vixServ erName2 =  null; // n ot populat ed except  for Fail O ver Cluste rs
  82           pr ivate VixD eploymentT ype vixDep loymentOpt ionServer1  = VixDepl oymentType .Deprecate d; // popu lated for  Single Ser ver and Fa il Over Cl usters
  83           pr ivate VixD eploymentT ype vixDep loymentOpt ionServer2  = VixDepl oymentType .Deprecate d; // not  populated  except for  Fail Over  Clusters
  84           pr ivate VixC acheType v ixCacheOpt ion = VixC acheType.N otSpecifie d;
  85           pr ivate int  vixCacheSi ze = VixFa cade.MINIM UM_VIX_CAC HE_SIZE_GB ; // cache  size in G B
  86           pr ivate Stri ng product Version1 =  null;
  87           pr ivate Stri ng product Version2 =  null;
  88           pr ivate Stri ng previou sProductVe rsion1 = n ull;
  89           pr ivate Stri ng previou sProductVe rsion2 = n ull;
  90           pr ivate VixD eploymentT ype vixDep loymentOpt ion = VixD eploymentT ype.NotSpe cified;
  91           pr ivate Stri ng tomcatA dminPasswo rd = null;
  92           pr ivate Stri ng apachet omcatpassw ord1 = nul l;
  93           pr ivate Stri ng apachet omcatpassw ord2 = nul l;
  94           pr ivate Stri ng imaging ServiceAcc ountUserna me = null;
  95           pr ivate Stri ng imaging ServiceAcc ountPasswo rd = null;
  96  
  97           pr ivate VixR oleType vi xRole = Vi xRoleType. NotSpecifi ed;
  98           pr ivate bool  isPatch =  false; //  if true t he Vixpatc hingUtilit y console  app will b e used
  99  
  100           //  HDIG supp ort
  101           pr ivate stri ng vdigAcc essor = nu ll;
  102           pr ivate stri ng vdigVer ifier = nu ll;
  103           pr ivate stri ng dicomIm ageGateway Server = n ull;
  104           pr ivate stri ng dicomIm ageGateway Port = nul l;
  105           pr ivate stri ng divisio nNumber =  null;
  106           pr ivate bool  dicomList enerEnable d = true;
  107           pr ivate bool  archiveEn abled = tr ue;
  108           pr ivate bool  iconGener ationEnabl ed = true;
  109  
  110           //  CVIX supp ort
  111           pr ivate stri ng sitesFi le = null;
  112           pr ivate stri ng bhieUse rName = nu ll;
  113           pr ivate stri ng bhiePas sword = nu ll;
  114           pr ivate stri ng bhiePro tocol = nu ll;
  115           pr ivate stri ng haimsUs erName = n ull;
  116           pr ivate stri ng haimsPa ssword = n ull;
  117           pr ivate stri ng haimsPr otocol = n ull;
  118           pr ivate stri ng ncatUse rName = nu ll;
  119           pr ivate stri ng ncatPas sword = nu ll;
  120           pr ivate stri ng ncatPro tocol = nu ll;
  121             private in t dodConne ctorPort =   PORT ;
  122           pr ivate stri ng dodConn ectorHost  = null;
  123           pr ivate stri ng station 200UserNam e = null;
  124           pr ivate bool  useOpenSs lForXCACon nector = t rue;
  125  
  126           pr ivate int  cvixHttpCo nnectorPor t = 80;
  127             private in t cvixHttp sConnector Port =  PORT ;
  128  
  129           //  LB DCF en terprise l icensing s upport
  130           pr ivate stri ng renamed Deprecated DcfRoot =  null;
  131  
  132           //  email not ifications
  133           pr ivate stri ng notific ationEmail Addresses  = null;
  134  
  135           //  DKB - rem ember to a dd any new  private m embers to  the Copy m ethod
  136  
  137           //  ROI suppo rt
  138           pr ivate stri ng roiAcce ssor = nul l;
  139           pr ivate stri ng roiVeri fier = nul l;
  140  
  141           //  non peris table deve loper over ride for f orcing Lau rel Bridge  not to be  required.
  142           pr ivate bool  isLaurelB ridgeRequi red = true ;
  143  
  144  
  145           // DoD Connec tor
  146           pr ivate stri ng dodConn ectorLoinc  = null;
  147           pr ivate stri ng dodConn ectorReque stSource =  null;
  148           pr ivate stri ng dodConn ectorProvi der = null ;
  149  
  150           // Cluster su pport
  151           pr ivate bool  clusterCa che = fals e;
  152           pr ivate stri ng cluster Host = nul l;
  153           pr ivate stri ng cluster Port = nul l;
  154           pr ivate stri ng cluster Login = nu ll;
  155           pr ivate stri ng cluster Password =  null;
  156  
  157           #r egion prop erties
  158  
  159           pu blic strin g RenamedD eprecatedD cfRoot
  160           {
  161                get { re turn renam edDeprecat edDcfRoot;  }
  162                set { re namedDepre catedDcfRo ot = value ; }
  163           }
  164  
  165           pu blic bool  UseOpenSsl ForXCAConn ector
  166           {
  167                get { re turn useOp enSslForXC AConnector ; }
  168                set { us eOpenSslFo rXCAConnec tor = valu e; }
  169           }
  170  
  171           pu blic strin g Station2 00UserName
  172           {
  173                get { re turn stati on200UserN ame; }
  174                set { st ation200Us erName = v alue; }
  175           }
  176  
  177           pu blic int C vixHttpCon nectorPort
  178           {
  179                get { re turn cvixH ttpConnect orPort; }
  180                set { cv ixHttpConn ectorPort  = value; }
  181           }
  182  
  183           pu blic int C vixHttpsCo nnectorPor t
  184           {
  185                get { re turn cvixH ttpsConnec torPort; }
  186                set { cv ixHttpsCon nectorPort  = value;  }
  187           }
  188  
  189           pu blic strin g DoDConne ctorHost
  190           {
  191                get { re turn dodCo nnectorHos t; }
  192                set { do dConnector Host = val ue; }
  193           }
  194  
  195           pu blic int D oDConnecto rPort
  196           {
  197                get { re turn dodCo nnectorPor t; }
  198                set { do dConnector Port = val ue; }
  199           }
  200  
  201           pu blic strin g DoDConne ctorLoinc
  202           {
  203                get { re turn dodCo nnectorLoi nc; }
  204                set { do dConnector Loinc = va lue; }
  205           }
  206  
  207           pu blic strin g DoDConne ctorReques tSource
  208           {
  209                get { re turn dodCo nnectorReq uestSource ; }
  210                set { do dConnector RequestSou rce = valu e; }
  211           }
  212  
  213           pu blic strin g DoDConne ctorProvid er
  214           {
  215                get { re turn dodCo nnectorPro vider; }
  216                set { do dConnector Provider =  value; }
  217           }
  218  
  219           // public str ing HaimsU serName
  220           // {
  221           //     get {  return hai msUserName ; }
  222           //     set {  haimsUserN ame = valu e; }
  223           // }
  224  
  225           // public str ing BhiePr otocol
  226           // {
  227            / /   get {  return bhi eProtocol;  }
  228            / /   set {  bhieProtoc ol = value ; }
  229           // }
  230  
  231           // public str ing BhiePa ssword
  232           // {
  233            / /   get {  return bhi ePassword;  }
  234            / /   set {  bhiePasswo rd = value ; }
  235           // }
  236  
  237  
  238           // public str ing BhieUs erName
  239           // {
  240            / /   get {  return bhi eUserName;  }
  241            / /  set { b hieUserNam e = value;  }
  242           // }
  243  
  244           pu blic strin g SitesFil e
  245           {
  246                get { re turn sites File; }
  247                set { si tesFile =  value; }
  248           }
  249  
  250           pu blic bool  DicomListe nerEnabled
  251           {
  252                get { re turn dicom ListenerEn abled; }
  253                set { di comListene rEnabled =  value; }
  254           }
  255  
  256           pu blic bool  ArchiveEna bled
  257           {
  258                get { re turn archi veEnabled;  }
  259                set { ar chiveEnabl ed = value ; }
  260           }
  261  
  262           pu blic bool  IconGenera tionEnable d
  263           {
  264                get { re turn iconG enerationE nabled; }
  265                set { ic onGenerati onEnabled  = value; }
  266           }
  267  
  268           pu blic strin g Division Number
  269           {
  270                get { re turn divis ionNumber;  }
  271                set { di visionNumb er = value ; }
  272           }
  273  
  274           pu blic strin g VdigAcce ssor
  275           {
  276                get { re turn vdigA ccessor; }
  277                set { vd igAccessor  = value;  }
  278           }
  279  
  280           pu blic strin g VdigVeri fier
  281           {
  282                get { re turn vdigV erifier; }
  283                set { vd igVerifier  = value;  }
  284           }
  285  
  286           pu blic strin g DicomIma geGatewayS erver
  287           {
  288                get { re turn dicom ImageGatew ayServer;  }
  289                set { di comImageGa tewayServe r = value;  }
  290           }
  291  
  292           pu blic strin g DicomIma geGatewayP ort
  293           {
  294                get { re turn dicom ImageGatew ayPort; }
  295                set { di comImageGa tewayPort  = value; }
  296           }
  297  
  298           [X mlIgnore]
  299           pu blic bool  IsPatch
  300           {
  301                get { re turn isPat ch; }
  302                set { is Patch = va lue; }
  303           }
  304  
  305           pu blic VixRo leType Vix Role
  306           {
  307                get { re turn vixRo le; }
  308                set { vi xRole = va lue; }
  309           }
  310  
  311           pu blic Strin g Apacheto mcatpasswo rd1
  312           {
  313                get { re turn apach etomcatpas sword1; }
  314                set { ap achetomcat password1  = value; }
  315           }
  316  
  317           pu blic Strin g Apacheto mcatpasswo rd2
  318           {
  319                get { re turn apach etomcatpas sword2; }
  320                set { ap achetomcat password2  = value; }
  321           }
  322  
  323           pu blic int V ixCacheSiz e
  324           {
  325                get { re turn vixCa cheSize; }
  326                set { vi xCacheSize  = value;  }
  327           }
  328  
  329           pu blic VixCa cheType Vi xCacheOpti on
  330           {
  331                get { re turn vixCa cheOption;  }
  332                set { vi xCacheOpti on = value ; }
  333           }
  334  
  335           pu blic VixDe ploymentTy pe VixDepl oymentOpti on
  336           {
  337                get { re turn vixDe ploymentOp tion; }
  338                set { vi xDeploymen tOption =  value; }
  339           }
  340           
  341           pu blic Strin g VixServe rName1
  342           {
  343                get { re turn vixSe rverName1;  }
  344                set { vi xServerNam e1 = value ; }
  345           }
  346  
  347           pu blic Strin g VixServe rName2
  348           {
  349                get { re turn vixSe rverName2;  }
  350                set { vi xServerNam e2 = value ; }
  351           }
  352  
  353           pu blic VixDe ploymentTy pe VixDepl oymentOpti onServer1
  354           {
  355                get { re turn vixDe ploymentOp tionServer 1; }
  356                set { vi xDeploymen tOptionSer ver1 = val ue; }
  357           }
  358  
  359           pu blic VixDe ploymentTy pe VixDepl oymentOpti onServer2
  360           {
  361                get { re turn vixDe ploymentOp tionServer 2; }
  362                set { vi xDeploymen tOptionSer ver2 = val ue; }
  363           }
  364  
  365           pu blic Strin g LocalDod Server
  366           {
  367                get { re turn local DodServer;  }
  368                set { lo calDodServ er = value ; }
  369           }
  370  
  371           pu blic Strin g LocalDod ServerPort
  372           {
  373                get { re turn local DodServerP ort; }
  374                set { lo calDodServ erPort = v alue; }
  375           }
  376  
  377           pu blic Strin g LocalDod SiteNumber
  378           {
  379                get { re turn local DodSiteNum ber; }
  380                set { lo calDodSite Number = v alue; }
  381           }
  382  
  383           pu blic Strin g LocalDod Username
  384           {
  385                get { re turn local DodUsernam e; }
  386                set { lo calDodUser name = val ue; }
  387           }
  388  
  389           pu blic Strin g LocalDod Password
  390           {
  391                get { re turn local DodPasswor d; }
  392                set { lo calDodPass word = val ue; }
  393           }
  394  
  395           pu blic Strin g Federati onKeystore Password
  396           {
  397                get { re turn feder ationKeyst orePasswor d; }
  398                set { fe derationKe ystorePass word = val ue; }
  399           }
  400  
  401           pu blic Strin g Federati onTruststo rePassword
  402           {
  403                get { re turn feder ationTrust storePassw ord; }
  404                set { fe derationTr uststorePa ssword = v alue; }
  405           }
  406  
  407           pu blic Strin g CvixCert Filename
  408           {
  409                get { re turn cvixC ertFilenam e; }
  410                set { cv ixCertFile name = val ue; }
  411           }
  412  
  413           pu blic Strin g CvixCert Password
  414           {
  415                get { re turn cvixC ertPasswor d; }
  416                set { cv ixCertPass word = val ue; }
  417           }
  418  
  419           [X mlIgnore]
  420           pu blic Strin g VixServe rNameProp
  421           {
  422                get
  423                {
  424                    Debu g.Assert(t his.vixSer verName1 = = Environm ent.Machin eName || t his.vixSer verName2 = = Environm ent.Machin eName);
  425                    retu rn Environ ment.Machi neName;
  426                }
  427                set
  428                {
  429                    if ( this.vixSe rverName1  == null)
  430                    {
  431                         this.vixSe rverName1  = value;
  432                    }
  433                    else  if (this. vixServerN ame1 != nu ll && this .vixServer Name2 == n ull && thi s.vixServe rName1 !=  value)
  434                    {
  435                         this.vixSe rverName2  = value;
  436                    }
  437                    else
  438                    {
  439                         Debug.Asse rt(this.vi xServerNam e1 == valu e || this. vixServerN ame2 == va lue);
  440                    }
  441                }
  442           }
  443  
  444           [X mlIgnore]
  445           pu blic Strin g Previous ProductVer sionProp
  446           {
  447                get
  448                {
  449                    if ( this.vixSe rverName1  == Environ ment.Machi neName)
  450                    {
  451                         return pre viousProdu ctVersion1 ;
  452                    }
  453                    else  if (this. vixServerN ame2 == En vironment. MachineNam e)
  454                    {
  455                         return pre viousProdu ctVersion2 ;
  456                    }
  457                    else
  458                    {
  459                         throw new  Exception( "PreviousP roductVers ionProp ge t: machine name misma tch");
  460                    }
  461                }
  462                set
  463                {
  464                    if ( this.vixSe rverName1  == Environ ment.Machi neName)
  465                    {
  466                         this.previ ousProduct Version1 =  value;
  467                    }
  468                    else  if (this. vixServerN ame2 == En vironment. MachineNam e)
  469                    {
  470                         this.previ ousProduct Version2 =  value;
  471                    }
  472                    else
  473                    {
  474                         throw new  Exception( "PreviousP roductVers ionProp se t : machin e name mis match");
  475                    }
  476                }
  477           }
  478  
  479  
  480           [X mlIgnore]
  481           pu blic Strin g ApacheTo mcatPasswo rd
  482           {
  483                get
  484                {
  485                    if ( this.vixSe rverName1  == Environ ment.Machi neName)
  486                    {
  487                         return apa chetomcatp assword1;
  488                    }
  489                    else  if (this. vixServerN ame2 == En vironment. MachineNam e)
  490                    {
  491                         return apa chetomcatp assword2;
  492                    }
  493                    else
  494                    {
  495                         throw new  Exception( "ApacheTom catPasswor d get: mac hinename m ismatch");
  496                    }
  497                }
  498                set
  499                {
  500                    if ( this.vixSe rverName1  == Environ ment.Machi neName)
  501                    {
  502                         this.apach etomcatpas sword1 = v alue;
  503                    }
  504                    else  if (this. vixServerN ame2 == En vironment. MachineNam e)
  505                    {
  506                         this.apach etomcatpas sword2 = v alue;
  507                    }
  508                    else
  509                    {
  510                         throw new  Exception( "ApacheTom catPasswor d set : ma chine name  mismatch" );
  511                    }
  512                }
  513           }
  514  
  515           [X mlIgnore]
  516           pu blic Strin g ProductV ersionProp
  517           {
  518                get
  519                {
  520                    if ( this.vixSe rverName1  == Environ ment.Machi neName)
  521                    {
  522                         return pro ductVersio n1;
  523                    }
  524                    else  if (this. vixServerN ame2 == En vironment. MachineNam e)
  525                    {
  526                         return pro ductVersio n2;
  527                    }
  528                    else
  529                    {
  530                         throw new  Exception( "ProductVe rsionProp  get: machi nename mis match");
  531                    }
  532                }
  533                set
  534                {
  535                    if ( this.vixSe rverName1  == Environ ment.Machi neName)
  536                    {
  537                         this.produ ctVersion1  = value;
  538                    }
  539                    else  if (this. vixServerN ame2 == En vironment. MachineNam e)
  540                    {
  541                         this.produ ctVersion2  = value;
  542                    }
  543                    else
  544                    {
  545                         throw new  Exception( "ProductVe rsionProp  set: machi nename mis match");
  546                    }
  547                }
  548           }
  549  
  550           pu blic Strin g SiteAbbr eviation
  551           {
  552                get { re turn siteA bbreviatio n; }
  553                set { si teAbbrevia tion = val ue; }
  554           }
  555  
  556           pu blic Strin g SiteName
  557           {
  558                get { re turn siteN ame; }
  559                set { si teName = v alue; }
  560           }
  561  
  562           pu blic Strin g BiaPassw ord
  563           {
  564                get { re turn biaPa ssword; }
  565                set { bi aPassword  = value; }
  566           }
  567  
  568           pu blic Strin g BiaUsern ame
  569           {
  570                get { re turn biaUs ername; }
  571                set { bi aUsername  = value; }
  572           }
  573  
  574           pu blic Strin g ConfigDi r
  575           {
  576                get { re turn confi gDir; }
  577                set { co nfigDir =  value; }
  578           }
  579  
  580           pu blic Strin g NetworkF ileSharePa ssword
  581           {
  582                get { re turn netwo rkFileShar ePassword;  }
  583                set { ne tworkFileS harePasswo rd = value ; }
  584           }
  585  
  586           pu blic Strin g NetworkF ileShareUs ername
  587           {
  588                get { re turn netwo rkFileShar eUsername;  }
  589                set { ne tworkFileS hareUserna me = value ; }
  590           }
  591  
  592           pu blic Strin g NetworkF ileShare
  593           {
  594                get { re turn netwo rkFileShar e; }
  595                set { ne tworkFileS hare = val ue; }
  596           }
  597  
  598           pu blic Strin g LocalCac heDir
  599           {
  600                get { re turn local CacheDir;  }
  601                set { lo calCacheDi r = value;  }
  602           }
  603  
  604           pu blic Strin g SiteServ iceUri
  605           {
  606                get { re turn siteS erviceUri;  }
  607                set { si teServiceU ri = value ; }
  608           }
  609  
  610           pu blic Strin g SiteNumb er
  611           {
  612                get { re turn siteN umber; }
  613                set { si teNumber =  value; }
  614           }
  615  
  616           pu blic Strin g VistaSer verName
  617           {
  618                get { re turn vista ServerName ; }
  619                set { vi staServerN ame = valu e; }
  620           }
  621  
  622           pu blic Strin g VistaSer verPort
  623           {
  624                get { re turn vista ServerPort ; }
  625                set { vi staServerP ort = valu e; }
  626           }
  627  
  628           pu blic Strin g ProductV ersion1
  629           {
  630                get { re turn produ ctVersion1 ; }
  631                set { pr oductVersi on1 = valu e; }
  632           }
  633  
  634           pu blic Strin g ProductV ersion2
  635           {
  636                get { re turn produ ctVersion2 ; }
  637                set { pr oductVersi on2 = valu e; }
  638           }
  639  
  640           pu blic Strin g Previous ProductVer sion1
  641           {
  642                get { re turn previ ousProduct Version1;  }
  643                set { pr eviousProd uctVersion 1 = value;  }
  644           }
  645  
  646           pu blic Strin g Previous ProductVer sion2
  647           {
  648                get { re turn previ ousProduct Version2;  }
  649                set { pr eviousProd uctVersion 2 = value;  }
  650           }
  651  
  652           pu blic Strin g TomcatAd minPasswor d
  653           {
  654                get { re turn tomca tAdminPass word; }
  655                set { to mcatAdminP assword =  value; }
  656           }
  657  
  658           pu blic Strin g ImagingS erviceAcco untUsernam e
  659           {
  660                get { re turn imagi ngServiceA ccountUser name; }
  661                set { im agingServi ceAccountU sername =  value; }
  662           }
  663           pu blic Strin g ImagingS erviceAcco untPasswor d
  664           {
  665                get { re turn imagi ngServiceA ccountPass word; }
  666                set { im agingServi ceAccountP assword =  value; }
  667           }
  668  
  669           pu blic strin g Notifica tionEmailA ddresses
  670           {
  671                get { re turn this. notificati onEmailAdd resses; }
  672                set { th is.notific ationEmail Addresses  = value; }
  673           }
  674  
  675           pu blic strin g RoiAcces sor
  676           {
  677                get { re turn this. roiAccesso r; }
  678                set { th is.roiAcce ssor = val ue; }
  679           }
  680  
  681           pu blic strin g RoiVerif ier
  682           {
  683                get { re turn this. roiVerifie r; }
  684                set { th is.roiVeri fier = val ue; }
  685           }
  686  
  687           [X mlIgnore]
  688           pu blic bool  IsLaurelBr idgeRequir ed
  689           {
  690                get { re turn this. isLaurelBr idgeRequir ed; }
  691                set { th is.isLaure lBridgeReq uired = va lue; }
  692           }
  693  
  694           pu blic bool  ClusterCac he
  695           {
  696                get { re turn this. clusterCac he; }
  697                set { th is.cluster Cache = va lue; }
  698           }
  699  
  700           pu blic strin g ClusterH ost
  701           {
  702                get { re turn this. clusterHos t; }
  703                set { th is.cluster Host = val ue; }
  704           }
  705  
  706           pu blic strin g ClusterP ort
  707           {
  708                get { re turn this. clusterPor t; }
  709                set { th is.cluster Port = val ue; }
  710           }
  711  
  712           pu blic strin g ClusterL ogin
  713           {
  714                get { re turn this. clusterLog in; }
  715                set { th is.cluster Login = va lue; }
  716           }
  717           pu blic strin g ClusterP assword
  718           {
  719                get { re turn this. clusterPas sword; }
  720                set { th is.cluster Password =  value; }
  721           }
  722  
  723           #e ndregion
  724  
  725           #r egion publ ic methods
  726           // / <summary >
  727           //
  728           // / </summar y>
  729           // / <returns >return tr ue if the  VIX instal ler is ins talling a  VIX for th e first ti me, false  otherwise< /returns>
  730           pu blic bool  IsNewVixIn stallation ()
  731           {
  732                return t his.Previo usProductV ersionProp  == null ?  true : fa lse;
  733           }
  734  
  735           // / <summary >
  736           // / Check to  see if bo th nodes o f a cluste r are inst alled
  737           // / </summar y>
  738           // / <returns >true if b oth nodes  have a VIX  </returns >
  739           pu blic bool  AreBothNod esInstalle d()
  740           {
  741                Debug.As sert(Clust erFacade.I sServerClu sterNode() );
  742                return ( this.produ ctVersion1  != null & & this.pro ductVersio n2 != null ) ? true :  false;
  743           }
  744  
  745           // / <summary >
  746           // / Get the  machine na me of the  other node  in the cl uster.
  747           // / </summar y>
  748           // / <returns >the machi ne name of  the other  node in t he cluster </returns>
  749           pu blic strin g GetOther Node()
  750           {
  751                Debug.As sert(this. vixServerN ame1 != nu ll && this .vixServer Name2 != n ull);
  752                if (this .vixServer Name1 == E nvironment .MachineNa me)
  753                {
  754                    retu rn this.vi xServerNam e2;
  755                }
  756                else
  757                {
  758                    retu rn this.vi xServerNam e1;
  759                }
  760           }
  761  
  762  
  763           // / <summary >
  764           // / Check to  see if bo th nodes o f a cluste r are the  same softw are versio n
  765           // / </summar y>
  766           // / <returns >true if b oth nodes  are the sa me softwar e version,  false oth erwise</re turns>
  767           pu blic bool  AreBothNod esUpdated( )
  768           {
  769                Debug.As sert(Clust erFacade.I sServerClu sterNode() );
  770                //Debug. Assert(Are BothNodesI nstalled() );
  771                return ( this.produ ctVersion1  == this.p roductVers ion2) ? tr ue : false ;
  772           }
  773  
  774           pu blic void  Copy(VixCo nfiguratio nParameter s config)
  775           {
  776                this.sit eServiceUr i = config .siteServi ceUri;
  777                this.sit eNumber =  config.sit eNumber;
  778                this.vis taServerNa me = confi g.vistaSer verName;
  779                this.vis taServerPo rt = confi g.vistaSer verPort;
  780                this.loc alCacheDir  = config. localCache Dir;
  781                this.net workFileSh are = conf ig.network FileShare;
  782                this.net workFileSh areUsernam e = config .networkFi leShareUse rname;
  783                this.net workFileSh arePasswor d = config .networkFi leSharePas sword;
  784                this.con figDir = c onfig.conf igDir;
  785                this.bia Username =  config.bi aUsername;
  786                this.bia Password =  config.bi aPassword;
  787                this.sit eName = co nfig.siteN ame;
  788                this.sit eAbbreviat ion = conf ig.siteAbb reviation;
  789                this.Pro ductVersio n = config .ProductVe rsion; //  TODO: depr ecated but  still act ive for mi gration pu rposes
  790                this.Pre viousProdu ctVersion  = config.P reviousPro ductVersio n; // TODO : deprecat ed but sti ll active  for migrat ion purpos es
  791                this.fed erationKey storePassw ord = conf ig.federat ionKeystor ePassword;
  792                this.fed erationTru ststorePas sword = co nfig.feder ationTrust storePassw ord;
  793                //this.v ixCertific ateInstall ZipFilespe c = config .vixCertif icateInsta llZipFiles pec;
  794                this.loc alDodServe r = config .localDodS erver;
  795                this.loc alDodServe rPort = co nfig.local DodServerP ort;
  796                this.loc alDodSiteN umber = co nfig.local DodSiteNum ber;
  797                this.loc alDodUsern ame = conf ig.localDo dUsername;
  798                this.loc alDodPassw ord = conf ig.localDo dPassword;
  799                this.vix Deployment OptionServ er1 = conf ig.vixDepl oymentOpti onServer1;  // TODO:  deprecated  but still  active fo r migratio n purposes
  800                this.vix Deployment OptionServ er2 = conf ig.vixDepl oymentOpti onServer2;  // TODO:  deprecated  but still  active fo r migratio n purposes
  801                this.vix ServerName 1 = config .vixServer Name1;
  802                this.vix ServerName 2 = config .vixServer Name2;
  803                this.con figDir = c onfig.conf igDir;
  804                this.vix CacheOptio n = config .vixCacheO ption;
  805                this.vix CacheSize  = config.v ixCacheSiz e;
  806                this.pro ductVersio n1 = confi g.productV ersion1;
  807                this.pro ductVersio n2 = confi g.productV ersion2;
  808                this.pre viousProdu ctVersion1  = config. previousPr oductVersi on1;
  809                this.pre viousProdu ctVersion2  = config. previousPr oductVersi on2;
  810                this.vix Deployment Option = c onfig.vixD eploymentO ption;
  811                this.tom catAdminPa ssword = c onfig.tomc atAdminPas sword;
  812                this.ima gingServic eAccountUs ername = c onfig.imag ingService AccountUse rname;
  813                this.ima gingServic eAccountPa ssword = c onfig.imag ingService AccountPas sword;
  814                //this.i sPatch90or Patch101In stalled =  config.isP atch90orPa tch101Inst alled;
  815                this.apa chetomcatp assword1 =  config.ap achetomcat password1;
  816                this.apa chetomcatp assword2 =  config.ap achetomcat password2;
  817                this.vix Role = con fig.vixRol e;
  818                this.isP atch = con fig.isPatc h;
  819                this.vdi gAccessor  = config.v digAccesso r;
  820                this.vdi gVerifier  = config.v digVerifie r;
  821                this.dic omImageGat ewayServer  = config. dicomImage GatewaySer ver;
  822                this.dic omImageGat ewayPort =  config.di comImageGa tewayPort;
  823                this.div isionNumbe r = config .divisionN umber;
  824                this.dic omListener Enabled =  config.dic omListener Enabled;
  825                this.arc hiveEnable d = config .archiveEn abled;
  826                this.ico nGeneratio nEnabled =  config.ic onGenerati onEnabled;
  827                this.bhi eUserName  = config.b hieUserNam e;
  828                this.bhi ePassword  = config.b hiePasswor d;
  829                this.bhi eProtocol  = config.b hieProtoco l;
  830                this.hai msUserName  = config. haimsUserN ame;
  831                this.hai msPassword  = config. haimsPassw ord;
  832                this.hai msProtocol  = config. haimsProto col;
  833                this.nca tUserName  = config.n catUserNam e;
  834                this.nca tPassword  = config.n catPasswor d;
  835                this.nca tProtocol  = config.n catProtoco l;
  836                this.sta tion200Use rName = co nfig.stati on200UserN ame;
  837                this.use OpenSslFor XCAConnect or = confi g.useOpenS slForXCACo nnector;
  838                this.ren amedDeprec atedDcfRoo t = config .renamedDe precatedDc fRoot;
  839                this.not ificationE mailAddres ses = conf ig.notific ationEmail Addresses;
  840                this.roi Accessor =  config.ro iAccessor;
  841                this.roi Verifier =  config.ro iVerifier;
  842                this.isL aurelBridg eRequired  = config.i sLaurelBri dgeRequire d;
  843                //this.d eployConfi gs = confi g.deployCo nfigs;
  844           }
  845  
  846           pu blic void  LogConfigS tate()
  847           {
  848                Logger() .Info("sit eServiceUr i = " + th is.siteSer viceUri);
  849                Logger() .Info("sit eNumber =  " + this.s iteNumber) ;
  850                Logger() .Info("vis taServerNa me = " + t his.vistaS erverName) ;
  851                Logger() .Info("vis taServerPo rt = " + t his.vistaS erverPort) ;
  852                Logger() .Info("loc alCacheDir  = " + thi s.localCac heDir);
  853                Logger() .Info("net workFileSh are = " +  this.netwo rkFileShar e);
  854                Logger() .Info("net workFileSh areUsernam e = " + th is.network FileShareU sername);
  855                Logger() .Info("net workFileSh arePasswor d = " + th is.network FileShareP assword);
  856                Logger() .Info("con figDir = "  + this.co nfigDir);
  857                Logger() .Info("bia Username =  <not show n>");
  858                Logger() .Info("bia Password =  <not show n>");
  859                Logger() .Info("sit eName = "  + this.sit eName);
  860                Logger() .Info("sit eAbbreviat ion = " +  this.siteA bbreviatio n);
  861                Logger() .Info("pro ductVersio n = " + th is.Product Version);
  862                Logger() .Info("pre viousProdu ctVersion  = " + this .PreviousP roductVers ion);
  863                Logger() .Info("fed erationKey storePassw ord = <not  shown>");
  864                Logger() .Info("fed erationTru ststorePas sword = <n ot shown>" );
  865                Logger() .Info("loc alDodServe r = " + th is.localDo dServer);
  866                Logger() .Info("loc alDodServe rPort = "  + this.loc alDodServe rPort);
  867                Logger() .Info("loc alDodSiteN umber = "  + this.loc alDodSiteN umber);
  868                Logger() .Info("loc alDodUsern ame = <not  shown>");
  869                Logger() .Info("loc alDodPassw ord = <not  shown>");
  870                Logger() .Info("vix Deployment OptionServ er1 = " +  this.vixDe ploymentOp tionServer 1);
  871                Logger() .Info("vix Deployment OptionServ er2 = " +  this.vixDe ploymentOp tionServer 2);
  872                Logger() .Info("vix ServerName 1 = " + th is.vixServ erName1);
  873                Logger() .Info("vix ServerName 2 = " + th is.vixServ erName2);
  874                Logger() .Info("con figDir = "  + this.co nfigDir);
  875                Logger() .Info("vix CacheOptio n = " + th is.vixCach eOption);
  876                Logger() .Info("vix CacheSize  = " + this .vixCacheS ize);
  877                Logger() .Info("isN ewVixInsta llation =  " + this.I sNewVixIns tallation( ));
  878                Logger() .Info("pro ductVersio n1 = " + t his.produc tVersion1) ;
  879                Logger() .Info("pro ductVersio n2 = " + t his.produc tVersion2) ;
  880                Logger() .Info("pre viousProdu ctVersion1  = " + thi s.previous ProductVer sion1);
  881                Logger() .Info("pre viousProdu ctVersion2  = " + thi s.previous ProductVer sion2);
  882                Logger() .Info("vix Deployment Option = "  + this.vi xDeploymen tOption);
  883                Logger() .Info("tom catAdminPa ssowrd = < not shown> ");
  884                Logger() .Info("apa chetomcatp assword1 =  <not show n>");
  885                Logger() .Info("apa chetomcatp assword2 =  <not show n>");
  886                Logger() .Info("vix Role = " +  this.vixR ole);
  887                Logger() .Info("isP atch = " +  this.isPa tch);
  888                Logger() .Info("vdi gAccessor  = <not sho wn>");
  889                Logger() .Info("vdi gVerifier  = <not sho wn>");
  890                Logger() .Info("dic omImageGat ewayServer  = " + thi s.dicomIma geGatewayS erver);
  891                Logger() .Info("dic omImageGat ewayPort =  " + this. dicomImage GatewayPor t);
  892                Logger() .Info("div isionNumbe r = " + th is.divisio nNumber);
  893                Logger() .Info("dic omListener Enabled =  " + this.d icomListen erEnabled) ;
  894                Logger() .Info("arc hiveEnable d = " + th is.archive Enabled);
  895                Logger() .Info("ico nGeneratio nEnabled =  " + this. iconGenera tionEnable d);
  896                Logger() .Info("bhi eUserName  =  <not sh own>");
  897                Logger() .Info("bhi ePassword  =  <not sh own>");
  898                Logger() .Info("bhi eProtocol  = " + this .bhieProto col);
  899                Logger() .Info("hai msUserName  =  <not s hown>");
  900                Logger() .Info("hai msPassword  =  <not s hown>");
  901                Logger() .Info("hai msProtocol  = " + thi s.haimsPro tocol);
  902                Logger() .Info("nca tUserName  =  <not sh own>");
  903                Logger() .Info("nca tPassword  =  <not sh own>");
  904                Logger() .Info("nca tProtocol  = " + this .ncatProto col);
  905                Logger() .Info("sta tion200Use rName = "  + this.sta tion200Use rName);
  906                Logger() .Info("use OpenSslFor XCAConnect or = " + t his.useOpe nSslForXCA Connector) ;
  907                Logger() .Info("ren amedDeprec atedDcfRoo t = " + th is.renamed Deprecated DcfRoot);
  908                Logger() .Info("not ificationE mailAddres ess = " +  this.notif icationEma ilAddresse s);
  909                Logger() .Info("roi Accessor =   <not sho wn>");
  910                Logger() .Info("roi Verifier =   <not sho wn>");
  911                Logger() .Info("isL aurelBridg eRequired  = " + this .isLaurelB ridgeRequi red);
  912           }
  913  
  914           pu blic bool  HasRoiConf iguration( )
  915           {
  916                if (this .roiAccess or != null  && this.r oiVerifier  != null & & notifica tionEmailA ddresses ! = null)
  917                {
  918                    retu rn true;
  919                }
  920                else
  921                {
  922                    retu rn false;
  923                }
  924           }
  925  
  926           pu blic bool  HasLocalDo dConfigura tion()
  927           {
  928                if (loca lDodServer  != null & & localDod ServerPort  != null & & localDod SiteNumber  != null & &
  929                    loca lDodUserna me != null  && localD odPassword  != null)
  930                {
  931                    retu rn true;
  932                }
  933                else
  934                {
  935                    retu rn false;
  936                }
  937           }
  938  
  939           pu blic bool  HasDicomCo nfiguratio n()
  940           {
  941                if (dico mImageGate wayServer  != null &&  dicomImag eGatewayPo rt != null  && vdigAc cessor !=  null && vd igVerifier  != null & & notifica tionEmailA ddresses ! = null)
  942                {
  943                    retu rn true;
  944                }
  945                else
  946                {
  947                    retu rn false;
  948                }
  949           }
  950  
  951           pu blic bool  HasXcaConf iguration( )
  952           {
  953                bool con figured =  true;
  954                if (bhie Protocol = = null ||  haimsProto col == nul l || ncatP rotocol ==  null)
  955                {
  956                    conf igured = f alse;
  957                }
  958                if (bhie UserName ! = null &&  bhiePasswo rd == null )
  959                {
  960                    conf igured = f alse;
  961                }
  962                if (haim sUserName  != null &&  haimsPass word == nu ll)
  963                {
  964                    conf igured = f alse;
  965                }
  966                if (ncat UserName ! = null &&  ncatPasswo rd == null )
  967                {
  968                    conf igured = f alse;
  969                }
  970                return c onfigured;
  971           }
  972  
  973           pu blic void  ToXml()
  974           {
  975                //Logger ().Info("C onfigurati on state b efore pers isting");
  976                //this.L ogConfigSt ate();
  977                XmlSeria lizer seri alizer = n ull;
  978                //FileSt ream strea m = null;
  979                Debug.As sert(this. configDir  != null);
  980                Debug.As sert(Direc tory.Exist s(this.con figDir));
  981                String f ilepsec =  Path.Combi ne(this.co nfigDir, V IX_INSTALL ER_CONFIG_ FILENAME);
  982                XmlDocum ent doc =  new XmlDoc ument();
  983                doc.Pres erveWhites pace = tru e;
  984                TripleDE SDocumentE ncryption  cryptotron  = null;
  985                MemorySt ream strea m = null;
  986  
  987                try
  988                {
  989                    // C reate a se rializer f or the Sai lboat type
  990                    seri alizer = n ew XmlSeri alizer(thi s.GetType( ));
  991                    // C reate a ne w writable  FileStrea m, using t he path pa ssed
  992                    // a s a parame ter.
  993                    //st ream = new  FileStrea m(filepsec , FileMode .Create, F ileAccess. Write);
  994                    stre am = new M emoryStrea m();
  995                    seri alizer.Ser ialize(str eam, this) ;
  996                    stre am.Positio n = 0;
  997                    doc. Load(strea m);
  998                    cryp totron = n ew TripleD ESDocument Encryption (doc);
  999                    cryp totron.Enc rypt("Fede rationKeys torePasswo rd");
  1000                    cryp totron.Enc rypt("Fede rationTrus tstorePass word");
  1001                    cryp totron.Enc rypt("BiaP assword");
  1002                    cryp totron.Enc rypt("BiaU sername");
  1003                    cryp totron.Enc rypt("Apac hetomcatpa ssword1");
  1004                    cryp totron.Enc rypt("Apac hetomcatpa ssword2");
  1005                    cryp totron.Enc rypt("Tomc atAdminPas sword");
  1006                    cryp totron.Enc rypt("Imag ingService AccountUse rname");
  1007                    cryp totron.Enc rypt("Imag ingService AccountPas sword");                  
  1008                    cryp totron.Enc rypt("Vdig Accessor") ;
  1009                    cryp totron.Enc rypt("Vdig Verifier") ;
  1010                    cryp totron.Enc rypt("Bhie UserName") ;
  1011                    cryp totron.Enc rypt("Bhie Password") ;
  1012                    cryp totron.Enc rypt("Haim sUserName" );
  1013                    cryp totron.Enc rypt("Haim sPassword" );
  1014                    cryp totron.Enc rypt("Ncat UserName") ;
  1015                    cryp totron.Enc rypt("Ncat Password") ;
  1016                    cryp totron.Enc rypt("Stat ion200User Name");
  1017                    cryp totron.Enc rypt("roiV erifier");
  1018                    cryp totron.Enc rypt("roiA ccessor");
  1019                    doc. Save(filep sec);
  1020                }
  1021                finally
  1022                {
  1023                    if ( stream !=  null)
  1024                    {
  1025                         stream.Clo se();
  1026                    }
  1027                }
  1028           }
  1029  
  1030  
  1031           #e ndregion
  1032  
  1033           #r egion publ ic static  methods
  1034           // / <summary >
  1035           //
  1036           // / </summar y>
  1037           // / <param n ame="newPr oductVersi on"></para m>
  1038           // / <param n ame="keySt orePasswor d"></param >
  1039           // / <param n ame="trust StorePassw ord"></par am>
  1040           // / <returns ></returns >
  1041           pu blic stati c VixConfi gurationPa rameters G etVixConfi guration(s tring newP roductVers ion, strin g keyStore Password,  string tru stStorePas sword, boo l isPatch)
  1042           {
  1043                VixConfi gurationPa rameters c onfig = nu ll;
  1044  
  1045   ///             if (V ixFacade.I sVixConfig ured() ||  VixConfigu rationPara meters.IsV ixInstalle rConfigure d()) // us e the exis ting ViX c onfigurati on if it e xists
  1046                if (VixC onfigurati onParamete rs.IsVixIn stallerCon figured())  // use th e existing  ViX confi guration i f it exist s
  1047                    {
  1048                    if ( ClusterFac ade.IsServ erClusterN ode())
  1049                    {
  1050                         Logger().I nfo(Enviro nment.Mach ineName +  " belongs  to a High  Availibili ty Cluster ");
  1051                    }
  1052                    else
  1053                    {
  1054                         Logger().I nfo(Enviro nment.Mach ineName +  " is a Sin gle Server  VIX insta llation");
  1055                    }
  1056                    conf ig = VixCo nfiguratio nParameter s.FromXml( VixFacade. GetVixConf igurationD irectory() ); //, key StorePassw ord, trust StorePassw ord);
  1057                    conf ig.Previou sProductVe rsionProp  = config.P roductVers ionProp;
  1058                    conf ig.Product VersionPro p = newPro ductVersio n;
  1059                    Logg er().Info( "Existing  VIX deploy ment of ty pe " + con fig.VixDep loymentOpt ion.ToStri ng() + " f or server  " + Enviro nment.Mach ineName);
  1060                }
  1061                else if  (ClusterFa cade.IsSer verCluster Node() &&  VixFacade. GetExistin gFocVixCon figuration Dir() != n ull)
  1062                {
  1063                    //De bug.Assert (VixConfig urationPar ameters.Is VixInstall erConfigur ed()); - n ot true fo r initial  install of  2nf foc n ode
  1064                    Logg er().Info( Environmen t.MachineN ame + " be longs to a  High Avai libility C luster - s econd node  new insta llation");
  1065                    stri ng configD ir = VixFa cade.GetEx istingFocV ixConfigur ationDir() ;
  1066                    Debu g.Assert(c onfigDir ! = null);
  1067                    conf ig = VixCo nfiguratio nParameter s.FromXml( configDir) ; //, keyS torePasswo rd, trustS torePasswo rd);
  1068                    conf ig.VixServ erNameProp  = Environ ment.Machi neName;
  1069                    conf ig.Product VersionPro p = newPro ductVersio n; //Previ ousProduct Version ==  null
  1070                }
  1071                else //  new instal lation
  1072                {
  1073                    conf ig = new V ixConfigur ationParam eters(newP roductVers ion, keySt orePasswor d, trustSt orePasswor d);
  1074                }
  1075                config.I sPatch = i sPatch;
  1076  
  1077                // null  out site i nformation  (except f or number)  informati on so we m ust prompt  for it ag ain (site  service re fresh)
  1078                // this  is not don e if he Vi xPatchingU tility is  used
  1079                if (!con fig.isPatc h)
  1080                {
  1081                    conf ig.vistaSe rverName =  null;
  1082                    conf ig.vistaSe rverPort =  null;
  1083                    conf ig.siteAbb reviation  = null;
  1084                    conf ig.siteNam e = null;
  1085                }
  1086  
  1087                // chang e existing  VIXen ove r to the V ixLimitedS izePrototy pe
  1088                if (conf ig.vixCach eOption ==  VixCacheT ype.NotSpe cified)
  1089                {
  1090                    conf ig.vixCach eOption =  GetVixCach eTypeByDep loymentOpt ion(config .VixDeploy mentOption ); // use  property t hat gets t he deploym ent option  based on  machine na me
  1091                }
  1092  
  1093                Logger() .Info("Con figuration  state aft er initial ization");
  1094                config.L ogConfigSt ate();
  1095                return c onfig;
  1096           }
  1097  
  1098           #e ndregion
  1099  
  1100           #r egion priv ate method s
  1101  
  1102           // / <summary >
  1103           // / Migrate  between ol der versio ns of the  VixConfigu rationPara meters to  the curren t version.
  1104           // / </summar y>
  1105           pr ivate void  migrate()
  1106           {
  1107                if (this .vixRole = = VixRoleT ype.NotSpe cified)
  1108                {
  1109                    if ( this.Produ ctVersionP rop.Starts With("30.8 3"))
  1110                    {
  1111                         this.vixRo le = VixRo leType.Sit eVix;
  1112                    }
  1113                }
  1114           }
  1115  
  1116           // / <summary >
  1117           //
  1118           // / </summar y>
  1119           // / <param n ame="deplo ymentOptio n"></param >
  1120           // / <returns ></returns >
  1121           pr ivate stat ic VixCach eType GetV ixCacheTyp eByDeploym entOption( VixDeploym entType de ploymentOp tion)
  1122           {
  1123                VixCache Type vixCa cheOption  = VixCache Type.NotSp ecified;
  1124                switch ( deployment Option)
  1125                {
  1126                    case  VixDeploy mentType.S ingleServe r:
  1127                    case  VixDeploy mentType.F ocClusterN ode:
  1128                    //ca se VixDepl oymentType .CvixFocCl usterNode:
  1129                         vixCacheOp tion = Vix CacheType. ExchangeTi meEviction LocalFiles ystem;
  1130                         break;
  1131                }
  1132                Debug.As sert(vixCa cheOption  != VixCach eType.NotS pecified);
  1133                return v ixCacheOpt ion;
  1134           }
  1135  
  1136           // / <summary >
  1137           // / For new  installati ons, deter mine the d eployment  type from  the curren t server.  We are sma rt.
  1138           // / </summar y>
  1139           // / <returns ></returns >
  1140           pr ivate stat ic VixDepl oymentType  Determine Deployment TypeForSer ver()
  1141           {
  1142                VixDeplo ymentType  deployment Type = Vix Deployment Type.NotSp ecified;
  1143  
  1144                //if (Bu sinessFaca de.IsWindo wsXP())
  1145                //{
  1146                //    de ploymentTy pe = VixDe ploymentTy pe.SingleS erver;
  1147                //}
  1148                if (Clus terFacade. IsServerCl usterNode( ))
  1149                {
  1150                    depl oymentType  = VixDepl oymentType .FocCluste rNode; //  DKB - 5/10 /2011 - re move last  vestiges o f pre-mani fest insta ller
  1151                }
  1152                else
  1153                {
  1154                    depl oymentType  = VixDepl oymentType .SingleSer ver; // DK B - 5/10/2 011 - remo ve last ve stiges of  pre-manife st install er
  1155                }
  1156  
  1157                return d eploymentT ype;
  1158           }
  1159  
  1160           // / <summary >
  1161           // / Loads th e persiste d state of  the VixCo nfiguratio nParameter s object
  1162           // / </summar y>
  1163           // / <param n ame="vixCo nfigDir">< /param>
  1164           // / <returns >an initia lized VixC onfigurati onParamete rs object  or null if  persisted  state cou ld not be  found </re turns>
  1165           pu blic stati c VixConfi gurationPa rameters F romXml(Str ing vixCon figDir) // , string k eyStorePas sword, str ing trustS torePasswo rd)
  1166           {
  1167                XmlSeria lizer seri alizer = n ull;
  1168                VixConfi gurationPa rameters c onfig = nu ll;
  1169                String f ilespec =  Path.Combi ne(vixConf igDir, VIX _INSTALLER _CONFIG_FI LENAME);
  1170  
  1171                if (File .Exists(fi lespec)) / / no encry ption
  1172                {
  1173                    XmlD ocument do c = new Xm lDocument( );
  1174                    doc. PreserveWh itespace =  true;
  1175                    Trip leDESDocum entEncrypt ion crypto tron = nul l;
  1176                    Memo ryStream s tream = nu ll;
  1177  
  1178                    try
  1179                    {
  1180                         config = n ew VixConf igurationP arameters( );
  1181                         doc.Load(f ilespec);
  1182                         cryptotron  = new Tri pleDESDocu mentEncryp tion(doc);
  1183                         cryptotron .Decrypt() ;
  1184                         stream = n ew MemoryS tream();
  1185                         //doc.Save (Path.Comb ine(vixCon figDir, "f oo.xml"));
  1186                         doc.Save(s tream);
  1187                         stream.Pos ition = 0;
  1188                         serializer  = new Xml Serializer (config.Ge tType());
  1189                         config = ( VixConfigu rationPara meters)ser ializer.De serialize( stream);
  1190                    }
  1191                    fina lly
  1192                    {
  1193                         if (stream  != null)
  1194                         {
  1195                             stream .Close();
  1196                         }
  1197                    }
  1198                    conf ig.migrate ();
  1199                }
  1200  
  1201                return c onfig;
  1202           }
  1203  
  1204           // / <summary >
  1205           //
  1206           // / </summar y>
  1207           // / <param n ame="vixCo nfigDir">< /param>
  1208           // / <returns ></returns >
  1209           pu blic stati c void Fro mXmlToFile (String vi xConfigDir )
  1210           {
  1211                String f ilespec =  Path.Combi ne(vixConf igDir, VIX _INSTALLER _CONFIG_FI LENAME);
  1212  
  1213                if (File .Exists(fi lespec)) / / no encry ption
  1214                {
  1215                    XmlD ocument do c = new Xm lDocument( );
  1216                    doc. PreserveWh itespace =  true;
  1217                    Trip leDESDocum entEncrypt ion crypto tron = nul l;
  1218                    doc. Load(files pec);
  1219                    cryp totron = n ew TripleD ESDocument Encryption (doc);
  1220                    cryp totron.Dec rypt();
  1221                    doc. Save(Path. Combine(vi xConfigDir , "foo.xml "));
  1222                }
  1223           }
  1224  
  1225           // / <summary >
  1226           //
  1227           // / </summar y>
  1228           // / <returns ></returns >
  1229           pr ivate stat ic bool Is VixInstall erConfigur ed()
  1230           {
  1231                bool isC onfigured  = false;
  1232  
  1233                String v ixConfigDi r = Enviro nment.GetE nvironment Variable(" vixconfig" , Environm entVariabl eTarget.Ma chine);
  1234                if (vixC onfigDir ! = null)
  1235                {
  1236                    Stri ng vixConf igPlainTex tFilepath  = Path.Com bine(vixCo nfigDir, V IX_INSTALL ER_CONFIG_ FILENAME);
  1237                    Stri ng vixConf igFilepath  = Path.Co mbine(vixC onfigDir,  VIX_INSTAL LER_CONFIG _FILENAME) ;
  1238                    if ( File.Exist s(vixConfi gPlainText Filepath)  || File.Ex ists(vixCo nfigFilepa th))
  1239                    {
  1240                         isConfigur ed = true;
  1241                    }
  1242                }
  1243  
  1244                return i sConfigure d;
  1245           }
  1246           #e ndregion
  1247  
  1248           cl ass Triple DESDocumen tEncryptio n
  1249           {
  1250                private  XmlDocumen t xmlDoc;
  1251                private  TripleDES  algorithm;
  1252  
  1253                public T ripleDESDo cumentEncr yption(Xml Document d oc)
  1254                {
  1255                    byte [] key = {  58, 250,  251, 44, 1 87, 30, 17 6, 28, 199 , 140, 220 , 19, 159,  244, 226,  217, 38,  217, 231,  178, 117,  188, 225,  43 };
  1256                    byte [] iv = {  34, 15, 64 , 79, 93,  70, 14, 16 1 };
  1257                    if ( doc != nul l)
  1258                    {
  1259                         xmlDoc = d oc;
  1260                    }
  1261                    else
  1262                    {
  1263                         throw new  ArgumentNu llExceptio n("Doc");
  1264                    }
  1265  
  1266                    algo rithm = ne w TripleDE SCryptoSer viceProvid er();
  1267                    algo rithm.Key  = key;
  1268                    algo rithm.IV =  iv;
  1269                }
  1270  
  1271                public v oid Encryp t(string e lementName )
  1272                {
  1273                    // F ind the el ement by n ame and cr eate a new
  1274                    // X mlElement  object.
  1275                    XmlE lement inp utElement  = xmlDoc.G etElements ByTagName( elementNam e)[0] as X mlElement;
  1276  
  1277                    // I f the elem ent was no t found, w e're done.
  1278                    if ( inputEleme nt == null )
  1279                    {
  1280                         return; //  this is b ecause the  XmlSerial izer does  not create  elements  with defau lt values
  1281                    }
  1282  
  1283                    // C reate a ne w Encrypte dXml objec t.
  1284                    Encr yptedXml e xml = new  EncryptedX ml(xmlDoc) ;
  1285  
  1286                    // E ncrypt the  element u sing the s ymmetric k ey.
  1287                    byte [] rgbOutp ut = exml. EncryptDat a(inputEle ment, algo rithm, fal se);
  1288  
  1289                    // C reate an E ncryptedDa ta object  and popula te it.
  1290                    Encr yptedData  ed = new E ncryptedDa ta();
  1291  
  1292                    // S pecify the  namespace  URI for X ML encrypt ion elemen ts.
  1293                    ed.T ype = Encr yptedXml.X mlEncEleme ntUrl;
  1294  
  1295                    // S pecify the  namespace  URI for t he Tripple DES algori thm.
  1296                    ed.E ncryptionM ethod = ne w Encrypti onMethod(E ncryptedXm l.XmlEncTr ipleDESUrl );
  1297  
  1298                    // C reate a Ci pherData e lement.
  1299                    ed.C ipherData  = new Ciph erData();
  1300  
  1301                    // S et the Cip herData el ement to t he value o f the encr ypted XML  element.
  1302                    ed.C ipherData. CipherValu e = rgbOut put;
  1303  
  1304                    // R eplace the  plaintext  XML elemn t with an  EncryptedD ata elemen t.
  1305                    Encr yptedXml.R eplaceElem ent(inputE lement, ed , false);
  1306                }
  1307  
  1308                public v oid Decryp t()
  1309                {
  1310                    XmlE lement enc ryptedElem ent = null ;
  1311                    whil e ((encryp tedElement  = xmlDoc. GetElement sByTagName ("Encrypte dData")[0]  as XmlEle ment) != n ull)
  1312                    {
  1313                         // Create  an Encrypt edData obj ect and po pulate it.
  1314                         EncryptedD ata ed = n ew Encrypt edData();
  1315                         ed.LoadXml (encrypted Element);
  1316  
  1317                         // Create  a new Encr yptedXml o bject.
  1318                         EncryptedX ml exml =  new Encryp tedXml();
  1319  
  1320                         // Decrypt  the eleme nt using t he symmetr ic key.
  1321                         byte[] rgb Output = e xml.Decryp tData(ed,  algorithm) ;
  1322  
  1323                         // Replace  the encry ptedData e lement wit h the plai ntext XML  elemnt.
  1324                         exml.Repla ceData(enc ryptedElem ent, rgbOu tput);
  1325                    }
  1326                }
  1327  
  1328           }
  1329  
  1330       }
  1331   }