Sakuno.KanColle.Amatsukaze.Game.Services.Records.ExperienceRecords.ExperienceRecords C# (CSharp) Method

ExperienceRecords() private method

private ExperienceRecords ( SQLiteConnection rpConnection ) : Sakuno.KanColle.Amatsukaze.Game.Models
rpConnection System.Data.SQLite.SQLiteConnection
return Sakuno.KanColle.Amatsukaze.Game.Models
        internal ExperienceRecords(SQLiteConnection rpConnection) : base(rpConnection)
        {
            DisposableObjects.Add(ApiService.Subscribe("api_port/port", r =>
            {
                var rPort = KanColleGame.Current.Port;
                var rAdmiral = rPort.Admiral;

                if (r_Admiral != rAdmiral.Experience)
                {
                    r_Admiral = rAdmiral.Experience;
                    InsertAdmiralRecord(r.Timestamp, rAdmiral.Experience);
                }

                var rShips = new List<Ship>(25);
                foreach (var rShip in rPort.Ships.Values.Where(rpShip => rpShip.Experience > 0))
                {
                    int rOldExperience;
                    if (!r_Ships.TryGetValue(rShip.ID, out rOldExperience))
                        r_Ships.Add(rShip.ID, rShip.Experience);
                    else
                        r_Ships[rShip.ID] = rShip.Experience;

                    if (rOldExperience != rShip.Experience)
                        rShips.Add(rShip);
                }

                if (rShips.Count > 0)
                    InsertShipExperience(r.Timestamp, rShips);
            }));
        }