コード例 #1
0
        public Pandemic GetPandemic()
        {
            //var Pandemic = await _repository.GetPandemic();

            try
            {
                var    Date                 = DateTime.UtcNow.ToString("yyyy-MM-dd");
                var    client               = new RestClient($"https://api.covid19tracking.narrativa.com/api/{Date}/country/north_macedonia");
                var    response             = client.Execute(new RestRequest());
                string original             = response.Content;
                var    jsonResponsePandemic = JObject.Parse(original);
                if (!jsonResponsePandemic.ContainsKey("total"))
                {
                    Date                 = DateTime.UtcNow.AddDays(-1).ToString("yyyy-MM-dd");
                    client               = new RestClient($"https://api.covid19tracking.narrativa.com/api/{Date}/country/north_macedonia");
                    response             = client.Execute(new RestRequest());
                    original             = response.Content;
                    jsonResponsePandemic = JObject.Parse(original);
                    if (!jsonResponsePandemic.ContainsKey("total"))
                    {
                        Date                 = DateTime.UtcNow.AddDays(-2).ToString("yyyy-MM-dd");
                        client               = new RestClient($"https://api.covid19tracking.narrativa.com/api/{Date}/country/north_macedonia");
                        response             = client.Execute(new RestRequest());
                        original             = response.Content;
                        jsonResponsePandemic = JObject.Parse(original);
                    }
                }
                var global         = JObject.Parse(jsonResponsePandemic.GetValue("total").ToString());
                var TotalConfirmed = long.Parse(global.GetValue("today_confirmed").ToString());
                var TotalDeaths    = long.Parse(global.GetValue("today_deaths").ToString());
                var TotalRecovered = long.Parse(global.GetValue("today_new_recovered").ToString());

                var mk = JObject.Parse(jsonResponsePandemic.GetValue("dates").ToString());

                var     date             = JObject.Parse(mk.GetValue(Date).ToString());
                var     country          = JObject.Parse(date.GetValue("countries").ToString());
                var     mkd              = JObject.Parse(country.GetValue("North Macedonia").ToString());
                dynamic objP             = mkd;
                var     TotalMk          = Int32.Parse(objP.GetValue("today_confirmed").ToString());
                var     TotalDeathsMK    = Int32.Parse(objP.GetValue("today_deaths").ToString());
                var     TotalRecoveredMK = Int32.Parse(objP.GetValue("today_recovered").ToString());
                var     NewMK            = Int32.Parse(objP.GetValue("today_new_confirmed").ToString());

                var Name         = "Coronavirus";
                var ActiveMk     = TotalMk - (TotalRecoveredMK + TotalDeathsMK);
                var ActiveGlobal = TotalConfirmed - (TotalRecovered + TotalDeaths);

                Pandemic pandemic = new Pandemic(Name, TotalMk, ActiveMk, TotalDeathsMK, NewMK, TotalConfirmed, TotalDeaths, ActiveGlobal);
                return(pandemic);
            }
            catch (Exception e)
            {
                _logger.LogInformation(e.Message);
            }
            return(null);
        }
コード例 #2
0
 //za json(Sys updateer)
 public async Task UpdatePandemic(Pandemic pandemic)
 {
     if (pandemic != null)
     {
         await _repository.UpdatePandemic(pandemic);
     }
     else
     {
         throw new Exception("Pandemic is null");
     }
 }
コード例 #3
0
        public async Task UpdatePandemic(Pandemic pandemic)
        {
            var Pandemic = await _context.Pandemics.Where(x => x.Id == pandemic.Id).FirstOrDefaultAsync();

            Pandemic.ActiveGlobal = pandemic.ActiveGlobal;
            Pandemic.ActiveMK     = pandemic.ActiveMK;
            Pandemic.DeathsGlobal = pandemic.DeathsGlobal;
            Pandemic.DeathsMK     = pandemic.DeathsMK;
            Pandemic.Name         = pandemic.Name;
            Pandemic.NewMK        = pandemic.NewMK;
            Pandemic.TotalGlobal  = pandemic.TotalGlobal;
            Pandemic.TotalMK      = pandemic.TotalMK;
            await _context.SaveChangesAsync();
        }
