Exemplo n.º 1
0
        private async Task <Faction> ConvertJsonToFaction(string json)
        {
            var faction = new Faction();

            var request = EliteBgsFactionRequest.FromJson(json);

            if (request.Docs.Count == 0)
            {
                return(faction);
            }
            faction.Name      = request.Docs[0].Name;
            faction.UpdatedOn = request.Docs[0].UpdatedAt.UtcDateTime;

            foreach (var system in request.Docs[0].FactionPresence)
            {
                var solarSystem = new SolarSystem();
                solarSystem.Name = system.SystemName;
                foreach (var conflict in system.Conflicts)
                {
                    solarSystem.Conflicts.Add(new Entities.Conflict
                    {
                        Status   = conflict.Status,
                        Type     = conflict.Type,
                        Factions = new List <ConflictFaction>
                        {
                            new ConflictFaction {
                                DaysWon     = (int)conflict.DaysWon,
                                FactionName = faction.Name,
                                Stake       = conflict.Stake
                            },
                            new ConflictFaction
                            {
                                FactionName = conflict.OpponentName
                            }
                        }
                    });
                }
                solarSystem.UpdatedOn     = system.UpdatedAt.UtcDateTime;
                solarSystem.ActiveStates  = system.ActiveStates.Select(e => e.State).ToList();
                solarSystem.PendingStates = system.PendingStates.Select(e => e.State).ToList();
                solarSystem.State         = system.State;

                var subFaction = new SubFaction();
                subFaction.Name          = faction.Name;
                subFaction.Influence     = system.Influence;
                subFaction.ActiveStates  = system.ActiveStates.Select(e => e.State).ToList();
                subFaction.PendingStates = system.PendingStates.Select(e => e.State).ToList();
                subFaction.UpdatedOn     = system.UpdatedAt.UtcDateTime;
                solarSystem.SubFactions.Add(subFaction);

                faction.SolarSystems.Add(solarSystem);
            }
            return(faction);
        }
Exemplo n.º 2
0
        private async Task <SolarSystem> ConvertJsonToSolarSystem(string json)
        {
            var system = new SolarSystem();

            var request = EliteBgsSystemRequest.FromJson(json);

            system.Name = request.Docs[0].Name;
            system.ControllingFaction = request.Docs[0].ControllingMinorFaction;
            system.UpdatedOn          = request.Docs[0].UpdatedAt.UtcDateTime;
            if (!string.IsNullOrEmpty(request.Docs[0].State))
            {
                system.State = request.Docs[0].State;
            }
            foreach (var subFaction in request.Docs[0].Factions)
            {
                var faction = new SubFaction();
                faction.Name = subFaction.Name;
                if (subFaction?.FactionDetails?.FactionPresence?.Influence != null)
                {
                    faction.Influence = subFaction.FactionDetails.FactionPresence.Influence;
                }
                else
                {
                    faction.Influence = 0;
                }
                system.SubFactions.Add(faction);
            }
            foreach (var conflict in request.Docs[0].Conflicts)
            {
                system.Conflicts.Add(new Entities.Conflict {
                    Status   = conflict.Status,
                    Type     = conflict.Type,
                    Factions = new List <ConflictFaction> {
                        new ConflictFaction {
                            DaysWon     = (int)conflict.Faction1.DaysWon,
                            FactionName = conflict.Faction1.Name,
                            Stake       = conflict.Faction1.Stake
                        },
                        new ConflictFaction
                        {
                            DaysWon     = (int)conflict.Faction2.DaysWon,
                            FactionName = conflict.Faction2.Name,
                            Stake       = conflict.Faction2.Stake
                        }
                    }
                });
            }
            return(system);
        }
Exemplo n.º 3
0
    private static string FormatFaction(SubFaction faction)
    {
        switch (faction)
        {
        case SubFaction.RebelAlliance:
            return("Rebel Alliance");

        case SubFaction.Resistance:
            return("Resistance");

        case SubFaction.GalacticEmpire:
            return("Galactic Empire");

        case SubFaction.FirstOrder:
            return("First Order");

        case SubFaction.ScumAndVillainy:
            return("Scum and Villainy");

        default:
            throw new NotImplementedException();
        }
    }