private void cbSelectSystem_SelectionChanged( object sender, SelectionChangedEventArgs e )
 {
     _loadedSystem = null;
     TvSystem.Items.Clear();
     LoadCompleteSystem();
     SetupTreeView();
     //TODOLOW Fix the Display of Empty Orbitals
 }
 private void LoadCompleteSystem()
 {
     if (CbSelectSystem.SelectedItem == null)
     {
     }
     else
     {
         var context = new Db1Entities();
         context.Configuration.ProxyCreationEnabled = false;
         var query = ( from p in context.StarSystems.Include("Stars").Include("Stars").Include("Stars.Planets").Include("Stars.Planets.InnerMoonlets1").Include("Stars.Planets.OuterMoonlets1").Include("Stars.Planets.MajorMoons1")
             where p.Id == (int) CbSelectSystem.SelectedValue
             select p ).FirstOrDefault();
         _loadedSystem = query;
     }
 }
Beispiel #3
0
        public static void InsertSystem(StarSystem system)
        {
            using (var context = new Db1Entities())
            {
                var newSystem = new StarSystems
                {
                    sysName                = system.SysName,
                    habitableZones         = system.HabitableZones.Count,
                    maxMass                = system.MaxMass,
                    numDwarfPlanets        = system.NumDwarfPlanets,
                    star2index             = system.Star2Index,
                    star3index             = system.Star3Index,
                    subCompanionStar2index = system.SubCompanionStar2Index,
                    subCompanionStar3index = system.SubCompanionStar3Index,
                    sysAge   = system.SysAge,
                    sysStars = system.SysStars.Count
                };
                foreach (var star in system.SysStars)
                {
                    var newStar = new Stars
                    {
                        currLumin       = Math.Round(star.CurrLumin, 4),
                        distFromPrimary = star.DistFromPrimary,
                        effTemp         = Math.Round(star.EffTemp, 4),
                        gasGiantFlag    = star.GasGiantFlag,
                        initLumin       = star.InitLumin,
                        initMass        = star.InitMass,
                        isFlareStar     = star.IsFlareStar,
                        name            = star.Name,
                        orbitalEccent   = star.OrbitalEccent,
                        orbitalPeriod   = Math.Round(star.OrbitalPeriod, 4),
                        orbitalRadius   = star.OrbitalRadius,
                        orbitalSep      = star.OrbitalSep,
                        orderID         = star.OrderId,
                        parentID        = star.ParentId,
                        parentName      = star.ParentName,
                        radius          = Math.Round(star.GetRadiusAu(), 4),
                        selfID          = star.SelfId,
                        specType        = star.SpecType,
                        starAge         = star.StarAge,
                        starColor       = star.StarColor,
                        sysPlanets      = star.SysPlanets.Count,
                        StarOrder       = Star.GetDescFromFlag(star.SelfId)
                    };
                    newStar.StarOrder      = star.ReturnCurrentBranchDesc();
                    newStar.OrbitalDetails = star.PrintOrbitalDetails();
                    newStar.StarString     = star.ToString();

                    foreach (var sat in star.SysPlanets)
                    {
                        var newSatellite = new Planets();
                        var type         = "";
                        var pressure     = "";
                        if (OptionCont.ExpandAsteroidBelt != null && (sat.BaseType != Satellite.BasetypeAsteroidbelt || (bool)OptionCont.ExpandAsteroidBelt))
                        {
                            type = sat.DescSizeType();
                        }
                        if (sat.BaseType == Satellite.BasetypeAsteroidbelt)
                        {
                            type = "Asteroid Belt";
                        }

                        if (sat.BaseType == Satellite.BasetypeAsteroidbelt)
                        {
                            pressure = "None.";
                        }

                        if (sat.BaseType == Satellite.BasetypeGasgiant)
                        {
                            pressure = "Superdense Atmosphere.";
                        }

                        if (sat.BaseType == Satellite.BasetypeMoon || sat.BaseType == Satellite.BasetypeTerrestial)
                        {
                            pressure = sat.GetDescAtmCategory() + "(" + Math.Round(sat.AtmPres, 2) + ")";
                        }

                        newSatellite.SatelliteSize    = sat.SatelliteSize;
                        newSatellite.SatelliteType    = sat.SatelliteType;
                        newSatellite.atmCate          = sat.AtmCate.Count;
                        newSatellite.atmMass          = sat.AtmMass;
                        newSatellite.atmPres          = pressure;
                        newSatellite.axialTilt        = sat.AxialTilt;
                        newSatellite.baseType         = sat.BaseType;
                        newSatellite.blackbodyTemp    = sat.BlackbodyTemp;
                        newSatellite.dayFaceMod       = Convert.ToInt32(sat.DayFaceMod);
                        newSatellite.density          = sat.Density;
                        newSatellite.diameter         = Math.Round(sat.DiameterInKm(), 2);
                        newSatellite.gravity          = Math.Round(sat.Gravity * Satellite.Gforce, 2);
                        newSatellite.hydCoverage      = sat.HydCoverage * 100 + "%";
                        newSatellite.innerMoonlets    = sat.InnerMoonlets.Count;
                        newSatellite.isResonant       = sat.IsResonant;
                        newSatellite.isTideLocked     = sat.IsTideLocked;
                        newSatellite.majorMoons       = sat.MajorMoons.Count;
                        newSatellite.mass             = sat.Mass;
                        newSatellite.masterOrderID    = sat.MasterOrderId;
                        newSatellite.moonRadius       = sat.MoonRadius;
                        newSatellite.name             = sat.Name;
                        newSatellite.nightFaceMod     = Convert.ToInt32(sat.NightFaceMod);
                        newSatellite.orbitalCycle     = sat.OrbitalCycle;
                        newSatellite.orbitalEccent    = sat.OrbitalEccent;
                        newSatellite.orbitalPeriod    = sat.OrbitalPeriod;
                        newSatellite.orbitalRadius    = Math.Round(sat.OrbitalRadius, 2);
                        newSatellite.outerMoonlets    = sat.OuterMoonlets.Count;
                        newSatellite.parentDiam       = sat.ParentDiam;
                        newSatellite.parentID         = sat.ParentId;
                        newSatellite.parentName       = sat.ParentName;
                        newSatellite.retrogradeMotion = sat.RetrogradeMotion;
                        newSatellite.rotationalPeriod = sat.RotationalPeriod;
                        newSatellite.selfID           = sat.SelfId;
                        newSatellite.siderealPeriod   = sat.SiderealPeriod;
                        newSatellite.surfaceTemp      = sat.SurfaceTemp;
                        newSatellite.tecActivity      = sat.TecActivity;
                        newSatellite.tideTotal        = sat.TideTotal;
                        newSatellite.volActivity      = sat.VolActivity;
                        newSatellite.sattype          = type;
                        newSatellite.atmnote          = sat.DescAtm();
                        newSatellite.RVM          = sat.GetRvmDesc();
                        newSatellite.planetString = sat.ToString();

                        foreach (var innerMoonlet in sat.InnerMoonlets)
                        {
                            var newInnerMoonlet = new InnerMoonlets
                            {
                                blackbodyTemp   = innerMoonlet.BlackbodyTemp,
                                name            = innerMoonlet.Name,
                                orbitalEccent   = innerMoonlet.OrbitalEccent,
                                orbitalPeriod   = innerMoonlet.OrbitalPeriod,
                                orbitalRadius   = Math.Round(innerMoonlet.OrbitalRadius, 2),
                                parentID        = innerMoonlet.ParentId,
                                parentName      = innerMoonlet.ParentName,
                                planetRadius    = innerMoonlet.PlanetRadius,
                                selfID          = innerMoonlet.SelfId,
                                innerMoonString = innerMoonlet.ToString()
                            };
                            newSatellite.InnerMoonlets1.Add(newInnerMoonlet);
                        }
                        foreach (var outerMoonlet in sat.OuterMoonlets)
                        {
                            var newOuterMoonlet = new OuterMoonlets
                            {
                                blackbodyTemp   = outerMoonlet.BlackbodyTemp,
                                name            = outerMoonlet.Name,
                                orbitalEccent   = outerMoonlet.OrbitalEccent,
                                orbitalPeriod   = outerMoonlet.OrbitalPeriod,
                                orbitalRadius   = Math.Round(outerMoonlet.OrbitalRadius, 2),
                                parentID        = outerMoonlet.ParentId,
                                parentName      = outerMoonlet.ParentName,
                                planetRadius    = outerMoonlet.PlanetRadius,
                                selfID          = outerMoonlet.SelfId,
                                outerMoonString = outerMoonlet.ToString()
                            };
                            newSatellite.OuterMoonlets1.Add(newOuterMoonlet);
                        }
                        foreach (var majorMoon in sat.MajorMoons)
                        {
                            var newMajorMoon = new MajorMoons
                            {
                                RVM              = majorMoon.Rvm,
                                SatelliteSize    = majorMoon.SatelliteSize,
                                SatelliteType    = majorMoon.SatelliteType,
                                atmCate          = majorMoon.AtmCate.Count,
                                atmMass          = majorMoon.AtmMass,
                                axialTilt        = majorMoon.AxialTilt,
                                baseType         = majorMoon.BaseType,
                                blackbodyTemp    = majorMoon.BlackbodyTemp,
                                dayFaceMod       = Convert.ToInt32(majorMoon.DayFaceMod),
                                density          = majorMoon.Density,
                                diameter         = Math.Round(majorMoon.DiameterInKm(), 2),
                                gravity          = Math.Round(majorMoon.Gravity * Satellite.Gforce, 2),
                                hydCoverage      = sat.HydCoverage * 100 + "%",
                                innerMoonlets    = majorMoon.InnerMoonlets.Count,
                                isResonant       = majorMoon.IsResonant,
                                isTideLocked     = majorMoon.IsTideLocked,
                                majorMoons1      = majorMoon.MajorMoons.Count,
                                mass             = majorMoon.Mass,
                                moonRadius       = majorMoon.MoonRadius,
                                name             = majorMoon.Name,
                                nightFaceMod     = Convert.ToInt32(majorMoon.NightFaceMod),
                                orbitalCycle     = majorMoon.OrbitalCycle,
                                orbitalEccent    = majorMoon.OrbitalEccent,
                                orbitalPeriod    = majorMoon.OrbitalPeriod,
                                orbitalRadius    = Math.Round(majorMoon.OrbitalRadius, 2),
                                outerMoonlets    = majorMoon.OuterMoonlets.Count,
                                parentDiam       = majorMoon.ParentDiam,
                                parentID         = majorMoon.ParentId,
                                parentName       = majorMoon.ParentName,
                                retrogradeMotion = majorMoon.RetrogradeMotion,
                                rotationalPeriod = majorMoon.RotationalPeriod,
                                selfID           = majorMoon.SelfId,
                                siderealPeriod   = majorMoon.SiderealPeriod,
                                surfaceTemp      = majorMoon.SurfaceTemp,
                                tecActivity      = majorMoon.TecActivity,
                                tideForce        = majorMoon.TideForce.Count,
                                tideTotal        = majorMoon.TideTotal,
                                volActivity      = majorMoon.VolActivity,
                                MajorMoonString  = majorMoon.ToString()
                            };
                            newSatellite.MajorMoons1.Add(newMajorMoon);
                        }
                        newStar.Planets.Add(newSatellite);
                    }
                    context.Stars.Add(newStar);
                }
                context.StarSystems.Add(newSystem);
                context.SaveChanges();
            }
        }
