public string[] SummaryOfConjunctionsFromSecondaryStates()
        {
            bool tlePSuccess = this.Primary.StkTleSatellitePath != null;
            bool cdmPSuccess = this.Primary.StkCdmSatellitePath != null;
            bool ephPSuccess = this.Primary.StkEphSatellitePath != null;

            string primary = ephPSuccess ? this.Primary.StkEphSatellitePath : cdmPSuccess ? this.Primary.StkCdmSatellitePath : this.Primary.StkTleSatellitePath;

            bool tleSSuccess = this.Secondary.StkTleSatellitePath != null;
            bool cdmSSuccess = this.Secondary.StkCdmSatellitePath != null;
            bool ephSSuccess = this.Secondary.StkEphSatellitePath != null;

            List <string> secondaries = new List <string>();

            if (ephSSuccess)
            {
                secondaries.Add(this.Secondary.StkEphSatellitePath);
            }
            if (tleSSuccess)
            {
                secondaries.Add(this.Secondary.StkTleSatellitePath);
            }
            if (cdmSSuccess)
            {
                secondaries.Add(this.Secondary.StkCdmSatellitePath);
            }

            string        primaryType = primary.Equals(this.Primary.StkEphSatellitePath) ? "Ephemeris" : primary.Equals(this.Primary.StkTleSatellitePath) ? "TLE" : primary.Equals(this.Primary.StkCdmSatellitePath) ? "CDM" : null;
            List <string> result      = new List <string>();

            if (primary != null && secondaries.Count > 0)
            {
                string[] pplNames = secondaries.Select(s =>
                                                       s.Equals(this.Secondary.StkEphSatellitePath) ? "Ephemeris"
                : s.Equals(this.Secondary.StkTleSatellitePath) ? "TLE"
                : s.Equals(this.Secondary.StkCdmSatellitePath) ? "CDM" : null).ToArray();
                for (int i = 0; i < secondaries.Count; i++)
                {
                    string   second             = secondaries[i];
                    object[] primaryToSecondary = StateCompare.GetTcaRangeInfo(primary, second);
                    result.Add("Primary " + primaryType + " to Secondary " + pplNames[i] + " = TCA " + primaryToSecondary[0].ToString() + " : Range (m) " + ((double)primaryToSecondary[1]).ToString("0.##"));
                }
                return(result.ToArray());
            }

            return(null);
        }
        public string[] SummaryOfCdmTleComparison()
        {
            if (Primary.StkTleSatellitePath != null &&
                Primary.StkCdmSatellitePath != null &&
                Secondary.StkCdmSatellitePath != null &&
                Secondary.StkTleSatellitePath != null)
            {
                object[] cdmCdmtca = StateCompare.GetTcaRangeInfo(this.Primary.StkCdmSatellitePath, this.Secondary.StkCdmSatellitePath);
                object[] cdmTletca = StateCompare.GetTcaRangeInfo(this.Primary.StkCdmSatellitePath, this.Secondary.StkTleSatellitePath);
                object[] tleCdmtca = StateCompare.GetTcaRangeInfo(this.Primary.StkTleSatellitePath, this.Secondary.StkCdmSatellitePath);
                object[] tleTletca = StateCompare.GetTcaRangeInfo(this.Primary.StkTleSatellitePath, this.Secondary.StkTleSatellitePath);

                List <string> result = new List <string>();
                result.Add("Primary CDM to Secondary CDM : TCA " + cdmCdmtca[0].ToString() + " - Range (m) " + ((double)cdmCdmtca[1]).ToString("0.##"));
                result.Add("Primary CDM to Secondary TLE : TCA " + cdmTletca[0].ToString() + " - Range (m) " + ((double)cdmTletca[1]).ToString("0.##"));
                result.Add("Primary TLE to Secondary CDM : TCA " + tleCdmtca[0].ToString() + " - Range (m) " + ((double)tleCdmtca[1]).ToString("0.##"));
                result.Add("Primary TLE to Secondary TLE : TCA " + tleTletca[0].ToString() + " - Range (m) " + ((double)tleTletca[1]).ToString("0.##"));

                return(result.ToArray());
            }
            return(null);
        }