/// <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(); } }
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); }
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); }