Beispiel #4
0
        public static void InsertSystem( StarSystem system )
        {
            using (var context = new Db1Entities())
            {
                var newSystem = new StarSystems
                {
                    sysName = system.SysName,
                    habitableZones = system.HabitableZones.Count,
                    maxMass = system.MaxMass,
                    numDwarfPlanets = system.NumDwarfPlanets,
                    star2index = system.Star2Index,
                    star3index = system.Star3Index,
                    subCompanionStar2index = system.SubCompanionStar2Index,
                    subCompanionStar3index = system.SubCompanionStar3Index,
                    sysAge = system.SysAge,
                    sysStars = system.SysStars.Count
                };
                foreach (var star in system.SysStars)
                {
                    var newStar = new Stars
                    {
                        currLumin = Math.Round(star.CurrLumin, 4),
                        distFromPrimary = star.DistFromPrimary,
                        effTemp = Math.Round(star.EffTemp, 4),
                        gasGiantFlag = star.GasGiantFlag,
                        initLumin = star.InitLumin,
                        initMass = star.InitMass,
                        isFlareStar = star.IsFlareStar,
                        name = star.Name,
                        orbitalEccent = star.OrbitalEccent,
                        orbitalPeriod = Math.Round(star.OrbitalPeriod, 4),
                        orbitalRadius = star.OrbitalRadius,
                        orbitalSep = star.OrbitalSep,
                        orderID = star.OrderId,
                        parentID = star.ParentId,
                        parentName = star.ParentName,
                        radius = Math.Round(star.GetRadiusAu(), 4),
                        selfID = star.SelfId,
                        specType = star.SpecType,
                        starAge = star.StarAge,
                        starColor = star.StarColor,
                        sysPlanets = star.SysPlanets.Count,
                        StarOrder = Star.GetDescFromFlag(star.SelfId)
                    };
                    newStar.StarOrder = star.ReturnCurrentBranchDesc();
                    newStar.OrbitalDetails = star.PrintOrbitalDetails();
                    newStar.StarString = star.ToString();

                    foreach (var sat in star.SysPlanets)
                    {
                        var newSatellite = new Planets();
                        var type = "";
                        var pressure = "";
                        if (OptionCont.ExpandAsteroidBelt != null && ( sat.BaseType != Satellite.BasetypeAsteroidbelt || (bool) OptionCont.ExpandAsteroidBelt ))
                        {
                            type = sat.DescSizeType();
                        }
                        if (sat.BaseType == Satellite.BasetypeAsteroidbelt)
                        {
                            type = "Asteroid Belt";
                        }

                        if (sat.BaseType == Satellite.BasetypeAsteroidbelt)
                        {
                            pressure = "None.";
                        }

                        if (sat.BaseType == Satellite.BasetypeGasgiant)
                        {
                            pressure = "Superdense Atmosphere.";
                        }

                        if (sat.BaseType == Satellite.BasetypeMoon || sat.BaseType == Satellite.BasetypeTerrestial)
                        {
                            pressure = sat.GetDescAtmCategory() + "(" + Math.Round(sat.AtmPres, 2) + ")";
                        }

                        newSatellite.SatelliteSize = sat.SatelliteSize;
                        newSatellite.SatelliteType = sat.SatelliteType;
                        newSatellite.atmCate = sat.AtmCate.Count;
                        newSatellite.atmMass = sat.AtmMass;
                        newSatellite.atmPres = pressure;
                        newSatellite.axialTilt = sat.AxialTilt;
                        newSatellite.baseType = sat.BaseType;
                        newSatellite.blackbodyTemp = sat.BlackbodyTemp;
                        newSatellite.dayFaceMod = Convert.ToInt32(sat.DayFaceMod);
                        newSatellite.density = sat.Density;
                        newSatellite.diameter = Math.Round(sat.DiameterInKm(), 2);
                        newSatellite.gravity = Math.Round(sat.Gravity * Satellite.Gforce, 2);
                        newSatellite.hydCoverage = sat.HydCoverage * 100 + "%";
                        newSatellite.innerMoonlets = sat.InnerMoonlets.Count;
                        newSatellite.isResonant = sat.IsResonant;
                        newSatellite.isTideLocked = sat.IsTideLocked;
                        newSatellite.majorMoons = sat.MajorMoons.Count;
                        newSatellite.mass = sat.Mass;
                        newSatellite.masterOrderID = sat.MasterOrderId;
                        newSatellite.moonRadius = sat.MoonRadius;
                        newSatellite.name = sat.Name;
                        newSatellite.nightFaceMod = Convert.ToInt32(sat.NightFaceMod);
                        newSatellite.orbitalCycle = sat.OrbitalCycle;
                        newSatellite.orbitalEccent = sat.OrbitalEccent;
                        newSatellite.orbitalPeriod = sat.OrbitalPeriod;
                        newSatellite.orbitalRadius = Math.Round(sat.OrbitalRadius, 2);
                        newSatellite.outerMoonlets = sat.OuterMoonlets.Count;
                        newSatellite.parentDiam = sat.ParentDiam;
                        newSatellite.parentID = sat.ParentId;
                        newSatellite.parentName = sat.ParentName;
                        newSatellite.retrogradeMotion = sat.RetrogradeMotion;
                        newSatellite.rotationalPeriod = sat.RotationalPeriod;
                        newSatellite.selfID = sat.SelfId;
                        newSatellite.siderealPeriod = sat.SiderealPeriod;
                        newSatellite.surfaceTemp = sat.SurfaceTemp;
                        newSatellite.tecActivity = sat.TecActivity;
                        newSatellite.tideTotal = sat.TideTotal;
                        newSatellite.volActivity = sat.VolActivity;
                        newSatellite.sattype = type;
                        newSatellite.atmnote = sat.DescAtm();
                        newSatellite.RVM = sat.GetRvmDesc();
                        newSatellite.planetString = sat.ToString();

                        foreach (var innerMoonlet in sat.InnerMoonlets)
                        {
                            var newInnerMoonlet = new InnerMoonlets
                            {
                                blackbodyTemp = innerMoonlet.BlackbodyTemp,
                                name = innerMoonlet.Name,
                                orbitalEccent = innerMoonlet.OrbitalEccent,
                                orbitalPeriod = innerMoonlet.OrbitalPeriod,
                                orbitalRadius = Math.Round(innerMoonlet.OrbitalRadius, 2),
                                parentID = innerMoonlet.ParentId,
                                parentName = innerMoonlet.ParentName,
                                planetRadius = innerMoonlet.PlanetRadius,
                                selfID = innerMoonlet.SelfId,
                                innerMoonString = innerMoonlet.ToString()
                            };
                            newSatellite.InnerMoonlets1.Add(newInnerMoonlet);
                        }
                        foreach (var outerMoonlet in sat.OuterMoonlets)
                        {
                            var newOuterMoonlet = new OuterMoonlets
                            {
                                blackbodyTemp = outerMoonlet.BlackbodyTemp,
                                name = outerMoonlet.Name,
                                orbitalEccent = outerMoonlet.OrbitalEccent,
                                orbitalPeriod = outerMoonlet.OrbitalPeriod,
                                orbitalRadius = Math.Round(outerMoonlet.OrbitalRadius, 2),
                                parentID = outerMoonlet.ParentId,
                                parentName = outerMoonlet.ParentName,
                                planetRadius = outerMoonlet.PlanetRadius,
                                selfID = outerMoonlet.SelfId,
                                outerMoonString = outerMoonlet.ToString()
                            };
                            newSatellite.OuterMoonlets1.Add(newOuterMoonlet);
                        }
                        foreach (var majorMoon in sat.MajorMoons)
                        {
                            var newMajorMoon = new MajorMoons
                            {
                                RVM = majorMoon.Rvm,
                                SatelliteSize = majorMoon.SatelliteSize,
                                SatelliteType = majorMoon.SatelliteType,
                                atmCate = majorMoon.AtmCate.Count,
                                atmMass = majorMoon.AtmMass,
                                axialTilt = majorMoon.AxialTilt,
                                baseType = majorMoon.BaseType,
                                blackbodyTemp = majorMoon.BlackbodyTemp,
                                dayFaceMod = Convert.ToInt32(majorMoon.DayFaceMod),
                                density = majorMoon.Density,
                                diameter = Math.Round(majorMoon.DiameterInKm(), 2),
                                gravity = Math.Round(majorMoon.Gravity * Satellite.Gforce, 2),
                                hydCoverage = sat.HydCoverage * 100 + "%",
                                innerMoonlets = majorMoon.InnerMoonlets.Count,
                                isResonant = majorMoon.IsResonant,
                                isTideLocked = majorMoon.IsTideLocked,
                                majorMoons1 = majorMoon.MajorMoons.Count,
                                mass = majorMoon.Mass,
                                moonRadius = majorMoon.MoonRadius,
                                name = majorMoon.Name,
                                nightFaceMod = Convert.ToInt32(majorMoon.NightFaceMod),
                                orbitalCycle = majorMoon.OrbitalCycle,
                                orbitalEccent = majorMoon.OrbitalEccent,
                                orbitalPeriod = majorMoon.OrbitalPeriod,
                                orbitalRadius = Math.Round(majorMoon.OrbitalRadius, 2),
                                outerMoonlets = majorMoon.OuterMoonlets.Count,
                                parentDiam = majorMoon.ParentDiam,
                                parentID = majorMoon.ParentId,
                                parentName = majorMoon.ParentName,
                                retrogradeMotion = majorMoon.RetrogradeMotion,
                                rotationalPeriod = majorMoon.RotationalPeriod,
                                selfID = majorMoon.SelfId,
                                siderealPeriod = majorMoon.SiderealPeriod,
                                surfaceTemp = majorMoon.SurfaceTemp,
                                tecActivity = majorMoon.TecActivity,
                                tideForce = majorMoon.TideForce.Count,
                                tideTotal = majorMoon.TideTotal,
                                volActivity = majorMoon.VolActivity,
                                MajorMoonString = majorMoon.ToString()
                            };
                            newSatellite.MajorMoons1.Add(newMajorMoon);
                        }
                        newStar.Planets.Add(newSatellite);
                    }
                    context.Stars.Add(newStar);
                }
                context.StarSystems.Add(newSystem);
                context.SaveChanges();
            }
        }