/// <summary>
        /// Give a StellarType given a standardized StellarType string.
        /// </summary>
        /// <param name="st">The StellarType string.</param>
        /// <returns>Nearest StellarType with modified parameters.</returns>
        /// <exception cref="ArgumentException">String given is of the wrong format.</exception>
        public static StellarType FromString(string st)
        {
            if (string.IsNullOrEmpty(st))
            {
                return(new StellarType(SpectralClass.Undefined, LuminosityClass.Undefined));
            }

            try
            {
                var             mt = Regex.Match(st, @"(\D*)(\d*)(\D*)?");
                SpectralClass   sc = (SpectralClass)Enum.Parse(typeof(SpectralClass), mt.Groups[1].Value);
                LuminosityClass lc;
                if (!string.IsNullOrEmpty(mt.Groups[3].Value))
                {
                    lc = (LuminosityClass)Enum.Parse(typeof(LuminosityClass), mt.Groups[3].Value);
                }
                else
                {
                    lc = LuminosityClass.O;
                }
                int subType = int.Parse(mt.Groups[2].Value);

                return(new StellarType(sc, lc, subType));
            }
            catch (Exception)
            {
                throw new ArgumentException();
            }
        }
Exemple #2
0
 public void SetSpectralClass(SpectralClass spectralClass)
 {
     SpectralClass             = spectralClass;
     SpectralClassTextBox.Text = SpectralClass.SpectralClassName;
     MassOfSunTextBox.Text     = SpectralClass.MassOfTheSun.ToString();
     CountTextBox.Text         = SpectralClass.Count.ToString();
     PartTextBox.Text          = SpectralClass.Part.ToString();
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="StellarType"/> class.
        /// </summary>
        /// <param name="sc">The SpectralClass of the StellarBody.</param>
        /// <param name="lc">The LuminosityClass of the StellarBody.</param>
        /// <param name="subType">Type subtype of the StellarBody.</param>
        public StellarType(SpectralClass sc, LuminosityClass lc, int subType = 0)
        {
            SpectralClass   = sc;
            LuminosityClass = lc;
            SubType         = subType;

            var str  = Enum.GetName(typeof(SpectralClass), sc) + SubType.ToString() + (lc != LuminosityClass.O ? Enum.GetName(typeof(LuminosityClass), lc) : "");
            var data = (from row in _types
                        where row.Type == str
                        select new { row.Temperature, row.Mass, row.Radius, row.Luminosity, row.ColorRGB }).FirstOrDefault();

            Temperature = Temperature.FromKelvins(data.Temperature);
            Mass        = Mass.FromSolarMasses(data.Mass);
            Luminosity  = Luminosity.FromSolarLuminosities(data.Luminosity);
            Radius      = Length.FromKilometers(data.Radius * GlobalConstants.KM_SUN_RADIUS);
            Color       = ConvertColor(data.ColorRGB);
        }
Exemple #4
0
 private void AddStar_Click(object sender, EventArgs e)
 {
     try
     {
         SpectralClass = new SpectralClass();
         SpectralClass.SpectralClassName = SpectralClassTextBox.Text;
         SpectralClass.MassOfTheSun      = int.Parse(MassOfSunTextBox.Text);
         SpectralClass.Count             = int.Parse(CountTextBox.Text);
         SpectralClass.Part = int.Parse(PartTextBox.Text);
         repo.Add(SpectralClass);
         MessageBox.Show("Вы добавили новый спектральный класс");
         Close();
     }
     catch (AddSpectralClassException exeption)
     {
         MessageBox.Show("Error:" + exeption.Message);
         LogUtility.ErrorLog("Exeptio" + exeption.Message);
     }
     catch (Exception exception)
     {
         MessageBox.Show("Error:" + exception.Message);
         LogUtility.ErrorLog("Exeptio" + exception.Message);
     }
 }
 private void Add(SpectralClass spectralClass)
 {
     spectralClasses.Add(spectralClass);
 }