/// <summary> /// Initializes a new instance of the <see cref="PlanetaryLink"/> class. /// </summary> /// <param name="colony">The colony.</param> /// <param name="src">The source.</param> internal PlanetaryLink(PlanetaryColony colony, SerializablePlanetaryLink src) { Colony = colony; SourcePinID = src.SourcePinID; DestinationPinID = src.DestinationPinID; LinkLevel = src.LinkLevel; }
/// <summary> /// Initializes a new instance of the <see cref="PlanetaryRoute"/> class. /// </summary> /// <param name="colony">The colony.</param> /// <param name="src">The source.</param> internal PlanetaryRoute(PlanetaryColony colony, SerializablePlanetaryRoute src) { Colony = colony; ID = src.RouteID; SourcePinID = src.SourcePinID; DestinationPinID = src.DestinationPinID; }
/// <summary> /// Updates the content of the listview. /// </summary> /// <typeparam name="TKey"></typeparam> /// <param name="groups"></param> private void UpdateContent <TKey>(IEnumerable <IGrouping <TKey, PlanetaryPin> > groups) { lvPlanetary.Items.Clear(); lvPlanetary.Groups.Clear(); // Add the groups foreach (IGrouping <TKey, PlanetaryPin> group in groups) { string groupText; if (group.Key is DateTime) { groupText = ((DateTime)(object)group.Key).ToShortDateString(); } else { PlanetaryColony colony = group.Key as PlanetaryColony; if (colony != null) { groupText = $"{colony.SolarSystem.Name} > {colony.PlanetName} [{colony.PlanetTypeName}] " + $"(Installations: {colony.NumberOfPins}, " + $"Level: {colony.UpgradeLevel}, " + $"Updated: {colony.LastUpdate.ToLocalTime()})"; } else { groupText = group.Key.ToString(); } } ListViewGroup listGroup = new ListViewGroup(groupText); lvPlanetary.Groups.Add(listGroup); // Add the items in every group lvPlanetary.Items.AddRange( group.Select(pin => new { pin, item = new ListViewItem(pin.TypeName, listGroup) { UseItemStyleForSubItems = false, Tag = pin } }).Select(x => CreateSubItems(x.pin, x.item)).ToArray()); } }
/// <summary> /// Initializes a new instance of the <see cref="PlanetaryPin"/> class. /// </summary> /// <param name="colony">The colony.</param> /// <param name="src">The source.</param> internal PlanetaryPin(PlanetaryColony colony, SerializablePlanetaryPin src) { Colony = colony; ID = src.PinID; TypeID = src.TypeID; TypeName = GetPinName(src.TypeName); SchematicID = src.SchematicID; CycleTime = src.CycleTime; QuantityPerCycle = src.QuantityPerCycle; ContentQuantity = src.ContentQuantity; ContentTypeID = src.ContentTypeID; ContentTypeName = src.ContentTypeName; LastLaunchTime = src.LastLaunchTime; InstallTime = src.InstallTime; ExpiryTime = src.ExpiryTime; State = GetState(); ContentVolume = GetVolume(); GroupName = StaticItems.GetItemByID(src.TypeID).GroupName; }