コード例 #4
0
    public Dictionary <string, Pandemic> pandemicReader(JsonData disease)
    {
        Dictionary <string, Pandemic> pandemic
            = new Dictionary <string, Pandemic> ();

        for (int i = 0; i <= 10; i++)
        {
            pandemic_id = disease ["Pandemic"] [i] ["pandemic_id"].ToString();
            symptom     = bool.Parse(disease ["Pandemic"] [i] ["symptom"].ToString());
            desc        = disease ["Pandemic"] [i] ["desc"].ToString();
            cost        = int.Parse(disease ["Pandemic"] [i] ["cost"].ToString());
            heirarchy   = disease ["Pandemic"] [i] ["cost"].ToString().Split('&');
            Pandemic pand = new Pandemic(pandemic_id, symptom, desc, cost, heirarchy);
            pandemic.Add(pandemic_id, pand);
        }
        return(pandemic);
    }
コード例 #5
0
        public async Task AddPandemic(Pandemic pandemic)
        {
            var pand = await _context.Pandemics.AddAsync(pandemic);

            _context.SaveChanges();
        }
コード例 #6
0
        public static Card ToCardEvent(this string str)
        {
            Card ret;

            //First character indicates stage

            GameStage stage = (GameStage)int.Parse("" + str[0]);

            //Second character indicates subclass
            switch (str[1])
            {
            case 'a':
                //format: 'Stage''a''CrewCost''DayCost''Reward'
                ret = new AbandonedShip
                      (
                    stage,
                    Convert.ToInt32("" + str[2], 16),
                    int.Parse("" + str[3]),
                    Convert.ToInt32("" + str[4], 16)
                      );
                break;

            case 'A':
                //format: 'Stage''A''MinimumCrew''DayCost''Wares.Count'('Ware')+
                List <Ware> stationWares = new List <Ware>();
                int         wareCount    = int.Parse("" + str[4]);
                for (int i = 0; i < wareCount; ++i)
                {
                    stationWares.Add((Ware)(int.Parse("" + str[i + 5])));
                }
                ret = new AbandonedStation
                      (
                    stage,
                    Convert.ToInt32("" + str[2], 16),
                    int.Parse("" + str[3]),
                    stationWares
                      );
                break;

            case 'm':
                //format: 'Stage''m''Projectiles.Count'('Projectile','Direction')+
                List <(Projectile, Direction)> projectiles = new List <(Projectile, Direction)>();
                int projectileCount = int.Parse("" + str[2]);
                for (int i = 0; i < projectileCount; ++i)
                {
                    projectiles.Add(((Projectile)(int.Parse("" + str[3 + 2 * i])), (Direction)int.Parse("" + str[4 + 2 * i])));
                }
                ret = new MeteorShower(stage, projectiles);
                break;

            case 'y':
                //format: 'Stage''y''Firepower''DayCost''Reward''Penalty.Projectiles.Count'('Projectile','Direction')+
                List <(Projectile, Direction)> pirateProjectiles = new List <(Projectile, Direction)>();
                int pirateProjectileCount = int.Parse("" + str[5]);
                for (int i = 0; i < pirateProjectileCount; ++i)
                {
                    pirateProjectiles.Add(((Projectile)(int.Parse("" + str[6 + 2 * i])), (Direction)int.Parse("" + str[7 + 2 * i])));
                }
                ret = new Pirates
                      (
                    stage,
                    Convert.ToInt32("" + str[2], 16),
                    int.Parse("" + str[3]),
                    pirateProjectiles,
                    Convert.ToInt32("" + str[4], 16)
                      );
                break;

            case 'd':
                //format: 'Stage''d''Firepower''DayCost''Reward.Count'('Ware')+'Penalty'
                List <Ware> smugglerWares     = new List <Ware>();
                int         smugglerWareCount = int.Parse("" + str[4]);
                for (int i = 0; i < smugglerWareCount; ++i)
                {
                    smugglerWares.Add((Ware)int.Parse("" + str[5 + i]));
                }
                ret = new Smugglers
                      (
                    stage,
                    Convert.ToInt32("" + str[2], 16),
                    int.Parse("" + str[3]),
                    int.Parse("" + str[5 + smugglerWareCount]),
                    smugglerWares
                      );
                break;

            case 'S':
                //format: 'Stage''S''Firepower''DayCost''Reward''Penalty'
                ret = new Slavers
                      (
                    stage,
                    Convert.ToInt32("" + str[2], 16),
                    int.Parse("" + str[3]),
                    int.Parse("" + str[5]),
                    Convert.ToInt32("" + str[4], 16)
                      );
                break;

            case 'o':
                //format: 'Stage''o'
                ret = new OpenSpace(stage);
                break;

            case 'p':
                //format: 'Stage''p'
                ret = new Pandemic(stage);
                break;

            case 'g':
                //format: 'Stage''g'
                ret = new Sabotage(stage);
                break;

            case 'P':
                //format: 'Stage''P''DayCost''Offers.Count'('offer.count'('Ware')+)+
                List <List <Ware> > offers = new List <List <Ware> >();
                int offerCount             = int.Parse("" + str[3]);
                int index = 0;
                for (int i = 0; i < offerCount; ++i)
                {
                    int         offerWareCount = int.Parse("" + str[4 + index]);
                    List <Ware> offer          = new List <Ware>();
                    for (int j = 0; j < offerWareCount; ++j)
                    {
                        offer.Add((Ware)int.Parse("" + str[5 + index + j]));
                    }
                    offers.Add(offer);
                    index += offerWareCount + 1;
                }
                ret = new Planets
                      (
                    stage,
                    int.Parse("" + str[2]),
                    offers
                      );
                break;

            case 's':
                //format: 'Stage''s'
                ret = new Stardust(stage);
                break;

            case 'w':
                //format: 'Stage''w''Event1.Attribute''Event1.PenaltyType''Event1.Penalty'
                //                  'Event2.Attribute''Event2.PenaltyType''Event2.Penalty"
                //                  'Event3.Attribute''Event3.PenaltyType''Event3.Penalty.Projectiles.Count'('Projectile','Direction')+
                WarzoneEvent <int> event1 = new WarzoneEvent <int>
                                            (
                    (CardCheckAttribute)int.Parse("" + str[2]),
                    (CardPenalty)int.Parse("" + str[3]),
                    int.Parse("" + str[4])
                                            );
                WarzoneEvent <int> event2 = new WarzoneEvent <int>
                                            (
                    (CardCheckAttribute)int.Parse("" + str[5]),
                    (CardPenalty)int.Parse("" + str[6]),
                    int.Parse("" + str[7])
                                            );
                List <(Projectile, Direction)> event3Projectiles = new List <(Projectile, Direction)>();
                int event3ProjectilesCount = int.Parse("" + str[10]);
                for (int i = 0; i < event3ProjectilesCount; ++i)
                {
                    event3Projectiles.Add(((Projectile)int.Parse("" + str[11 + 2 * i]), (Direction)int.Parse("" + str[12 + 2 * i])));
                }
                WarzoneEvent <List <(Projectile, Direction)> > event3 = new WarzoneEvent <List <(Projectile, Direction)> >
                                                                        (
                    (CardCheckAttribute)int.Parse("" + str[8]),
                    (CardPenalty)int.Parse("" + str[9]),
                    event3Projectiles
                                                                        );
                ret = new Warzone(stage, event1, event2, event3);
                break;

            default:
                throw new InvalidCastException("Unrecognized CardEvent type character");
            }

            return(ret);
        }